FKJAVA读书笔记--第三章--数据类型和运算符
来源:互联网 发布:淘宝达人账号简介范例 编辑:程序博客网 时间:2024/05/16 11:02
1 有时候把从char型称为字符型,实际上字符型是一种整数类型;并且Char类型必须使用单引号括起来。
2 空引用(null)只能转换成引用类型,不能转换成基本类型(boolean类型和数值类型)
3 如果使用一个巨大的整数常量(超出了int类型),即使使用“long=XXXXXX”,java也不会把这个当作long类型来处理,如果希望系统把一个常量当成long处理,需要在这个巨大的整数常量后面加l 或者L ,推荐使用L
4 Btye 内存中占8位 -2^(-7)~2^7-1
Short 内存中占16位 -2^(-15)~2^15-1
int 内存中占32位 -2^(-31)~2^31-1
Long 内存中占64位 -2^(-63)~2^63-1
5 // 八进制标示,第一位为0
int ss=013;
// 十六进制标示 ,以0X标示
int sss=0x11;
// 二进制表示 以0B或者0b
int ssss=0b1111;
6 补码的计算原则:正数的补码和原码完全相同,负数的补码是其反码加1;反码是对原码按位取反,只是最高位(符号位)保持不变。
当定义32位的二进制整数时,最高位其实是符号位,
如果在此二进制整数后面加L,此时这个二进制正数是64位。此时第32位就不是符号位了。
如果将一个二进制正数强制转换成byte类型。它就变成了8位,此时其第8位为符号位。
0120000====》其实是32位,左边的高位在底层全部用0补齐了
(byte)0000111111111111110===》会强制保留从右到左保存8位==》(byte)011111110
7 Java使用16位的unicode字集作为编码方式。
8 char类型的值可以直接用16位整数类型的值来使用,表数范围0~65535;???
如果把0~65535范围内的一个int整数型给char类型变量。系统会自动把整型当成char来处理。
9 转义字符 \b \n \r \t \” \’ \\ 要用到“\”
10 强类型包括:1.所有的变量必须先声明再使用。2.指定的类型变量只能接受能与之匹配的变量值。
11 strictfp 关键字:使用 strictfp 关键字声明一个方法时,该方法中所有的float和double表达式都严格遵守FP-strict的限制,符合IEEE-754规范。当对一个类或接口使用 strictfp 关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。
Java中如果需要精确的保存一个浮点数,则可以考虑使用BigDecimal类。
12 Volatile关键字:在两个或者更多的线程访问的成员变量上使用volatile。当要访问的变量已在synchronized代码块中,或者为常量时,不必使用。由于使用volatile屏蔽掉了VM中必要的代码优化,所以在效率上比较低,因此一定在必要时才使用此关键字。
13 transient关键字:为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient;
14 当从磁盘中读出某个类的实例时,实际上并不会执行这个类的构造函数,而是载入了一个该类对象的持久化状态,并将这个状态赋值给该类的另一个对象。
15 自动类型转换:小瓶子子里的水倒进大瓶子里面,不会有问题
Char->int->long->float->double
Byte->short->int->long->float->double
16 强制类型转换:大瓶子里的水倒进小瓶子会有溢出的情况。从而造成数据的丢失。(缩小转换)
17 任何基本类型值和字符串做连接运算后,都会变成字符串类型。虽然字符串类型不是基本类型,而是引用类型。
18 java为8种基本类型提供了对应的包装类
19 表达式类型会自动进行类型提升,提升成表达式中最高级别
20 直接量:直接量是指在程序中通过源码直接生成指定的值,java支持3种类型可以进行直接量的赋值:基本类型,字符串类型,null;
我对直接量的理解,即不用new出实例,即可以使用
21 关于字符串的直接量,当第一次使用某个字符串直接量时,java会在常量池constant pool中缓存此字符串直接量,以后再使用时,会直接从constant pool中取。
Java会保证每个字符串常量只有一个,这样不会重复产生字符串常量。“hello” 和“he”+“llo” 是一样的。
22 String类是不可变类。所以无需当心共享String会导致混乱。
23 /:除法运算符:如果两个操作数都是整型,那么结果也是整型。。如果除得的结果是4.7,只会取整数部分。并且其除数不能为0;
如果两个操作数有一个为浮点数,那么结果就是真实的结果,并且除数也可以是0或者0.0,得到无穷大或者无穷小Infinity、-Infinity
%:取余运算符:求余的结果不一定总是整数,其原理和除法相似。
如果被取余的那个数是非零的,并且两个操作数中有浮点数,求余结果将是NaN, 0/0.0对零以外所有的数取余都为0;
24 a++ 先进行运算再自加 ++a 先自加再进行运算 (--自减同理)
自加只能用于操作变量,不能用于操作直接量或者常量
25 Java没有提供复杂的运算符,需要复杂的运算可以利用java。Lang。Math类进行。
26 + :加法运算符/字符串连接运算符 - :减法运算符/求负的运算符
27 位运算符:&-》按位与 |-》按位或 ~-》按位非 ^->按位异或 <<左移运算符 >>右移运算符 >>>无符号右移动运算符
移位操作不会改变操作数本身,只是会生成一个新的操作数
28 二进制运算都是通过补码进行运算,正数的补码,原码,反码一样。
负数的原码取反获得反码,反码加1获得补码补码的目的是为了让符号位也参与进运算中,不会出现-0的状况
29 对于int类型,移位33位和1位效果一样。。
对于long类型,移位65位和1位效果一样。。
30 推荐使用扩展运算符,扩展运算符虽然在结果上与一般的运算符是一样,但是它的效率更高,并且可以避免一些错误“+=”。
31 如果两个引用类型之间没有父子继承关系,那么他们也不能使用==进行比较是否相等。
32 ”|” “||” “&” “&&” 功能上一样,只是存在一个短不短路的概念 ,短路的概念就是,如果有一个条件满足了就不会判断后面了
33 三目运算符 ternary operator :(expression)?If-true-statement:if-false-statement
(不支持多条件判断)
- FKJAVA读书笔记--第三章--数据类型和运算符
- 读书笔记-疯狂Java讲义(第三版)第三章 数据类型和运算符
- 读书笔记(一) 疯狂JAVA讲义 第三章 数据类型和运算符
- 第三章 数据类型和运算符
- 第三章 数据类型和运算符
- 第三章-数据类型和运算符1
- 第三章-数据类型和运算符2
- 第三章-数据类型和运算符3
- FKJAVA读书笔记--第十四章--Annotation
- 疯狂java讲义 第三章 数据类型和运算符
- Java 学习基础第三章之数据类型和运算符
- java基础 第三章 数据类型和运算符
- FKJAVA读书笔记--第八章--JAVA集合
- FKJAVA读书笔记--第十章--异常处理
- FKJAVA读书笔记--第九章--泛型(修改)
- FKJAVA读书笔记--第十六章--多线程(修改)
- FKJAVA读书笔记--第四章--流程控制与数组
- FKJAVA读书笔记--第五章--面向对象(上)
- windows xampp mongodb
- Android 进程 和 线程 Process and Threads
- OverScroller、VelocityTracker、ViewConfiguration综合使用达到炫酷效果
- 宏定义 # 与 ## 的用法
- 黑马程序员 -----java基础语法
- FKJAVA读书笔记--第三章--数据类型和运算符
- jdbctemplate batchupdate 的事务管理
- mysql的常用语法
- caffe Ubuntu14.0.4 64bit 环境配置说明(无CUDA)
- C#接口和编程实例
- 教你如何写框架------元素管理篇
- 编译Android系统源码和内核源码
- Paraview与VTK学习笔记(六)//representation篇
- [LinkedIn] Find K nearest (closest) neighbors from point (comparator/comparable, priority queue )