Java_基础总结

基础知识总结。

 


一、运行环境

  jdk:开发工具包,包括了jre、jvm。

  jre:运行时环境,包括了jvm。

  jvm:虚拟机,Java实现跨平台的核心。

编译:

  使用javac,将.java源文件编译为.class文件。

运行:

  使用java,运行.class文件。


二、标识符

标识符用来给类、变量、方法起名字,可以使用字母数字下划线、美元符号。

  字符不止是英文字母。

  不能以数字开头。


三、类

类是对现实世界具体事务的抽象。

格式:

修饰符 class 类名{
    //变量
    修饰符  变量名;

    //构造器
   修饰符 类名(){
   
   }

    //方法
    修饰符  返回值类型   方法名(参数){

    }
}

修饰符:

  1、访问修饰符:

    public,公开的,所有类可以访问。

    protected,受保护的,子类可以访问。

    default,默认修饰符,同一包下的子类可以访问。

    private,私有的,只有当前类可以访问。

  2、非访问修饰符:

    package,包声明:

      在源文件中非注释的第一行,说明此类属于哪个包。

    import,导入:引入外部的类。

    import static,导入类的静态属性。

    static,静态修饰符,修饰的变量和方法存在方法区中:

      修饰变量时,变量为静态变量,从属于类,不依赖对象存在,可直接使用,局部变量不能被修饰为静态变量。

      修饰方法时,方法为静态方法,从属于类,不依赖对象存在,可直接使用,静态方法不能使用类的非静态变量。

    final,最终的:

      修饰变量时,变量不可修改,为常量,要求变量名全大写,字母以下划线分开。

      修饰方法时,方法不可被重写。

      修饰类时,类不可被继承。

    abstract ,抽象的:

      修饰类时,类为抽象类,不能实例化对象。

      修饰方法时,规定方法的返回值类型和参数类型,待子类来实现。

    synchronized,同步的:

      修饰方法时,为同步方法,此方法同一时间只能被一个线程访问。

      修饰语句块时,为同步块,此语句块同一时间只能被一个线程访问。

构造器:

  •   无返回类型(返回类型为类的实例)。
  •   通过new调用。
  •   手动定义后,不会自动生成无参构造器。
  •   构造方法执行时,会先执行super()调用父类构造器。

四、数据类型

1、基本数据类型:

  数字类型:

     整型:byte(1字节)、shot(2字节)、int(4字节,默认)、long(8字节)

     浮点型:float(4字节)、double(8字节,默认)

  字符类型:char(2字节)

  布尔类型:boolean(1位)

2、引用数据类型(4字节):

  数组、对象、接口。

3、类型自动转换:

  byte、short、char-------->int

  表达式中有long,结果为long。

  表达式中有double,结果为double


五、变量类型

1、局部变量:

  从属于方法或语句块,不会自动初始化。

2、成员变量:

  从属于对象,会自动初始化:0、0.0、false、\u0000、null。

3、静态变量:

  从属于类,会自动初始化。


六、运算符

赋值:=

算术:+、-、*、/、%

关系:>、<、>=、<=、==、!=

逻辑:&&(短路)、||(短路)、!、&(不短路)、|(不短路)

位运算:&、|、<<、>>。(左移一位:乘以2;右移一位:除以2。)简单取反操作

扩展:++、--、+=、-=、*=、/=

三目运算:表达式?返回值1:返回值2;


七、控制语句

1、顺序,正常代码由上往下执行。

2、选择:

  if

  if....else

  if....if else....if else .....else

 

  switch(int或者枚举){

    case  值1:

    ...

    case  值2:

    ...

    default:

    ...

  }

  注意:byte、short、char可以自动转为int,jkd1.7之后支持String类型

3、循环

  while

  do  while

  for

4、结束

  continue,结束本次循环。

  break,结束循环语句。


八、封装、继承、多态

方法重载(overload):

  两同:同一个类,同一个方法名。

  三不同:(参数列表)不同类型、个数、顺序。

方法重写(override):

  子类重写父类的方法。

  要求:

    方法名一致

    子类访问修饰符权限大于等于父类的

    子类返回值小于等于父类的

    子类异常声明类型小于等于父类的。

