《Java核心技术》卷1——学习笔记(1)

2023-05-16

第三章的基本语法

1、类名命名规范为骆驼命名法,即首字母大写。

2、源代码为.java文件,编译后字节码文件为.class。控制台先用javac name.java命令编译源文件,然后用java name运行编译后的字节码文件。

3、三种注释方法:

//第一种

/* 第二种 */

/**

第三种

*/

第三种可以用来自动生成文档。

/* */注释不能嵌套,也就是说,不能简单地把代码用/*和*/括起来作为注释,因为这段代码本身可能也包含一个*/

4、java没有任何形式的无符号(unsigned)形式的short、int、long、byte类型。

5、在c、c++中,整型所占字节数的大小跟机器有关,但在java中,整型大小是固定的。

6、没有后缀f、F的浮点数值默认为double类型。大多数应用程序用double,少部分需要单精度数据的库或需要存储大量数据的情况适合使用float类型。

7、Double.POSITIVE_INFINITY、 Double.NEGATIVE_INFINITY 和 Double.NaN分别表示正无穷、负无穷和非数值。

if(x==Double.NaN) //错误,所有的非数值都不相同

if(Double.isNaN(x)) //正确

8、如果在数值计算中不允许有任何写入误差,应该是用BigDecimal类。

9、转义序列\u还可以出现在加引号的字符常量或字符串之外(而其他所有转义序列不可以)。例如:

public static void main(String\u005B\u005D args)

10、Unicode 转义序列会在解析代码之前得到处理;注释中\u也会被解析,换行符的unicode编码转义后会产生错误。\u后未跟四个十六进制数也会报错。

11、整型0不能转化为Boolean值。

12、不能使用未初始化的变量。

13、final指示常量,被赋值之后不能再改写。习惯上常量名使用全大写。

14、static final设置类常量。

15、整数被0除会产生异常,浮点数被0除会产生无穷大或NaN。

16、如果将一个类标记为 strictfp, 这个类中的所有方法都要使用严格的浮点计算。

17、floorMod(position + adjustment, 12) 总会得到一个 0 ~ 11 之间的数。(遗憾的是,对于负除数,floorMod 会得到负数结果,不过这种情况在实际中很少出现。)

18、数值之间的合法转换:

•如果两个操作数中有一个是 double 类型, 另一个操作数就会转换为 double 类型。

•否则,如果其中一个操作数是 float 类型,另一个操作数将会转换为 float 类型。

•否则, 如果其中一个操作数是 long 类型, 另一个操作数将会转换为 long 类型。

•否则, 两个操作数都将被转换为 int 类型。

19、Math.round(x)得到离浮点数x最接近的整数,返回值为long型,如果想要得到int型,需要强制转换。(int)Math.round(x)

20、如果x是int,则x+=3.5是合法的,将把x转化为(int)(x+3.5)

21、String all = String.join( " / ", "S", "M", "L", "XL" ); // all is the string "S / H / L / XL"

22、"Hello".equals(greeting);"Hello".equalsIgnoreCase("hel1o")

一定不要使用==运算符检测两个字符串是否相等! 这个运算符只能够确定两个字串是否放置在同一个位置上。

23、空串是"",不是null串

24、用许多小段的字符串构建一个字符串,使用StringBuilder类

25、标准输入流:Scanner in = new Scanner(System.in);

String name = in.nextLine();//读取一行 

String firstName = in.next();//读取一个单词

int age = in.nextlnt();//读取一个int整数

26、因为输入是可见的, 所以 Scanner 类不适用于从控制台读取密码。Java SE 6 特别 引入了 Console 类实现这个目的。要想读取一个密码, 可以采用下列代码:

Console cons = System.console();

String username = cons.readLine("User name: ");

char[] passwd = cons.readPassword("Password:");

为了安全起见, 返回的密码存放在一维字符数组中, 而不是字符串中。在对密码进 行处理之后,应该马上用一个填充值覆盖数组元素(数组处理将在 3.10 节介绍)。 采用 Console 对象处理输入不如采用 Scanner 方便。每次只能读取一行输入, 而没有 能够读取一个单词或一个数值的方法。

27、读取文件:Scanner in = new Scanner(Paths.get("myflle.txt"), "UTF-8");

写入文件:PrintWriter out = new PrintWriter("myfile.txt", "UTF-8");

