1. java语言的核心机制
java虚拟机(jre)和垃圾回收机制
2. 第一个用java语言编写的程序
Ø Java程序的开发工具
记事本,ue
集成开发工具 eclipse 或者myeclipse
开发出来的java代码,存放在.java文件中。
文件名:和(public class)共有的类名一致。
Ø Java的开发环境和运行环境的配置安装
需要安装jdk 1.6(开发工具包)版本,在装jdk时默认会让你装jre(java运行环境)。
第二步,配置环境变量
Java_home: C:\Java\jdk1.6.0_10
Path: C:\Java\jdk1.6.0_10\bin
Classpath: 如果在程序中用别人写好的类,需要通过该变量来设置别人写好类的存在路径。不设置该变量,默认是当前路径。
Ø 写好的java程序如何运行?
分两步:
第一步先编译,javac指令编译成 .class文件(字节码文件)
第二步运行:java指令
Ø 演示用集成开发工具如何来开发java代码??
第一步:创建工程
第二步:src文件夹下面编写java代码
第三步:java代码用包来组织。(创建包)
第四部:创建java类
如何运行?
Run as》》》java application….
3. Java语言的标示符
4. Java语言的常量
整型 23 八进制 023或者十六进制0x23
浮点数:23.0 默认的是double类型的常量。
Float类型的常量:23.0f
float f1=23.0f;
字符型:’a’ ‘\u四位十六进制的编码’ 23 ‘\t’
char c1 ='老';//0~2E16-1
char c2 = 32769;
char c3 ='\u8736';
System.err.println(c1);//A
System.err.println(c2);//
System.err.println(c3);
布尔类型:true false
5. 变量
Ø 变化的量,如何能达到变化的量效果?
变量在内存中一块区域,这块区域存储的信息可以改变。
如何定义变量?变量在使用之前需要进行声明。
Ø 语法规则:
数据类型变量名;
数据类型有哪些?
boolean byte short int long double float char
类名等
Ø 变量名:命名规则同java标示符。
开发规范:
首字母要小写,最好采用驼峰式命名规则
比如,定义一个用户名变量
String userName;
Ø 变量的分类:
根据变量的作用域不同进行划分:
分为局部变量和成员变量
局部变量:
在方法或者代码块中声明的变量成为局部变量
成员变量:
在类中声明的变量成为成员变量。
二者的区别?
局部变量在使用前必须初始化。
而成员变量在使用前可以不用进行显示的初始化。
publicclass DefaultValue {
privateintage;//成员变量
booleanboo;//成员变量
publicstaticvoid main(String[]args) {
DefaultValue d = new DefaultValue();
System.err.println(d.age);//0
System.err.println(d.boo);//false-默认值
booleanboo1;//局部变量
System.err.println(boo1);//这个变量因为是局部变量没有设置值所以编译异常
}
}
成员变量默认的初始化值是什么?
默认值(当这个变量为成员变量时才会有默认值) |
False—布尔类型 |
0 –btye |
0—short |
0—int |
0L—long |
‘\u0000’—char |
0.0F float |
0.0D double |
引用数据类型:
Null
6. 数据类型
一个字节是8位bit
00000000 00000000 00000000 00000000
数据类型 | 关键字 | 在内存中占用字节数 | 取值范围 | 默认值(当这个变量为成员变量时才会有默认值) |
布尔型 | boolean | 1 - byte | true,false | false |
字节型 | byte | 1 | -128~127 | 0 |
短整型 | short | 2 | -215 ~ 215-1 | 0 |
整型 | int | 4 | -231 ~ 231-1 | 0 |
长整型 | long | 8 | -263 ~ 263-1 | 0L |
字符型 | char | 2 | 0 ~ 216-1 | ‘\u0000’ |
单精度浮点型 | float | 4 | 1.4013E-45 ~ 3.4028E+38 | 0.0F |
双精度浮点型 | double | 8 | 4.9E-324 ~ 1.7977E+308 | 0.0D |
数据类型的转换:
自动转换
强制转换
两类
什么情况下能自动转换?
优先级低可以向优先级高的自动转换。
什么情况下需要进行强制类型转换?
从优先级高的向优先级低的,需要强制转换。
语法规则: (需要转换的类型)表达式。
基本数据类型优先级的顺序?
通过上图可以看到:
Byte short char优先级相同。
这三种数据类型在计算时,统一转换为int类型,然后再进行计算。
float f2=23.0f;
double d1=f2;//自动类型转换:把float类型的变量可以自动转换为double类型的变量
int i1=(int)f2;//float类型的变量能自动转换为int类型的变量?需要进行强制类型转换
char c4='a';
byte b1=3;
short s1=2;
short result=(short)(c4+b1+s1);
//当表达式中有int类型的常量,表达式返回的是int类型的值
//(规则:表达式计算时,统一转换为高优先级的数据类型,然后再进行计算)
float f3=c4+2+2.0;
doubled2=c4+2+2.0;
数据类型转换,表达式计算时规则:
A、 char short byte类型的操作数会统一转换为int类型,然后进行计算;
B、 表达式计算时,统一转换为高优先级的数据类型,然后再进行计算(当表达式中有int类型的常量,表达式返回的是int类型的值)
7. Java语言支持的运算符
算数运算符:++ ——
inta = 3;
//int b = a++;//先把a的赋值表达式,然后a本身累加;
int b = ++a;//a本身先累加,然后再把a的赋值表达式;
System.err.println(b+","+a);//3,4,因为先将a的值赋给b,再做a+1
逻辑运算符:短路与&&和短路或||
//&与
//&&,||
//||短路或 - 两个只要有一个为true就是true
boolean boo = (2==2)||(2/0==1);//由于前面为true所以后面就不再参加运算了
System.err.println(boo);
// &&,两边必须都是true才是true
boolean boo2 = (2!=2)&&(2/0==1);//如果前面已经为false则后面不再加入运算
System.err.println(boo2);
扩展的赋值运算符:
int i=8;
i+=8;
//等价与i=(int)(i+8)
int rsult=i;
System.out.println(rsult);
// System.out.println(i+=8);
shorts=8;
//s+=8;
s=s+8;
short result2=s;
System.out.println(result2);
字符串的拼接运算符:+
当+两边有一个操作数是字符串,那么该运算符字符串拼接运算符。
String str="afsd";
int i2=8;
System.out.println(str+i2);
条件运算符:
表达式1?表达式2:表达式3
如果表达式1为true:返回表达式2的值,否则返回表达式3的值。
比较运算符:
== > >= < <=等等
==运算符:
比较运算符两边的操作数是否相等,如果相等的话,返回的true,否则返回的是false
== :当是引用类型时,比较的是两个操作的数变量的地址,是否相等。当是基本类型是比较的是内容。
什么情况用该符号进行比较相等呢?
基本数据类型比较可以用该符号。
当是引用数据类型时,进行比较用 equals方法进行比较。
int i=8;
int j=8;
System.out.println(i==j);
String str1="abc";
String str2="abc";
System.out.println(str1==str2);
String str3=new String("abc");
String str4=new String("abc");
System.out.println(str3==str4);
System.out.println(str3.equals(str4));
8. Java语言的表达式
表达式的运算规则:
从左向右进行遍历计算。
当表达式中有不同的运算符,你需要掌握运算符的优先级顺序。
如果不掌握的话,可以()符号来设定不同的优先级。
9. Java语言的语句
If else
Switch case
For
Do while
While等