-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjava_study_note.txt
More file actions
77 lines (74 loc) · 3.37 KB
/
java_study_note.txt
File metadata and controls
77 lines (74 loc) · 3.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
java学习笔记
lisongze
--------------------------------------------------------------------------------
1 搭建开发环境
1.1 装jdk
下载地址oracle官网
http://www.oracle.com/technetwork/java/javase/downloads/index.html
安装jdk-8u45-windows-i586.exe
1.2 配置环境变量
PATH增加D:\Program Files\Java\jdk1.8.0_45\bin
1.3 验证JDK是否安装成功
cmd下输入javac
1.4 编写HelloWorld.java如下
public class HelloWorld {
public static void main(String args[]){
System.out.println("Hello,Java World!");
}
}
执行javac HelloWorld.java可生成HelloWorld.class
运行java HelloWorld 可看到打印信息 Hello,Java World!
2. Java数据类型
2.1 基本数据类型
数据类型 关键字 byte 取值范围 缺省数值
布尔型 boolean 8 true,false false
字符型 byte 6 0~65535
短整型 short 16 -32768~32767 0
整型 int 32 -2^31~2^31-1 0
长整型 long 64 -2^61~2^61-1 0
浮点型 float 32 3.4e-45~1.4e38 0.0F
双精度型 double 64 4.9e-324~1.8e308 0.0D
2.2 引用数据类型
数组 类 接口
3. 面向对象程序设计
3.1 类的引入
3.1.1 java类
通过class关键字定义类,Java中的类也是一种构造数据类型,但是进行了一些扩展
,类的成员不但可以是变量,还可以是函数;通过类定义出来的变量也有特定的称呼,叫做
“对象”。
3.1.2 构造方法
构造函数是一种特殊的函数。其主要功能是用来在创建对象时初始化对象,即为对
象成员变量赋初始值,总与new 运算符一起使用在创建对象的语句中。构造函数与类名相同
,可重载多个不同的构造函数。
3.1.3 关键字(this static)
this关键字,表示当前对象或当前类
static关键字 被static 修饰的成员变量和成员方法独立于该类的任何对象。也就
是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能
根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创
建之前访问,无需引用任何对象。
3.1.4 代码块
普通代码块:就是类中方法的方法体
public void xxx(){
//code
}
构造代码块:用{}裹起来的代码片段,构造块在创建对象时会被调用,每次创建对
象时都会被调用,并且优先于类构造函数执行。 构造块中定义的变量是局部变量。
{
//code
}
静态代码块:用static{} 裹起来的代码片段,只会被执行一次(第一次加载此类时
执行,比如说用Class.forName("") 加载类时就会执行static block),静态块优先于构造块
执行。
static{
//code
}
同步代码块:使用synchronized(obj){}裹起来的代码块,在多线程环境下,对共享
数据进行读写操作是需要互斥进行的,否则会导致数据的不一致性。常见的是synchronized
用来修饰方法,其语义是任何线程进入synchronized需要先取得对象锁如果被占用了,则阻
塞,实现了互斥访问共享资源。而synchronized 也是有代价的。一个常见的场景是,一个冗
长的方法中,其实只有一小段代码需要访问共享资源,这时使用同步块,就只将这小段代码
裹在synchronized block,既能够实现同步访问,也能够减少同步引入的开销。 同步代码
块须写在方法中。
synchronized(obj){
//code
}