如果 用一个不存在的文件构造一个 Scanner, 或者用一个不能被创建的文件名构造一个 PrintWriter, 那么就会发生异常。

public static void main(String口 args) throws IOException
{
Scanner in = new Scanner(Paths.get("myfile.txt"), "UTF-8");
}

28、使用switch语句时,javac -Xlint:fallthrough Test.java,如果某个分支最后缺少break语句,就会弹出警告信息。如果你确实正是想使用这种“ 直通式”(fallthrough) 行为, 可以为其外围方法加一个 标注@SuppressWamings("fallthrough")。 这样就不会对这个方法生成警告了。

29、使用静态的 valueOf方法可以将普通的数值转换为大数值,但不能使用“+”、“-”、“*”等运算符,而且不能重载。

Biglnteger a = Biglnteger.valueOf(100);
Biglnteger c = a.add(b); // c = a + b
Biglnteger d = c.nultiply(b.add(Biglnteger.valueOf(2))); // d = c * (b + 2)

30、创建一个数字数组时, 所有元素都初始化为 0。boolean 数组的元素会初始化为 false, 对象数组的元素则初始化为一个特殊值 null, 这表示这些元素还未存放任何对象。

一旦创建了数组, 就不能再改变它的大小(尽管可以改变每一个数组元素)。如果经常需要在运行过程中扩展数组的大小, 就应该使用另一种数据结构—数组列表( array list)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《Java核心技术》卷1——学习笔记(1) 的相关文章

  • Conda install 报错:An HTTP error occurred when trying to retrieve this URL. HTTP errors are often...

    1 问题描述 xff1a 准备在Anaconda prompt执行以下命令 xff1a conda install c stellargraph stellargraph 报错 xff1a An HTTP error occurred wh
  • svn原理----revert,回滚

    一 子命令Svn revert 取消所有的本地编辑 下面我们来看一下子命令Svn revert例子 xff1a 丢弃对一个文件的修改 xff1a Svn revert foo c Reverted foo c 如果你希望恢复一整个目录的文件
  • Qt 自定义控件提升,头文件找不到的问题

    Qt 自定义控件提升 xff0c 头文件找不到的问题 在附加包含目录添加 xff1a
  • 分析int(*p)[4] = a

    面试题 xff1a 二级指针 include lt iostream gt int main int a 3 4 61 0 1 2 3 4 5 6 7 8 9 10 11 int p 4 61 a std cout lt lt p 43 1
  • af::convolve在CUDA中局限性

    使用在Cuda出现访问冲突问题 xff08 opengcl正常 xff09 xff1a af convolve I I kernel 报错 xff1a 0x00007FFC6443ADAC af dll 处 位于 XXXX exe 中 引发
  • 2016

    2016 最近 xff0c 许多朋友兴起总结2016了 xff0c 看得我心痒 xff0c 心热 我自己不禁也总结起来了 别人的总结要么是 2016XXXX 要么是 2016OOOO 我苦思2秒 xff0c 却想不起一个标题来 xff0c
  • gdb反汇编disassemble

    GDB Command Reference disassemble command gdb反汇编可用disassemble disass命令 用法如下 xff1a disassemble disassemble Function 指定要反汇
  • S.M.A.R.T. 参数(smartctl)计算硬盘精确健康值

    参考 xff1a Acronis Drive Monitor Disk Health Calculation 文章目录 1 背景2 smartctl a dev sda3 计算健康值3 1 关键参数3 1 1 公式说明3 2 2 计算举例
  • python脚本——通过telnet连接设备

    文章目录 一 说明二 代码三 用法总结 一 说明 通过telnetlib库 xff0c telnet到设备上并做一些测试 包括重启设备 等待重启完成 其它测试操作等 二 代码 span class token comment usr bin
  • lspci 命令详解及常用命令

    文章目录 一 说明二 参数说明三 用法举例 一 说明 lspci是查看设备上pcie设备信息的命令 该命令的不同参数配合 xff0c 在查看pcie设备和定位pcie问题时很有用 包括查看pcie设备中断号 查看配置空间内容 修改配置空间寄
  • 中断模式和polling模式 && 硬件中断和软件中断

    文章目录 一 总结在前二 中断2 1 硬件中断与软件中断2 1 1 对比2 1 2 硬件中断2 1 3 软件中断 三 polling 一 总结在前 S NOInterruptPolling1中断模式下 xff0c 设备通知CPU有业务需要被
  • dma_alloc_coherent 申请内存用法和问题总结

    文章目录 1 dma alloc coherent用法2 问题3 解决方法方法一 xff0c 走CMA空间配置3 1 内核配置 96 96 CONFIG CMA 96 96 3 2 修改cma起始地址3 3 设置cma空间 xff08 大小
  • hadoop之HDFS:通过Java API访问HDFS

    HDFS是一个分布式文件系统 xff0c 可以通过Java API接口对HDFS进行操作 xff0c 下面记录实现Java API的过程和出现的一些问题及解决方案 环境搭建 导入jar包 common包中的jar文件导入 hadoop 2
  • sonic开发——修改内核配置

    参考 xff1a https github com Azure sonic linux kernel sonic 中的内核配置修改不需要编译menuconfig xff0c 而是直接修改 patch kconfig exclusions和p
  • 计算机内存管理之内存访问

    文章目录 一 设备I O内存访问ioremap amp ioremap nocacheioremap cachedioremap wc amp ioremap wtI O内存访问流程 二 设备地址映射到用户空间mmap过程 三 devmem
  • 内存管理之预留内存

    文章目录 一 memblock二 cmdline 有时候 xff0c 我们需要预留一段内存不受内核直接管理分配 xff0c 有什么办法 xff1f 一 memblock mmeblock是内存的一种管理机制 xff0c 主要管理这两种内存
  • 远程工作的一些命令

    文章目录 git配置ssh免密登录sshfs映射远程目录linux远程控制其它主机vscode ssh失败 git配置 git config global user name usrname git config global user e
  • 机器视觉-相机标定及畸变矫正

    摘要 xff1a 本文首先介绍了针孔相机模型 xff08 线性模型 xff09 xff0c 然后推导四个坐标轴变换的关系 xff0c 引出R T K D中包含相机的5个内参 xff0c 6个外参 然后介绍相机畸变的原因以及畸变模型 xff0
  • STM32的寄存器操作

    STM32最基本的 xff0c 最底层的 xff0c 就是对寄存器的直接操作 通过操作特定寄存器的特定位 xff0c 来实现相对应的功能 本文通过GPIO点亮LED来演示 GPIO 查阅数据手册 xff0c 了解相关内容 启动代码 旧版的k
  • STM32之RTOS:uCOS和FreeRTOS

    RTOS全称是 Real Time Operating System xff0c 中文就是实时操作系统 RTOS是指一类系统 xff0c 如 uC OS xff0c FreeRTOS xff0c RTX xff0c RT Thread 等

