写在前面:这部分偏基础知识,部分知识点不是很清晰,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章相关推荐

  1. python语法手册chm-python3.5.2官方帮助文档 参考手册(CHM版)

    python3.5.2官方帮助文档 参考手册(CHM版) python3.5.2官方帮助文档 参考手册(CHM版),欢迎下载! 新语法特性: PEP 492,具有async和await语法的协同程序. ...

  2. python帮助文档中文版下载-python3.5.2官方帮助文档 参考手册(CHM版)

    python3.5.2官方帮助文档 参考手册(CHM版) python3.5.2官方帮助文档 参考手册(CHM版),欢迎下载! 新语法特性: PEP 492,具有async和await语法的协同程序. ...

  3. python3.6库参考手册_python3.5.2官方帮助文档参考手册(CHM版)

    python3.5.2官方帮助文档 参考手册(CHM版) python3.5.2官方帮助文档 参考手册(CHM版),欢迎下载! 新语法特性: PEP 492,具有async和await语法的协同程序. ...

  4. python3.5中文手册chm_python3.5.2官方帮助文档 参考手册(CHM版)

    python3.5.2官方帮助文档 参考手册(CHM版) python3.5.2官方帮助文档 参考手册(CHM版),欢迎下载! 新语法特性: PEP 492,具有async和await语法的协同程序. ...

  5. 阿里技术团队编写的“阿里巴巴 Java 面试参考指南(泰山版)

    这份文档由阿里巴巴架构师牵头,联合了部门上上下下 P6 - P8 级岗位众人的意见,1.0版本由此诞生.(这阵容,质量就不用我多说了吧)内容非常全面,主要是结合了互联网大厂的面试需求点,包含了: 分布 ...

  6. php中文离线手册 chm_XMLHttp中文离线参考手册(CHM版)

    XMLHttp中文离线参考手册(CHM版) XMLHttp中文离线参考手册(CHM版),欢迎下载! XmlHttp是一套可以在Javascript.VbScript.Jscript等脚本语言中通过ht ...

  7. 阿里 P9 开源分享内部 Java 核心开发手册(2022 版)覆盖 P5 到 P8

    这个世界唯一不变的就是变化, IT 圈子不外如是.计算机领域一直在改变,从基础框架到计算设备,还有几乎每天都涌现出的新技术.因此,作为一名程序开发人员,我们要通过不断的学习来提高自己的技能. 所以持续 ...

  8. 爱了,阿里P9开源分享内部Java核心开发手册(2022版)覆盖P5到P8

    这个世界唯一不变的就是变化, IT圈子不外如是.计算机领域一直在改变,从基础框架到计算设备,还有几乎每天都涌现出的新技术.因此,作为一名程序开发人员,我们要通过不断的学习来提高自己的技能. 所以持续学 ...

  9. 下载Hibernate中文参考手册2.1版

    下载Hibernate中文参考手册 下载Hibernate中文参考手册 PDF版本下载 下载Hibernate-2.1.2 下载Hibernate-extension-2.0.2 转载于:https: ...

最新文章

  1. redis学习笔记---redis的哨兵Sentinel
  2. 深度丨2017年深度学习重大研究进展全解读
  3. ZOJ 3829 贪心 思维题
  4. Office远程代码执行漏洞补丁(905413)
  5. [leetcode]@python 85. Maximal Rectangle
  6. 在Unity实现游戏命令模式
  7. React Native 轻松集成分享功能(Android 篇)
  8. input框带图片的写法
  9. 阿里互联互通再下一城,开放生态缔造新的产业蓝海?
  10. 文件上传服务器方法,向服务器上传文件方法
  11. jupyter更改默认浏览器的方法
  12. 数据结构与算法分析----顺序表
  13. Apollo beta公测版本安装
  14. 经典影视剧《大宋提刑官》——老剧重看,再添心得
  15. 递归算法(练习习题)
  16. 在vc中作用mapx
  17. 【因果推断的统计方法】综述与个人理解
  18. 独享带宽和共享带宽有哪些区别?
  19. android 4.2.2进度条,进度条(ProgressBar)——Mars Android开发视频之第一季第十七集(重)...
  20. Dew Lab广泛的库,MtxVec包含大量矢量化矩阵

热门文章

  1. 极限题型一:求函数极限常见题型
  2. labview的公式Express VI和公式节点
  3. iso12233测试方法_ISO12233分辨率测试卡的使用方法
  4. Profinet协议基础知识(二)
  5. 微信公众号关注来源统计查询谁会搞?
  6. 2022年P气瓶充装培训试题及答案
  7. python 画曲线(基本的坐标轴,刻度,网格,解决中文显示乱码)
  8. win10 mmdetection3d 训练KITTI
  9. Jq点击其他任意地方隐藏关闭弹窗div
  10. 最坏也是最好的时代|与陆奇,阿里VP,英伟达VP等重磅嘉宾相约道创峰会