java-se-01

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.注释

  1. 单行注释
  2. 多行注释
  3. 文档注释

6.Java对象和类

创建对象:

  1. 声明:声明一个对象,包含对象名称和对象类型
  2. 实例化:使用关键之new来创建一个对象
  3. 初始化:使用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 对象创建
  1. 字符串长度:.length()
  2. 字符串连接:.concat()
  3. 字符串格式:.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

posted @ 2025-01-08 16:59  Brownjy  阅读(43)  评论(0)    收藏  举报