您的位置:首页 > 编程语言 > Java开发

Java SE 自学笔记1

2013-06-02 20:51 281 查看
Java SE 学习笔记1

【1.Java运行机制与JDK的配置】

1.Java程序需要编译,从而避免每次运行都需要重新解释,性能得到提高;在运行时依然保留解释,这样可以保证Java程序能跨平台;

2.Java程序的解释,由JVM(Java Virtual Machine,Java虚拟机完成,如果要运行Java程序,一定要为该平台安装Java虚拟机;

JRE=JVM+核心库

3.配置PATH环境变量

JDK的bin目录添加到PATH环境变量中,保证用户无需输 入 绝对路径即可使用javac、java命令(工具);

PATH环境变量的作用:让操作系统能找到用户所使用的的命令, PATH环境变量与Java不相干。

4.Java程序面向对象,因此Java程序最小的程序单位是类。

【2.使用Javac命令编译java程序】

1.文件名规定:

(1)文件名必须以 .java结尾,即扩展名必须是 .java;

(2)如果Java源文件中有public类,该源文件的主文件名必须与该public类的类名相同;如果源文件没有public类,该源文件的主文件名可以是任意的;

/***一个Java源文件只能有一个public类,普通类可以有多个一个源文件可以包含多个主类(包含main方法的类)***/

2.编译Java源程序的命令:javac

javac -d [目录] [java源文件] — 目录 指定将生成的二进制文件存放到哪个目录下

— 无需指定生成文件的文件名,该文件名总是:类名.class (注意类名和文件名的区别)

Java源文件中定义N个类,将会生成N个.class文件,每个.class文件对应一个类;

3.运行Java程序的命令: java

java -cp [目录] [Java类名] —目录指定JVM到哪个目录下去搜索Java类

如果没有指定 -cp 选项,java命令是根据CLASSPATH环境变量来搜索Java类,如果没有设置CLASSPATH环境变量, CLASSPATH环境变量的值是 . (当前目录), 如果设置了环境变量,就以设置的值为准。

CLASSPATH环境变量的作用是:告诉JVM到哪里去找索要运行的Java类。

4.若果希望一个类是可运行的,该类中必须包含一个入口:告诉系统从哪里开始运行;该入口就是主方法:

public static void main(String[] args)。

【3.Java注释】

1.文档注释只有放在类定义之前、方法定义之前、Field之前、内部类之前才有效。(注释格式 “ /** */ ”)

可以通过 javadoc命令可以直接提取注释文档,并根据文档注释来生成API文档。

javadoc -d [目录] Java源文件 —目录指定把生成的API 文档放在哪个目录下

2.API文档:API的使用说明书

API(应用程序编程接口):编程就是调用API控制系统。

【4.基本数据类型】

1.基本数据类型有:7个数值型(4个整型,2个浮点型,1个字符型 ),1个boolean 型;

(1)整型数据:byte(1个字节),short(2个字节),int(4个字节),long(8个字节);

当直接使用一个整型数据的时候默认的是int型,如果想使用 一个long型数据应该在整数后面添加L或l;

(2)浮点数(支持小数):float(4个字节) ,double(8个字节);

当直接使用的浮点型数据时默认的是double型,要使用float 型,应该在浮点数后面加f或F,一般推荐使用double型;

浮点数的3个特殊值:

1)正无穷大:所有正无穷大都相等
(Double.POSITIVE_INFINITY)

2)负无穷大:所有负无穷大都相等 (Double.NEGATIVE_INFINITY)

3)非 数:用0.0除以0就是非数,非数与本身不相等 (Double.NaN)

(3)char型:(2个字节)

1)每个char型变量只能装一个字符,既可以是英文,也可以是中文;注意Java里面的char型是2个字节,所以 可以是一个汉字(2个字节);可以直接用Unicode表示

2)字符型的变量,直接可以作为“正整数(0~65535)” 使用,注意最高位是数值位,不是符号位;

(4) boolean型 :只有两个值false和true。

2.关于整数的存储

(1)最高位是符号位(0正1负);

(2)所有数值在计算机里面都是以补码形式保存

原码:直接换算出来的二进制码

反码:(负数)除符号位不变外,其它位取反

补码:负数补码=反码+1;

正数补码=原码=反码;

【5.基本类型的数据转换】

1.Java是强类型的语言:

(1)所有变量必须先声明后使用

(2)指定类型的变量,只能装相应类型的值

2.Java的类型转换分为2种:

(1)自动类型转换:表数范围小的可以自动转换为范围大的

所有数值型,都可以自动转换外围double型;

所有数值型,除了double,都可以自动装换为float型;

所有整型都可以自动转换为long型;

直接写一个整数,默认是int型,但是如果这个整数的范围 在byte、short的表数范围内比并且程序直接八只赋给byte 、short,系统会自动把它当成byte、short用;

(2)强制类型转换:把表数的范围大的转换为表数范围小的

强制转换可能会丢失精度

(3)表达式类型的自动提升

规则:整个表达式的数据类型,与表达式中最高等级的运算数的类型相同;

【一个经典的例子:

public class 表达式的自动提升

{

public static void main(String args[])

{

byte bt = 2; // 2默认是int型,由于2在byte范围内,而且是直接赋整 数值,所以系统会将它对当成byte处理

/***************************

bt = bt +1; //编译错误

//因为 1 默认是int型(在这个表达式中是最高级),所以在这个表达式的类型应该为int 型,而 bt 变量是byte型,所以报 错,应该就加上强制转换, 正确的代码如 下

***************************/

bt =(byte) (bt + 1); //正确

System.out.println(bt);

}

}

直接量:直接在源代码中指定的值,就是直接量;

8个基本数据类型,都可以指定直接量;

boolean类型,只有两个直接量:false和true;

null直接量,只能赋给引用变量,不能赋值给基本数据类型的变量;

【6.运算符】

1.左移 << :右边补0

在没有数据溢出的情况下,左移n位相当于乘以2的n次方

2.右移 >> :左边补符号位

右移n位相当于截断右边的n位,即除以2的n次方

在除不尽的情况下,得到的值总比计算的精确值小(无论正负,即假设精确值是 1.333…… 则结果为 1;如果是 - 1.333…… ,则结果为 -2);

3.无符号右移 >>> : 无条件的在左边补 0 ;

4.扩展后的赋值运算符:

赋值运算符 = 可以与所有的双目运算符结合,形成扩展后的赋值运算符;值得注意的是在Java里面

a += b 并不等于 a = a + b ;而是等于

a = (a的类型)(a + b)

即默认含有一个类型强制转换,其它所有扩展后的赋值运算符都是一样如此。

5.比较运算符:只能返回true或false

6.逻辑运算符:操作数只能是boolean值(操作数既可以是变量,也 可以是直接量,也可以是表达式)

&& 和 || 会短路,即当到执行到某个操作数后能判断整个表达式 的值得时候就不会执行后面没有执行的操作数;

& 和 | 不会短路;

! 取反,单目运算符;

^ 异或,只有两个操作数不同时,才返回true;

7.三目运算符: ? :

逻辑表达式 ? 表达式1 : 表达式2

逻辑表达式为true返回 表达式1 的值,否则返回 表达式2 的值

8.不同运算有不同的优先级,所以一般尽量采用 () 来控制。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: