Java
目录1.我的第一个Java程序
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
编译:
javac Main.java
该命令将java源文件编译为class字节码文件
执行:
java Main
该命令将执行class字节码文件
2.Java简介
JavaSE(J2SE)java平台标准版
JavaEE(J2EE)java平台企业版
JavaME(J2ME)java平台微型版
java特性:简单,面向对象,分布式,健壮性,安全,可移植,解释型,高性能
3.开发环境
JDK:Java Development Kit,Java开发工具包,包含:
- Java编译器(javac):能够把Java源文件(.java后缀)编译成字节码文件(.class后缀),让代码可以在Java虚拟机上运行。
- Java运行时环境(JRE):JDK内置了JRE,从而为Java程序运行提供必备的运行基础,包括Java虚拟机和Java类库等。
- 调试工具(jdb等):辅助开发者定位、排查代码中的错误,比如找出程序运行时出现的异常,逻辑错误等,提升代码质量。
- Java文档生成工具(javadoc):可以依据java代码中的注释,自动生成规范的API文档,方便开发者之间共享代码,以及后续代码维护。
4.Java基础
- 对象:对象就是一个实例,有状态和行为。
- 类:类是一个模版,它描述一类对象的行为和状态。
- 方法:方法就是行为,一个类可以有很多方法。
- 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
public class Main {
// 访问修饰符 关键字 返回类型 方法名 String类 字符串数组
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Java修饰符:
- 访问控制修饰符:default,public,protected,private
- 非访问控制修饰符:final,abstract,static,synchronized
5.注释
- 单行注释
- 多行注释
- 文档注释
6.Java对象和类
创建对象:
- 声明:声明一个对象,包含对象名称和对象类型
- 实例化:使用关键之new来创建一个对象
- 初始化:使用new创建对象时,会调用构造方法初始化对象
public class Puppy{
public Puppy(String name){
//这个构造器仅有一个参数:name
System.out.println("小狗的名字是 : " + name );
}
public static void main(String[] args){
// 下面的语句将创建一个Puppy对象
Puppy myPuppy = new Puppy( "tommy" );
}
}
7.基本数据类型
自动类型转换:byte,short,char->int->long->float->double
8.基本命名规则
变量:驼峰命名
常量:大写字母,单词之间用下划线分割
9.修饰符
访问控制修饰符:public,protected,default,private
非访问修饰符:
static 修饰符
- 静态变量:类变量,唯一
- 静态方法:静态方法不能使用类的非静态变量
final 修饰符
- final 变量:不能修改
- final 方法:可以被子类集成,但不能被子类重写,声明final方法的主要目的是防止该方法的内容被修改
- final 类:final类不能被继承,没有类能够继承final类的任何特性
abstract 修饰符
- 抽象类:抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。
- 抽象方法:抽象方法是一种没有任何实现的方法,该方法的具体实现由子类提供
synchronized 修饰符
synchronized 关键字声明的方法同一时间只能被一个线程访问
transient 修饰符
序列化的对象包含被transient修饰的实例变量时,Java虚拟机跳过该特定的变量
volatile 修饰符
volatile 修饰的成员变量在每次 被线程访问时,都强制从共享内存中重新读取该成员变量的值。
10.String类
String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上:
String s1 = "Runoob"; // String 直接创建
String s2 = "Runoob"; // String 直接创建
String s3 = s1; // 相同引用
String s4 = new String("Runoob"); // String 对象创建
String s5 = new String("Runoob"); // String 对象创建
- 字符串长度:.length()
- 字符串连接:.concat()
- 字符串格式:.format()
11.StringBuffer 和 StringBuilder
对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类
和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象
区别:StringBuilder类在Java5中被提出,它和StringBuffer之间的最大不同在于StringBuilder的方法不是线程安全的(不能同步访问)。由于StringBuilder相较于StringBuffer有速度优势,所以多数 情况下建议使用StringBuilder类
12.流(stream),文件(File)和IO
从控制台读取多字符输入:
//使用 BufferedReader 在控制台读取字符
import java.io.*;
public class BRRead {
public static void main(String[] args) throws IOException {
char c;
// 使用 System.in 创建 BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("输入字符, 按下 'q' 键退出。");
// 读取字符
do {
c = (char) br.read();
System.out.println(c);
} while (c != 'q');
}
}
=================================================
输入字符, 按下 'q' 键退出。
runoob
r
u
n
o
o
b
q
q
从控制台读取字符串
//使用 BufferedReader 在控制台读取字符
import java.io.*;
public class BRReadLines {
public static void main(String[] args) throws IOException {
// 使用 System.in 创建 BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
System.out.println("Enter lines of text.");
System.out.println("Enter 'end' to quit.");
do {
str = br.readLine();
System.out.println(str);
} while (!str.equals("end"));
}
}
==================================
Enter lines of text.
Enter 'end' to quit.
This is line one
This is line one
This is line two
This is line two
end
end
写不需要Buffer,直接OutputStreamWriter
标签:01,Java,String,修饰符,System,java,public,se From: https://www.cnblogs.com/brownjy/p/18660130