《Java从小白到大牛》学习笔记
抽象类与接口类区别
- 接口支持多继承,而抽象类(包括具体类)只能继承一个父类
- 接口中不能有实例成员变量,接口所声明的成员变量全部是静态常量,即便是变量不加public static final修饰符也是静态常量。抽象类与普通类一样各种形式的成员都可以声明。
- 接口中没有包含构造方法,由于没有实例成员变量,也就不需要构造方法了。抽象类中可以有实例成员变量,也需要构造方法。
- 抽象类中可以声明抽象方法和具体方法。
枚举类
Java枚举类型实质上是一种继承java.lang.Enum类,是引用数据类型,因此也称枚举类。
在Java类引用类型进行比较时,有两种 比较方法==和equals,==比较的是两个引用是 否指向同一个对象,equals是比较对象内容是 否相同。但是,枚举引用类型中==和equals都 是一样的,都是比较两个引用是否指向同一个 实例,枚举类中每个枚举常量无论何时都只有 一个实例。
Java常用类
- Java根类——Object
String toString():返回该对象的字符串表示
boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。
- 包装类
基本数据类型与包装类对应关系
包装类都是final的,不能被继承。包装类都是不可变类,类似String类,一旦创建了对象,其内容就不可以修改。包装类还可以分成三种不同的类别:数值包装类、Character、Boolean。
- 数据包装类(Byte、Short、Integer、Long、Float、Double),构造方法有两种:Integrate(int value)和Integer(String s),有共同的父类Number,都有int compareTo方法……
- Character类常用的方法有Character(char value)、char charValue()、int compareTo(Character anotherCharacter).
- Boolean类构造方法有两个:Boolean(boolean value)和Boolean(String s)。compareTo()方法可以进行包装对象的比较。Boolean包装类都提供静态parseBoolean()方法实 现将字符串转换为对应的boolean类型,方法定 义如下: static boolean parseBoolean(String s):将字符串 转换为对应的boolean类。
- 自动装箱/拆箱。
- Math类
java.lang.Math,Math类是final的不能被继承。其分类如下:
- 舍入方法
static double ceil(double a):返回大于或等于a最小整数。 static double floor(double a):返回小于或等于a最大整数。 static int round(float a):四舍五入方法。
- 最大值和最小值
static int min(int a, int b):取两个int整数中较小的一个整数。
static int min(long a, long b):取两个long整数中较小的一个整数。
static int min(float a, float b):取两个float浮点数中较小的一个浮点数。
static int min(double a, double b):取两个double浮点数中较小的一个浮点数。
3.绝对值
static int abs(int a):取int整数a的绝对值。
static long abs(long a):取long整数a的绝对值。
static float abs(float a):取float浮点数a的绝对值。
static double abs(double a):取double浮点数a的绝对值。
4.三角函数
static double sin(double a):返回角的三角正弦。
static double cos(double a):返回角的三角余弦。
static double tan(double a):返回角的三角正切。
static double asin(double a):返回一个值的反正弦。
static double acos(double a):返回一个值的反余弦。
static double atan(double a):返回一个值的反正切。
static double toDegrees(double angrad):将弧度转换为角度。
static double toRadians(double angdeg):将角度转换为弧度。
5.对数运算
static double log(double a),返回a的自然对数。
6.平方根
static double sqrt(double a),返回a的正平方根。
7.幂运算
static double pow(double a, double b),返回第一个参数的第二个参数次幂的值。
8.计算随机值
static double random(),返回大于等于 0.0 且小于 1.0随机数。
9.常量
圆周率PI
自然对数底数E
- 大数值
- BigInteger
-
//构造方法 BigInteger(String val):将十进制字符串val转换为BigInteger对象。 BigInteger(String val, int radix):按照指定基数radix将字符串val转换为BigInteger对象。 //常用方法 int compareTo(BigInteger val):将当前对象与参数val进行比较,方法返回值是int,如果返回值 是0,则相等;如果返回值小于0,则此对象小于参数对象;如果返回值大于0,则此对象大于参数对象。 BigInteger add(BigInteger val):加运算,当前对象数值加参数val。 BigInteger subtract(BigInteger val):减运算,当前对象数值减参数val。 BigInteger multiply(BigInteger val):乘运算,当前对象数值乘参数val。 BigInteger divide(BigInteger val):除运算,当前对象数值除以参数val。 另外,BigInteger继承了抽象类Number,那么它还有实现抽象类Number的6个方法
-
- BigDecimal
-
//构造方法 BigDecimal(BigInteger val):将BigInteger对象val转换为BigDecimal对象。 BigDecimal(double val):将double转换为BigDecimal对象,参数val是double类型的二进制 浮点值准确的十进制表示形式。 BigDecimal(int val):将int转换为BigDecimal对象。 BigDecimal(long val):将long转换为BigDecimal对象。 BigDecimal(String val):将字符串表示数值形式转换为BigDecimal对象。 //常用方法 int compareTo(BigDecimal val):将当前对象与参数val进行比较,方法返回值是int,如果返回值 是0,则相等;如果返回值小于0,则此对象小于参数对象;如果返回值大于0,则此对象大于参数对象。 BigDecimal add(BigDecimal val):加运算,当前对象数值加参数val。 BigDecimal subtract(BigDecimal val):减运算,当前对象数值减参数val。 BigDecimal multiply(BigDecimal val):乘运算,当前对象数值乘参数val。 BigDecimal divide(BigDecimal val):除运算,当前对象数值除以参数val。 BigDecimal divide(BigDecimal val, introundingMode):除运算,当前对象数值除以参 数val。roundingMode要应用的舍入模式。 另外,BigDecimal继承了抽象类Number,那么它还实现抽象类Number的6个方法
-
- 日期时间相关类
- Data类
-
Date类构造方法:
Date():用当前时间创建Date对象,精确到毫 秒。
Date(long date):指定标准基准时间以来的毫秒 数创建Date对象。
标准基准时间是格林威治时 间1970年1月1日00:00:00。
Date类的普通方法:
boolean after(Date when):测试此日期是否在 when日期之后。
boolean before(Date when):测试此日期是否在 when日期之前。
int compareTo(Date anotherDate):比较两个日期 的顺序。如果参数日期等于此日期,则返回值 0;如果此日期在参数日期之前,则返回小于0 的值;如果此日期在参数日期之后,则返回大 于0的值。
long getTime():返回自1970年1月1日00:00:00以 来此Date对象表示的毫秒数。
void setTime(long time):用毫秒数time设置日期 对象,time是自1970年1月1日00:00:00以来此 Date对象表示的毫秒数。
-
- 日期格式化和解析
- 日期格式化类是 java.text.DateFormat,DateFormat是抽象类,它的常用具体类是java.text.SimpleDateFormat。
- DateFormat中提供日期格式化和日期解析方法,具体方法说明如下:
String format(Date date):将一个Date格式化为日 期/时间字符串。 Date parse(String source):从给定字符串的开始解析文本,以生成一个日期对象。如果解析失败则抛出ParseException。 另外,具体类是SimpleDateFormat构造方法如下: SimpleDateFormat():用默认的模式和默认语言 环境的日期格式符号构造SimpleDateFormat。 SimpleDateFormat(String pattern):用给定的模式 和默认语言环境的日期格式符号构造
- Calender类
-
static Calendar getInstance():使用默认时区和语言环境获得一个日历。 void set(int field, int value):将给定的日历字段设置为给定值。 void set(int year,int month,int date):设置日历字段YEAR、MONTH和DAY_OF_MONTH的值。 Date getTime():返回一个表示此Calendar时间值(从1970年1月1日00:00:00至现在的毫秒数)的 Date对象。 boolean after(Object when):判断此Calendar表示的时间是否在指定时间之后,返回判断结果。 boolean before(Object when):判断此Calendar表示的时间是否在指定时间之前,返回判断结 果。 int compareTo(Calendar anotherCalendar):比较两个Calendar对象表示的时间值。
-
- Java8新日期时间相关类
- now()方法说明如下:
- static LocalDate now():LocalDate静态工厂方法,该方法使用默认时区获得当前日期,返回 LocalDate对象。
- static LocalTime now():LocalTime静态工厂方 法,该方法使用默认时区获得当前时间,返回 LocalTime对象。
- static LocalDateTime now():LocalDateTime静态 工厂方法,该方法使用默认时区获得当前日期 时间,返回LocalDateTime对象。
- of()方法有很多重载方法,说明如下:
- static LocalDateTime of(int year, int month, int dayOfMonth, int hour, int minute, int second):按照指定的年、月、日、小时、分钟和秒获得 LocalDateTime实例,将纳秒设置为零。
- static LocalTime of(int hour, int minute, int second):按照指定的小时、分钟和秒获取一个 LocalTime实例。
- static LocalDate of(int year, int month, int dayOfMonth):按照指定的年、月和日获得一个 LocalDate实例,日期中年、月和日必须有效, 否则将抛出异常。
- 日期格式化和解析
- 日期格式化format
- 日期解析parse
- now()方法说明如下:
static LocalDateTime parse(CharSequencetext):使用默认格式,从一个文本字符串获
取一个LocalDateTime实例,如2007-12-03T10:15:30。
static LocalDateTime parse(CharSequence text,DateTimeFormatter formatter):使用指定格式
化,从文本字符串获取LocalDateTime实例。
static LocalDate parse(CharSequence text):使用默认格式,从一个文本字符串获取一个
LocalDate实例,如2007-12-03。
static LocalDate parse(CharSequence text,DateTimeFormatter formatter):使用指定格式
化,从文本字符串获取LocalDate实例。
static LocalTime parse(CharSequence text):使用默认格式,从一个文本字符串获取一个
LocalTime实例。
static LocalTime parse(CharSequence text,DateTimeFormatter formatter):使用指定的格
式化,从文本字符串获取LocalTime实例。