1、封装(Encapsulation):

  使用访问修饰对属性方法进行封装。要求“高内聚、低耦合”。

2、继承(extends):

  代码重用。

  对现实世界更加准确的建模。

  所有类都是Object类的子类。

3、多态(polymorphic):

  存在多个子类继承。

  存在方法的重写。

  父类引用指向子类对象。


九、抽象类、接口

抽象类:

  使用abstract声明的类,存在待实现的抽象方法(待子类重写的方法)。

接口:

  1、一个类可以实现多个接口。

  2、接口可以继承多个接口。

常用接口:

  可序列化:Serializable

  可克隆:Cloneable

  多线程:Runnable

  排序规则:Comparable


十、内存机制

1、栈:

  存放局部变量。

  储存空间空间连续,快。

  不可被多个线程共享。

2、堆:

  存放对象。

  储存空间不连续、灵活。

  可被多个线程共享。

3、方法区:

  存放类的信息:代码、静态变量、常量...

  储存空间不连续、灵活。

  可被多个线程共享。

       类的加载过程


十一、垃圾回收

Java是自动回收垃圾的。

可以通过System.gc()方法向系统建议回收垃圾。

可以通过finalize()方法释放非Java 资源。如打开的文件资源、数据库连接,或是调用非Java方法(native方法)时分配的内存(比如C语言的malloc()系列函数)。


十二、异常机制

1、捕获异常:try catch finally

2、抛出异常:thows

3、手动抛出异常:throw

4、自定义异常:extends Exception


十三、数组

概念:

长度固定。

元素类型一致。

通过下标引用。

数组也是对象,元素的初始化与成员变量一致。

多维数组:元素是数组。

初始化:

  动态初始化:先定义,然后一个一个赋值。

  静态初始化:例子:int[] a={1,2,3,4,5};

  默认初始化:int[] a = new int[5];

工具类:

  Arrays,包括了对数组的常用操作,排序、查找。


十四、容器

常用容器总结

 


十五、常用类

包装类:

  Boolean、Character、Byte、Short、Integer、Long、Float、Double

  实现基本数据类型与引用数据类型的转换。

  自动装箱、自动拆箱。

  缓存机制:

    给包装类对象直接赋值的时候,若值在缓存区内,则会指向缓存区内的值。(则使用==进行比较会获得true)

    1、Boolean,全部缓存。

    2、Character、Byte、Short、Integer、Long,缓存范围:-128 ~ 127

    3、Float、Double,无缓存。

字符串类:

  String,不可变字符串。

  StringBuilder,可变字符串,线程不安全。

  StringBuffer,可变字符串,线程安全。

     String被称为不可变字符串的原因

 

时间类:

  Date,使用时间戳来抽象时间。

  DataFormat,字符串与Date对象互转。

  Calendar,日期进行计算。

       时间对象的有关操作

 

文件类:

  File,抽象一个文件或文件夹。

       计算文件或文件夹大小

 

数学类:

  Math,常用的数学计算的函数。

枚举类:

  常用来定义一组常数,避免使用其高级特性(使用普通类即可)。

  枚举的使用

 


十六、IO流

常用IO流

 


十七、多线程

创建:

  多线程的几种创建方式

 

状态:

  1、new

  2、就绪

  3、运行

  4、阻塞:

    sleep,不释放锁。

    join,等待另一个线程结束。

    wait,会释放锁。

       synchronized,等锁。

  5、终止:建议使用boolean变量来使线程正常终止。

优先级:

  1-10,默认5。

死锁:

  不要同时持有多个对象的锁。

多线程总结

 


十八、网络编程

基于socket编程。

URL:

  网络资源定位符。

  通过openStream可以获得数据流。

TCP:

  面向连接的,安全稳定。

UDP:

  不面向连接的,高效的。

IP、端口、URL

使用TCP协议进行通信的基本流程

使用UDP协议进行通信的基本流程

 

posted @ 2023-01-09 11:11  在博客做笔记的路人甲  阅读(31)  评论(0编辑  收藏  举报