2021-09-22 JAVA基本语法

1.UUID.randomUUID().toString()是javaJDK提供的一个自动生成主键的方法。UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的,是由一个十六位的数字组成,表现出来的 形式。
2.new Data() //返回系统时间yyyy-mm-dd hh:mm:ss.xxxxxx

  1. varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。”

  2. Java 标识符
    Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符:
    所有的标识符都应该以字母A-Z或者a-z,美元符$、或者下划线_开始,首字符之后可以是字母A-Z或者a-z,美元符$、下划线_或数字的任何字符组合
    关键字不能用作标识符
    标识符是大小写敏感的
    合法标识符举例:age、$salary、_value、__1_value
    非法标识符举例:123abc、-salary

  3. 一个源文件中只能有一个 public 类
    一个源文件可以有多个非 public 类

  4. 数据类型

  • 数字类型 整数型
byte short int long
8位 16位 32位 64位

byte 0-255(000000000--111111111)

  • 数字类型 浮点型
    -- double 双精度 64位
    -- float 单精度 32位
  • 字符型char 类型是一个单一的 16 位 Unicode 字符;
    最小值是 \u0000(十进制等效值为 0);
    最大值是 \uffff(即为 65535);
    char 数据类型可以储存任何字符;
    例子:char letter = 'A';。
  • Boolean型: true, false
  1. Java语言支持的变量类型有:
    类变量:独立于方法之外的变量,用 static 修饰。
    实例变量:独立于方法之外的变量,不过没有 static 修饰。
    局部变量:类的方法中的变量。
public class Variable{
    static int allClicks=0;    // 类变量
    String str="hello world";  // 实例变量
    public void method(){
        int i =0;  // 局部变量
    }
}
  1. private 在同一类内可见。不能修饰类。
    public对所有类可见。可修饰类。

  2. 静态变量是指声明为 public/private,final 和 static 类型的变量。静态变量初始化后不可改变。

a = 10;
c = 10;
b = a++;   //等价于 b=a, a=a+1;
d = ++c;  //等价于  c = c+1,d = c;
    • super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
  • this关键字:指向自己的引用。
  1. 子类不继承父类构造器,若父类构造器有参数,需在子类的构造器中显式地通过 super 关键字调用父类的构造器。

  2. 构造方法
    当一个对象被创建时候,构造方法用来初始化该对象。构造方法和它所在类的名字相同,但构造方法没有返回值。
    通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象

// 一个简单的构造函数
class MyClass {
  int x;
  // 以下是构造函数
  MyClass() {
    x = 10;
  }
}
  1. next() 以有效字符后的空白格为结束符或分隔符
    nextLine()以回车键结束\

  2. e.printStackTrace() ;
    printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。(这是白话解释,比较容易理解)

  3. 无论是否发生异常,finally 代码块中的代码总会被执行。

  4. java类中为什么要有get和set方法,而不是直接(类.属性)出来属性。
    java中属性有四个修饰符private、protected、public和default,每个修饰符的访问权限不同。

  • public:可以被所有其他类所访问
  • protected:自身、子类及同一个包中类可以访问
  • default:同一包中的类可以访问,声明时不加修饰符,默认为default。
  • private:只能被自己访问和修改
    当修饰符不是public,属性访问权限被限制,其它类想要使用该属性就要借用该类中的getset方法进行操作。
    对外访问,使用getName,而不是name
  1. 采用 this 关键字是为了解决实例变量(private String name)和局部变量(setName(String name)中的name变量)之间发生的同名的冲突。

  2. 类实现接口,使用关键字implements
    继承,使用关键字entends

  • 一个类可以同时实现多个接口。
  • 一个类只能继承一个类,但是能实现多个接口。
  • 一个接口能继承另一个接口,这和类之间的继承比较相似 用extends
  1. Abstract表示抽象类,抽象类本身不可实例化,必须有子类去继承,且子类中实现抽象父类中所有的抽象方法,子类才可实例化。
    final修饰的类,不可继承。

两者不能同时修饰一个类

  1. Java Application 中的主类需包含main方法,main方法的正确形参:
    String[] args / String args[] / String... args都是正确的。

  2. 内部类可以是静态static的,也可用public,default,protected和private修饰,
    外部类的修饰符只能是public,abstract,final
    static可以用来修饰内部类,但是不可以用来修饰外部类
    static修饰的为类成员,会随着类的加载而加载,比如静态代码块,静态成员,静态方法(这里只是加载,并没有调用)等等,可以想象一下,如果把一个Class文件中的外部类设为static,目的难道是让这个类随着应用的启动而加载吗?如果在这次使用过程中根本没有使用过这个类,那么是不是就会浪费内存。这样来说设计不合理,总而言之,设计不合理的地方,Java是不会让它存在的。
    而为什么内部类可以使用static修饰呢,因为内部类算是类的成员了,如果没有使用静态来修饰,那么在创建内部类的时候就需要先有一个外部类的对象,如果我们一直在使用内部类,那么内存中就会一直存在外部类的引用,而我们有时候只需要使用内部类,不需要外部类,那么还是会浪费内存,甚至会造成内存溢出。使用static修饰内部类之后,内部类在创建对象时就不需要有外部类对象的引用了。

  3. 线程安全

  • 线程不安全的:ArrayList ,LinkedList, PriorityQueue,TreeMap,TreeSet,HashMap,HashSet,StringBilder

  • 线程安全的: Vector,Stack,Dictionary ,StringBuffer.

  1. 子类父类构造方法调用顺序
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容