随机推荐

  • 树莓派3b系统Ubuntumate16下的tightvnc或xrdp远程控制开机启动

    本文主要是树莓派3b系统Ubuntumate16下 xff0c tightvnc开机自启动的爬坑经验 xff0c 这一技术极大便利了我们在手机 电脑端 xff0c 远程控制树莓派等基于liux系统的移动开发硬件 实现的过程从0到1 xff0
  • 关于spring-boot-maven-plugin插件爆红问题

    关于spirngboot打包插件爆红 xff0c 也就是 Plugin org springframework boot spring boot maven plugin not found错误问题 网上找了一大堆方法试了还是爆红 xff0
  • 198个经典C#WinForm实例源码(超赞)

    198个经典C WinForm实例源码 1 窗体 2 控件 3 图像 4 报表 5 系统 6 文件 7 网络 8 数据库 9 加密 解密 10 硬件读写 01 窗体技巧02 控件操作03 图像操作04 报表打印06 系统操作07 文件处理0
  • MySQL8.0.12重置root密码

    在安装完数据库后 xff0c 由于自己不小心直接关闭了安装窗口 xff0c 或者长时间没有使用root用户登录系统 xff0c 导致忘记了root密码 xff0c 这时就需要重置MySQL的root密码 当然 xff0c 最简单方式自然是删
  • 解决方法集合CondaHTTPError:HTTP 000 CONNECTION FAILED for url<https://mirrors.tuna.tsinghua.edu.cn/anaco

    目录 背景 解决方案 主要原因 xff1a 配置没配对 方法A xff1a 在cmd输入 方法B xff1a 修改 condarc xff08 运行期配置文件 xff09 其他原因 原因A xff1a 开了代理或者VPN 原因B xff1a
  • c# TCP通信编程

    目录 协议类JSON协议类XML协议类 通信信息适配 协议类 span class token keyword public span span class token keyword abstract span span class to
  • 【银河麒麟V10】【桌面】ssh连接问题

    1 xshell secureCRT ssh连接V10 2107报 服务器发送了一个意外的数据包 如下 xff1a 解决方式 xff1a 方式1 使用mobaxterm连接无问题 方式2 sudo vim etc ssh sshd conf
  • 【su问题】su: warning: cannot change directory to /home/oracle: Permission denied

    发现问题 su warning cannot change directory to home oracle Permission denied 解决方法 基本上是根目录 或者是 home oracle目录权限的问题 root 64 myo
  • Nginx安装及配置

    Nginx 安装简介 xff1a 有两个版本 Mainline版 包含最新的特性和bug修改 xff0c 并且总是保持更新 可靠 xff0c 但可能会包含实验性的模块 xff0c 以及一定数量的新 bugStable版 不包含新特性 xff
  • HAL库禁用JTAG,使用PB3、PB4、PA15作为普通IO

    void HAL GPIO Init GPIO TypeDef GPIOx GPIO InitTypeDef GPIO Init HAL RCC AFIO CLK ENABLE HAL AFIO REMAP SWJ NOJTAG 禁用JTA
  • 【FreeRTOS 应用开发笔记】FreeRTOS 的启动流程(三)

    在RTOS中 xff0c 常用的启动方式有两种 xff1a 1 在 main 函数中将硬件初始化 xff0c RTOS 系统初始化 xff0c 所有任务的创建这些都弄好 xff0c 这个我称之为万事都已经准备好 最后 启动 RTOS 的调度
  • Ubuntu下使用命令安装配置中文环境

    1 查看当前语言环境 执行 echo LANG 若输出结果为en US UTF 8 xff0c 则表示当前语言环境为英文 2 安装中文语言包 执行命令 xff1a apt get update amp amp apt get install
  • nvm安装详解,nvm控制node npm版本修改(windows环境)

    一 前言 为什么要用 nvm node升到14 2 npm升到6 14后 运行旧配置需求低版本npm项目时候 就会报错 node sass 等等版本不支持的错误 xff0c 类似 xff1a Module build failed Erro
  • Java中a++与++a的理解

    在编程中我们都熟知 a 43 43 和 43 43 a 两者都是原来的值自身 43 1 xff0c 只不过是前者先进行值得使用再 43 1 xff0c 后者先进行 43 1再使用新的值 xff0c 如下 xff1a int a 61 1 i
  • 面试那些事(一)

    最近裸辞了 xff0c 就觉得解脱了好嗨哦 xff01 终于不要再看到领导丑恶的嘴脸 xff01 终于可以不要再逼着加班啦 xff01 终于周末可以好好的睡一觉了 xff01 本来计划的是找好之后再离职 可是发现根本就没时间去准备 xff0
  • 能ping通,不能ssh登录

    宿主机 ping VMware Linux虚拟机能通 xff0c 但是不能ssh登录 当你试了所有方法都不行时 xff0c linux主机网卡改一个IP地址就好了 xff0c 例如10 0 0 1 10 0 0 2 原因是 Linux网卡
  • docker安装软件时出现:报错:E: You don‘t have enough free space in /var/cache/apt/archives/.

    背景 xff1a 在linux系统下安装了一个docker容器 xff0c 拉取一个debian系统后在系统里使用apt get install进行安装文件 问题 xff1a 报错 xff1a E You don 39 t have eno
  • C语言总结

    1 简述C C语言不但执行效率高而且可移植性好 xff0c 可以用来开发应用软件 驱动 操作系统等 2 第一个C程序 include lt stdio h gt int main printf 34 Hello World 34 retur
  • VNC 1.1 窗口大小修改

    编辑vncserver 文件 vi usr bin vncserver 找到 geometry 61 34 1024x768 34 按 i 修改 按 wq 保存 重启vnc服务即可 PS 不会重启只能一一kill 掉 vncserver k
  • 《Java核心技术》卷1——学习笔记(1)

    第三章的基本语法 1 类名命名规范为骆驼命名法 xff0c 即首字母大写 2 源代码为 java文件 xff0c 编译后字节码文件为 class 控制台先用javac name java命令编译源文件 xff0c 然后用java name运