java是sun公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。
- hello world
安装好jdk后,创建一个test.java文件,写入以下代码1
2
3
4
5
6public class test1{
public static void main(String[] args){
System.out.println("hello world!");
}
}
保存后,在终端切到文件对应目录,运行javac test.java编译文件,编译后在当前目录会生成一个test1.class文件,在终端直接执行java test1,就会打印出hello world! - 变量声明
1
2
3
4
5
6
7public class test1{
public static void main(String[] args){
// 变量声明方式: 变量类型 变量名 [= value];
String name = "storm";
System.out.println(name);
}
} 变量类型
1
2
3
4
5
6int a, b, c; // 声明三个int型整数:a、 b、c
int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值
byte z = 22; // 声明并初始化 z
String s = "runoob"; // 声明并初始化字符串 s
double pi = 3.14159; // 声明了双精度浮点型变量 pi
char x = 'x'; // 声明变量 x 的值是字符 'x'。条件判断
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23public class test2 {
public static void main(String[] args){
/*
if (条件1){
逻辑1
}else if (条件2){
逻辑2
}else{
逻辑3
}
*/
int a = 59;
if ( a >= 80 ){
System.out.println("优秀"+a);
}else if (a< 60){
System.out.println("不及格"+a);
}else {
System.out.println("良好"+a);
}
}
}循环
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public class test2 {
public static void main(String[] args){
for (int i = 0;i<10;i+=1){
System.out.println("0");
}
int j = 10;
while (j>0){
System.out.println("1");
j-=1;
}
int k = 0;
do {
System.out.println("2");
k += 1;
}while (k<10);
}
}类和方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public class test2 {
public static void main(String[] args){
for (int i = 0;i<10;i+=1){
System.out.println("0");
}
int j = 10;
while (j>0){
System.out.println("1");
j-=1;
}
int k = 0;
do {
System.out.println("2");
k += 1;
}while (k<10);
}
}- 修饰符
java修饰符有访问修饰符和非访问修饰符
- 访问修饰符有public,protected,private,default,
public修饰的成员对任何类的成员可见
protected修饰的成员对同一包下的类成员和子类成员可见
default修饰的成员只对同包下的类成员访问,子类不可访问
private修饰的成员只能被自身的类访问,
2。 非访问修饰符有static,final,abstract,transient,volatile,synchronized
static修饰类表示内部类,可以直接实例化;修饰方法不需要实例对象也可以访问,修饰变量所有实例都可以访问
final修饰类不可以继承,修饰方法不可以重写,修饰变量不可以修改
abstract修饰类不可以实例化,即使用必须继承,修饰方法没有实现,子类必须要实现
transient,修饰变量,无需序列化
violate修饰变量,用于多线程,在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
synchronized修饰方法使方法同一时间只能被一个线程访问
包封装的实验
创建目录package1,切换到package1里,创建第一个java文件test1.java,写入代码package1/test1.java 1
2
3
4
5
6
7package package1;
public class test1 {
public void myprint(){
System.out.println("hello");
}
}创建第二个java文件,test2.java,写入代码
package1/test1.java 1
2
3
4
5
6
7package package1;
public class test2 {
public static void main(String[] args){
test1 test22 = new test1();
test22.myprint();
}
}切换到package1同级目录下,javac package1/test1.java ;javac package1/test2.java 编译文件,然后运行,java package1.test2 输出”hello”
若要在其他包下面使用myprint方法,可以使用import package1.test1; 语句导入HashMap
普通数组通过下标作为内容索引,而map使用自定义key进行对value的索引package1/test1.java 1
2
3
4
5
6
7
8
9
10import java.util.HashMap;
public class test3 {
public static void main(String[] args){
HashMap<String, String> dic = new HashMap<>();
dic.put("name","storm");
dic.put("sex","man");
System.out.println(dic);
System.out.println(dic.get("name"));
}
}输出结果为:
{sex=man, name=storm}
storm
put还可以用来修改某一个已存在的key对应的值,例如dic.put(“name”,”fx”); 就可以将name对应的value改为fx,更多详细用法这里就不一一列出了