JAVA完全参考手册(第8版) 第1章至第5章
写在前面:这部分偏基础知识,部分知识点不是很清晰,list一下。
1、java编译器的输出不是可执行代码,而是字节码。字节码是高度优化的指令集合,由JVM(被设计为字节码解释器)执行。
原因:易于在可变环境中执行,只需对每种平台实现JVM就可以了;有助于提供安全性;执行速度方面,虽然编译成中间形式,但是JVM执行程序的速度要更快;提升性能方面,如果JVM包含JIT编译器,则可按需将选择的字节码实时编译为可执行代码,即动态即时编译。
2、byte整型数据什么时候使用呢?当操作来自网络或文件的数据流时,当操作与java的其他内置类型不直接兼容的原始二进制数据时,……
3、java中的char与C/C++的是不同的。在C/C++中是8位,在java中是16位(0~65536)。java使用Unicode表示字符(www.unicode.org)。
4、为了标识long字面值,需要明确告诉编译器字面值是long类型的,如0xffffffffL。
二进制指定整型字面值,0b或者0B作为前缀,如0b0010。
在整型字面值中还可以嵌入一个或多个下划线,下划线会被忽略,下划线只能用于分割数字,不能位于字面值的开头和结尾,在两个数字之间可以使用多个下划线,如12__44。
浮点型,标准计数法和科学计数法。浮点型字面值默认是双精度的,指定为float时,必须加F/f,如12.78F。下划线同样可以用。支持十六进制浮点型字面量,使用P或p(不是E/e),如0X12.2P2表示72.5。
5、字符转义序列:常用有,\'、 \"(字符串中插双引号注意)、 \\(路径名时)、 \r(回车符)、 \n(换行符)、 \t(制表符)、 \b(回格符);
不常用,\ddd表示八进制字符ddd,\141表示字母a,(\+三个数字),\uxxxx表示十六进制Unicode字符xxxx,\ua432是一个日本片假名字符。
6、java的自动类型转换:类型兼容且扩宽转换。表达式求值时操作数会进行类型转换提升为最高类型,这点易出错。
强制转换不兼容的类型,如int转化byte时,结果以byte类型的范围为模减少(取余),浮点型转化为整型时截尾。
7、数组。int A[] = new int[12]; int AB[][] = new int[4][5]; int [] a,b,c; int a[], b[], c[];
当为多维数组分配内存时,只需要为第一维分配内存。如int twoD[] = new int[4][]; twoD[0] = new int[5]; twoD[1] = new int[4]; twoD[2] = new int[5]; twoD[3] = new int[4]; 。
8、java为什么不允许使用指针?因为如果支持指针,就会使java程序能够突破java执行环境与宿主计算机之间的防火墙(可以将内存中的任何地址赋给指针,甚至超出了java运行时系统的地址)。
9、位(按位)运算符,用于整数类型——long、int、short、char以及byte。常用的,&、 |、 ^、 >>(右移,最左边的位使用的是右移前顶部的值填充)、 <<(左移,高阶位移出丢失,右补0)、 &=、 |=、 ^=、 >>=、 <<=;不常用的,~(按位一元取反)、 >>>(右移零填充,不管高阶位初始值是什么,一律补0)、 >>>=。
java使用2的补码(取反加一)表示负数。原因是什么?具体可以分析“0交叉问题”。即byte型的0表示为0000 0000,如果简单取反,则1111 1111,创建-0,如果使用2的补码,则为1 0000 0000超出范围,从而得到所期望的行为,即-0和0相等,而-1被编码为1111 1111。
当左移byte或short型数值时,自动类型提升会导致意外结果,此时应当强制类型转化截取缩小范围。如,byte a=64, b; int i; i = a<<2; b = (byte)(a<<2); 结果为,i=256,b为0。
左移相当于乘2,但要注意如果将二进制1移进高阶位(第31或63位时),结果会变为负数。
对-1进行右移,结果仍是-1。对数值右移时有时可能不希望得到符号扩展后的值,此时可与0x0f进行按位与操作进行位屏蔽(byte类型)。
10、赋值链。int x,y,z; x = y = z = 100;
?运算符。expression1?expression2:expression3,其中expression2与expression3都需要返回相同或兼容(会进行自动转化,这里需要注意)的类型,并且不能为void。
运算符的优先级。++/--(后缀);
++/--(前缀)、~、!、+/-(一元运算符)、(类型转换);
*、/、%;
+、-;
>>、 >>>、 <<;
>、 >= 、<、 <=、 instanceof
==、!=
&
^
|
&&
||
?:
=
ps:instanceof(测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。可以用在继承中的子类的实例是否为父类的实现。)
11、switch语句。switch(exp) {case value1: ... break; case value2: ... break; ... default: ... }
其中,exp为byte、short、int、char或枚举类型,也可以是String类型。case语句中每个值不同,且类型与exp类型兼容。default与break语句可选。如果不是必须,在switch语句中不要使用字符串。switch语句可以嵌套。
在编译switch语句时,java编译器会检查每个case常量,并创建一个“跳转表”,该跳转表用于根据表达式的值选择执行路径,所以相较于if/else语句,运行速度更快。
12、一些做法。 while(++i < --j); do{...}while(--n>0); 当条件表达式可以处理所有细节本身时,会经常使用没有循环体的短循环。
13、for-each语句。for(int x : collection){...}。可以使用break语句提前终止循环。迭代变量是“只读”的,不能为迭代变量修改值来改变数组集合的内容。
多维数组进行迭代时,int nums[][]... for(int x[] : nums) { for(int y : x){ ... } }。
当操作由集合框架定义的集合时,for-each语句特别有用。
13、break语句等。内层循环中的break语句只会导致内层循环终止,对外层循环没有影响。(与C/C++中break是终止整个循环,continue是终止本次循环,不同)
break label;可以跳出由标签命名的代码块,此标签代码块必须含有该语句。continue label同。
于2013/04/08
JAVA完全参考手册(第8版) 第1章至第5章相关推荐
- python语法手册chm-python3.5.2官方帮助文档 参考手册(CHM版)
python3.5.2官方帮助文档 参考手册(CHM版) python3.5.2官方帮助文档 参考手册(CHM版),欢迎下载! 新语法特性: PEP 492,具有async和await语法的协同程序. ...
- python帮助文档中文版下载-python3.5.2官方帮助文档 参考手册(CHM版)
python3.5.2官方帮助文档 参考手册(CHM版) python3.5.2官方帮助文档 参考手册(CHM版),欢迎下载! 新语法特性: PEP 492,具有async和await语法的协同程序. ...
- python3.6库参考手册_python3.5.2官方帮助文档参考手册(CHM版)
python3.5.2官方帮助文档 参考手册(CHM版) python3.5.2官方帮助文档 参考手册(CHM版),欢迎下载! 新语法特性: PEP 492,具有async和await语法的协同程序. ...
- python3.5中文手册chm_python3.5.2官方帮助文档 参考手册(CHM版)
python3.5.2官方帮助文档 参考手册(CHM版) python3.5.2官方帮助文档 参考手册(CHM版),欢迎下载! 新语法特性: PEP 492,具有async和await语法的协同程序. ...
- 阿里技术团队编写的“阿里巴巴 Java 面试参考指南(泰山版)
这份文档由阿里巴巴架构师牵头,联合了部门上上下下 P6 - P8 级岗位众人的意见,1.0版本由此诞生.(这阵容,质量就不用我多说了吧)内容非常全面,主要是结合了互联网大厂的面试需求点,包含了: 分布 ...
- php中文离线手册 chm_XMLHttp中文离线参考手册(CHM版)
XMLHttp中文离线参考手册(CHM版) XMLHttp中文离线参考手册(CHM版),欢迎下载! XmlHttp是一套可以在Javascript.VbScript.Jscript等脚本语言中通过ht ...
- 阿里 P9 开源分享内部 Java 核心开发手册(2022 版)覆盖 P5 到 P8
这个世界唯一不变的就是变化, IT 圈子不外如是.计算机领域一直在改变,从基础框架到计算设备,还有几乎每天都涌现出的新技术.因此,作为一名程序开发人员,我们要通过不断的学习来提高自己的技能. 所以持续 ...
- 爱了,阿里P9开源分享内部Java核心开发手册(2022版)覆盖P5到P8
这个世界唯一不变的就是变化, IT圈子不外如是.计算机领域一直在改变,从基础框架到计算设备,还有几乎每天都涌现出的新技术.因此,作为一名程序开发人员,我们要通过不断的学习来提高自己的技能. 所以持续学 ...
- 下载Hibernate中文参考手册2.1版
下载Hibernate中文参考手册 下载Hibernate中文参考手册 PDF版本下载 下载Hibernate-2.1.2 下载Hibernate-extension-2.0.2 转载于:https: ...
最新文章
- redis学习笔记---redis的哨兵Sentinel
- 深度丨2017年深度学习重大研究进展全解读
- ZOJ 3829 贪心 思维题
- Office远程代码执行漏洞补丁(905413)
- [leetcode]@python 85. Maximal Rectangle
- 在Unity实现游戏命令模式
- React Native 轻松集成分享功能(Android 篇)
- input框带图片的写法
- 阿里互联互通再下一城,开放生态缔造新的产业蓝海?
- 文件上传服务器方法,向服务器上传文件方法
- jupyter更改默认浏览器的方法
- 数据结构与算法分析----顺序表
- Apollo beta公测版本安装
- 经典影视剧《大宋提刑官》——老剧重看,再添心得
- 递归算法(练习习题)
- 在vc中作用mapx
- 【因果推断的统计方法】综述与个人理解
- 独享带宽和共享带宽有哪些区别?
- android 4.2.2进度条,进度条(ProgressBar)——Mars Android开发视频之第一季第十七集(重)...
- Dew Lab广泛的库,MtxVec包含大量矢量化矩阵