由于很长一段时间繁重的课业负担,对Java的学习中断了近两个月时间,博客园博客也荒弃了很长一段时间,。从今天开始准备重新高质量地系统复习一遍Java基础,每天做笔记,废话不多说,就从现在开始吧!加油!!!
sun公司将Java划分为3个技术平台,分别是JavaSE(Java Standard Edition)标准版,是为开发普通桌面和商务应用程序提供的解决方案,JavaEE和JavaME都是从JavaSE的基础上发展起来的。JavaSE中包含了Java中最核心的类库,如集合,IO,数据库连接及网络编程等。Java EE(Java Enterprise Edition)企业版是为开发企业级应用程序提供的解决方案。JavaME是为开发电子消费产品和嵌入式设备提供的解决方案。
Java语言的特点:简单性,面向对象性,安全性,跨平台性,支持多线程。
JDK(Java Development KIt)Java开发程序,是整个Java的核心。包括Java编译器,运行工具,文档生成工具,打包工具等。
JRE(Java runtime Environment)Java运行环境。JDK中包含JRE(开发环境中自然包含运行程序)
标识符规范:
包名一切字母都小写。
类名和接口名每个单词的首字母大写,such as: ArrayList
常量所有字母都大写,且每个单词用下划线分割。 such as : DAY_OF_MONTN
变量名和方法名首单词小写,后面单词首字母大写。 such as : getLineNumber
Java 中的常量:
整形常量:二进制(要以0B或0b开头,如0b010111100)八进制(要以0开头,如01234567)十进制,十六进制(以0X或0x开头,如0x28FA)
浮点数常量:单精度浮点数(float,以f或F结尾)双精度浮点数(double,以D或d结尾)。使用浮点数不加结尾Java虚拟机默认是Double类型。
字符常量:如‘a’,'$','\u0000'。Java默认使用Unicode字符集,Unicode字符集以‘\u’开头。
字符串常量,布尔常量。null常量。
Java是一门强类型的编程语言。
整数类型变量:
byte 8位(1字节) -2^7----2^7-1
short 16位(2字节) -2^15----2^15-1
int 32位(4字节) -2^31----2^31-1
long 64位(8字节) -2^63----2^63-1
给Long类型赋值时超出int类型数值范围要在数值后面加L或l.如:long a=999999999999999L。long a=123L。long a=123 都合法。
浮点数类型变量:
float 32位(4字节) 1.4E-45—3.4E+38,-3.4E+38— -1.4E-45
double 64位(8字节) 4.9E-324—1.7E+308,-1.7E+308 — -4.9E-324 E 表示以10为底的指数
在Java中一个小数会被默认位double类型,要定义float类型要在数值后加“F”
浮点数类型也可以赋整数,如:double a = 100;
字符类型变量:char
布尔类型变量:boolean
变量类型转换:
自动类型转换:
1,整数类型之间可以自动转换,如byte 类型的数据可以自动赋值给short ,int,long.而不报错。short,char类型的数据可以赋值给int,long.类型变量,int可以赋值给long。
2,整数类型可以转换成float类型,如byte,char,short,int类型的数据可以赋值给float类型的变量。
3,其他类型转换为double类型:如 byte,char,short,int,long,float类型都可以赋值给double类型变量。
强制类型转换:
不支持自动转换的情况时,需要强制转换。例:
int number=4;
byte num=number; //报错,int数据类型不支持自动转换为byte型
System.out.println(num);
//需要强制类型转换:
byte num=(byte)number;
将int数据类型转换成byte类型后可能会出现丢失精度的情况,如int类型数为298时,转换成byte 类型就成了42.这是因为int类型在内存中占用4个字节,byte 类占用1个字节,将int数据强转为byte时,前面三个高字节的数据丢失,只保留低字节00101010转化为10进制数为42。
补充:表达式类型自动提升:
变量在表达式中进行运算时,也有可能发生自动类型转换。下例说明:
public class em1 {
public static void main(String[] args) {
byte a=3;
byte b=4;
//byte c=a+b; //报错,此处byte类型在运算期间被自动提升为int类型进行计算,需要强转如下
byte c=(byte)(a+b); //正确
System.out.println(c);
}
算术运算符:++ --(a++,先进行其他,再自加。 ++a,先进行自加,再进行其他)
int a=1;
int b=2;
int x=a+b++;
System.out.println("b="+b); //3
System.out.println("x="+x); //3
在进行除法运算时,当除数和被除数都是整数时,得到的结果也是整数,有小数参与时,得到的结果就是小数。
如 3500/1000*1000的结果是3000 3500/1000=3,3*1000=3000
在进行取模运算(%)时,模的正负取决于被模数(%左边的数),与模数无关。如(-5)%3=-2;5%(-3)=2
赋值运算符:a+=b就是a=a+b,其他运算符号同理。
逻辑运算符:&与 |或 ^异或 !非 &&短路与(全部为true时为true) ||短路或(只要有true就是true)
附注:&与&&; |与||的区别:从运算结果上看是一样的,在运行上,&两边的条件都要判断(不管前面的是ture还是false),而&&先判断前面的,若为false,则后面的不再运行判断,一定程度上提高了效率,这一点在以后可能还会有更深刻的意义,到时候再剖析论述。
运算符的优先级:没有必要刻意去记忆运算符的优先级,编写程序时,尽量使用“()”来实现想要的运算顺序就好了,因为()拥有最高的优先级。
come on !