1.UUID.randomUUID().toString()
是javaJDK提供的一个自动生成主键的方法。UUID(Universally Unique Identifier)
全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的,是由一个十六位的数字组成,表现出来的 形式。
2.new Data()
//返回系统时间yyyy-mm-dd hh:mm:ss.xxxxxx
varchar(100)
,指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。”Java 标识符
Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符:
所有的标识符都应该以字母A-Z
或者a-z
,美元符$
、或者下划线_
开始,首字符之后可以是字母A-Z
或者a-z
,美元符$
、下划线_
或数字的任何字符组合
关键字不能用作标识符
标识符是大小写敏感的
合法标识符举例:age、$salary、_value、__1_value
非法标识符举例:123abc、-salary
一个源文件中只能有一个 public 类
一个源文件可以有多个非 public 类数据类型
- 数字类型 整数型
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
- Java语言支持的变量类型有:
类变量:独立于方法之外的变量,用 static 修饰。
实例变量:独立于方法之外的变量,不过没有 static 修饰。
局部变量:类的方法中的变量。
public class Variable{
static int allClicks=0; // 类变量
String str="hello world"; // 实例变量
public void method(){
int i =0; // 局部变量
}
}
private 在同一类内可见。不能修饰类。
public对所有类可见。可修饰类。静态变量是指声明为 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关键字:指向自己的引用。
子类不继承父类构造器,若父类构造器有参数,需在子类的构造器中显式地通过 super 关键字调用父类的构造器。
构造方法
当一个对象被创建时候,构造方法用来初始化该对象。构造方法和它所在类的名字相同,但构造方法没有返回值。
通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象
// 一个简单的构造函数
class MyClass {
int x;
// 以下是构造函数
MyClass() {
x = 10;
}
}
next() 以有效字符后的空白格为结束符或分隔符
nextLine()以回车键结束\e.printStackTrace() ;
printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。(这是白话解释,比较容易理解)无论是否发生异常,finally 代码块中的代码总会被执行。
java类中为什么要有get和set方法,而不是直接(类.属性)出来属性。
java中属性有四个修饰符private、protected、public和default,每个修饰符的访问权限不同。
- public:可以被所有其他类所访问
- protected:自身、子类及同一个包中类可以访问
- default:同一包中的类可以访问,声明时不加修饰符,默认为default。
- private:只能被自己访问和修改
当修饰符不是public
,属性访问权限被限制,其它类想要使用该属性就要借用该类中的get
和set
方法进行操作。
对外访问,使用getName
,而不是name
。
采用
this
关键字是为了解决实例变量(private String name
)和局部变量(setName(String name)
中的name
变量)之间发生的同名的冲突。类实现接口,使用关键字
implements
继承,使用关键字entends
- 一个类可以同时实现多个接口。
- 一个类只能继承一个类,但是能实现多个接口。
- 一个接口能继承另一个接口,这和类之间的继承比较相似 用
extends
。
- Abstract表示抽象类,抽象类本身不可实例化,必须有子类去继承,且子类中实现抽象父类中所有的抽象方法,子类才可实例化。
final修饰的类,不可继承。
两者不能同时修饰一个类
Java Application 中的主类需包含main方法,main方法的正确形参:
String[] args / String args[] / String... args都是正确的。内部类可以是静态static的,也可用public,default,protected和private修饰,
外部类的修饰符只能是public,abstract,final
static可以用来修饰内部类,但是不可以用来修饰外部类
static修饰的为类成员,会随着类的加载而加载,比如静态代码块,静态成员,静态方法(这里只是加载,并没有调用)等等,可以想象一下,如果把一个Class文件中的外部类设为static,目的难道是让这个类随着应用的启动而加载吗?如果在这次使用过程中根本没有使用过这个类,那么是不是就会浪费内存。这样来说设计不合理,总而言之,设计不合理的地方,Java是不会让它存在的。
而为什么内部类可以使用static修饰呢,因为内部类算是类的成员了,如果没有使用静态来修饰,那么在创建内部类的时候就需要先有一个外部类的对象,如果我们一直在使用内部类,那么内存中就会一直存在外部类的引用,而我们有时候只需要使用内部类,不需要外部类,那么还是会浪费内存,甚至会造成内存溢出。使用static修饰内部类之后,内部类在创建对象时就不需要有外部类对象的引用了。线程安全
线程不安全的:ArrayList ,LinkedList, PriorityQueue,TreeMap,TreeSet,HashMap,HashSet,StringBilder
线程安全的: Vector,Stack,Dictionary ,StringBuffer.