JAVA基础-语言
来源:互联网 发布:2016淘宝好评返现规则 编辑:程序博客网 时间:2024/06/16 21:54
java语言的三种架构
J2EE:Java 2 Platform Enterprise Edition 企业版 --->JAVAEE
J2SE: Java 2 Platform Standard Edition 标准版 --->JAVASE
J2ME:Java2 Platform Micro Edition 小型版 --->JAVAME
标识符
1.在程序中自定义一些名称2.由26个字母组成;0-9;_ 和$
3.数字不能开头
4.严格区分大小写,类名首字母大写较好
注释1. 单行注释 //
2. 多行注释
/*
这是
注释
*/
3.java特有注释
/**
文档注释。
*/
4. 单行注释中可以有单行和多行注释;
5. 多行注释中可以有单行注释,但不能有多行注释;
6. 多行注释可以在程序出现错误的时候逐步缩小错误的范围;
7. java编译器编译的时候去掉了注释;
负数的二进制
1.把负数转变为补码(取反再加一)表示,比如-6 ,6的二进制为0110,取反1001,加1为1010
变量
1. System.out.println('你'+1);//unicode国际标准码表
2. byte b=4;//b是一个字节
byte b = 4 ;//将一个4字节的整数截取后赋值给b
byte b1 = 3 ;
byte b2 = 4 ;
b = 3 + 4 ; //ok,常量,能确定范围
b = b1 + b2 ; //error ;b1,b2为变量,不能确定范围,有可能超出b的范围;demo.java:12: 错误: 不兼容的类型: 从int转换到byte可能会有损失
还有为什么,编译器会这样要求,那如果两个int相加,就不会超出int范围吗??
而两个int类型进行相加运算 java内部机制会默认int运算,一旦超出这个范围,他自动底层有强制转换过程,保留自己原有位置、高位全舍弃 这就是byte和int的区别,int属于默认类型,他就没有byte上面那样的问题
byte和short类型“变量”,相加不能确定结果,无法检查,也不是默认类型,所以byte、short类型相加的时候,都会自动提升到int类型的
3.
按位与:a&b是把a和b都转换成二进制数然后再进行与的运算;
逻辑与:a&&b就是当且仅当两个操作数均为 true时,其结果才为 true;只要有一个为零,a&&b就为零。
例如:
a&b 9&8
1001
1000
结果是1000
a&&b 9&&8 结果是1
4.
3<<2 相当于3*2(2) = 12;3>>1 相当于3/2 = 1
无符号右移:数据进行右移时,高位出现的空位,无论原高位是什么,空位都用0补;
把一个二进制数右移N位,规则为:
除符号位外,全部右移N位,
如果数字是一个无符号数值,则用0填补最左边的N位,
如果数字是一个有符号数值,则用1填补最左边的N位,
也就是说如果数字原先是一个正数,则右移之后在最左边补N个0;如果数字原先是个负数,则右移之后在最左边填补N个1。
例子:
0000 0010 >> 1 = 0000 0001
0000 1010 >> 2 = 0000 0010
1000 0010 >> 1 = 1100 0001
1000 1010 >> 3 = 1111 0001
5.两个数交换;
a = a ^ b;
b = a ^ b; // b = (a ^ b) ^ b 一个数异或同一个数两次, 结果还是这个数;相当于b= a;了
a = a ^ b; // b = (a ^ b) ^ b
2.比较他们的字节数
备注:1字节(Byte)=8位(Bit)
3.转换中的知识点
*java中整数类型默认的int类型;小数类型默认的double;
*char 可以当做一中特殊的整数类型;
*int无法转换为boolean;
*小数类型转为整数类型,小数可能被舍弃,所有出现精度损失,所以需要强制转换;
*boolean 类型不能转换成任何其它数据类型;
byte b2 = 120;//没报错的原因://编译时候,进行检查,看赋值大小是否超过变量的类型所容纳的范围//如果超过,报错:从int转换到byte可能会有损失,如果没超过,编译通过
float f3 = 100L; 这种情况,整数部分,可以直接赋值给float整数部分
float f1 = 100.9; 这种情况,因为默认的是double,如果这样转换,有可能失去小数点,必须强制转换
long l3 = 1000.9f; 小数转为整数,小数可能丢失,需要强制转换
double d2 = 10.9d;int i2 = d2; //错误: 不兼容的类型: 从double转换到int可能会有损失
char c1 = 'a';int i3 = c1; //自动转换int i4 = 100;//char c2 = i4;// 错误: 不兼容的类型: 从int转换到char可能会有损失
4.四则运算中
/*
1、如果两个操作数中有一个是double类型,另一个就会转换为double类型;
2、否则,如果有一个操作数是float,另一个就会转化为float;
3、否则,如果有一个操作数是long,另一个就会转换为long;
4、否则,两个操作数都将转换为int类型。
*/
*面试陷阱
byte b1 = 10;byte b2 = 11;//错误: 不兼容的类型: 从int转换到byte可能会有损失//否则,两个操作数都将转换为int类型。byte b3 = b1 + b2 //错误byte b3 = (byte)(b1 + b2); //正确
*面试陷阱2:
short s1 = 1; s1 = s1 + 1; //错误: 不兼容的类型: 从int转换到short可能会有损失short s2 = 1; s2 += 1; // 等同于short s2 = (short)(s2 + (short)1); //正确
5.最后是从小到大顺序图一张
- [java] java语言基础
- Java-Java语言基础
- Java语言基础
- JAVA语言基础
- JAVA语言基础
- Java 语言基础
- Java语言基础(一)
- Java语言基础学习
- Java语言基础:泛型
- Java语言基础:RTTI
- Java语言基础:RTTI
- Java语言基础:多线程
- Java语言基础:多线程
- Java语言基础:多线程
- Java语言基础
- Java语言基础(一)
- Java语言基础总结
- Java语言基础(二)
- Python 异常处理
- 玩够了 ,该学习了 不要再懒下去了
- 2017-10-19当前面临的主要问题及相关调整
- mac 安装nginx
- Ajax登录效果源码
- JAVA基础-语言
- linux下终端配置透明度
- Docker的革命性变革-宣布Docker企业版
- oracle数据库sql语句04
- java运行时数据区
- mycat1.6.5分片(范围)
- python圣斗士修炼(三):运算符
- 笔记-决策树
- Java: 接口和抽象类