java常用基础查漏补缺

进制

分类

二进制:0b 八进制:0 十六进制:0x

1byte = 8bit
1K = 1024byte
1M = 1024K
1G = 1024M
1T = 1024G

计算机对数据进行存储和运算的最小的单位是byte,不是bit

转换

公式:系数 * (基数 ^ 权) + 系数 * (基数 ^ 权) + …

基数:几进制想转换到十进制,基数就是几

系数:每一位上的数据

权:从右往左,以0开始编号,依次0,1,2,3,…

原码,反码,补码

正数:最左边的符号位0,原码,反码,补码一模一样

负数:最左边的符号位是1
负数的反码:是负数的原码除去符号位,其余位0变1,1变0
负数的补码:是负数的反码 + 1

注: 我们用眼睛看到的十进制,其实是该数据的二进制的原码对应的十进制,而计算机底层参与运算的是二进制的补码形式
1 + 3 = 4
1变成二进制的原码形式,3变成二进制的原码形式
1的二进制的原码形式变成反码,3变成二进制的原码形式变成反码形式
1的二进制的反码形式变成补码形式,3的二进制的反码形式变成补码形式
然后他们再参与运算,得到的是4的二进制的补码形式
4的补码形式 – > 4的反码 --> 4的原码 –

ASCII编码表

‘a’ --> 97
‘A’ --> 65
‘0’ --> 48

数据类型与转换

基本数据类型

整数类型:byte(1个字节),short(2个字节),int(4个字节),long(8个字节) 默认类型:int
浮点类型:float(4个字节),double(8个字节) 默认类型:double
字符类型:char(2个字节)
布尔类型:boolean(true和false是boolean类型的两个值)(1个字节)

类型转换

小类型 → 大类型

小 → 大:byte,short,char --> int --> long --> float --> double

超出变量最大值例子:byte b = b1 + b2;

上述类型式子,左边类型为byte或者short式,右边公式中有一个是变量,便会编译报错。其他以此类推

强制类型转换

小的数据类型 小的数据类型的变量名 = (小的数据类型)大的数据类型的变量名

boolean不能与其他数据类型进行转换

封装类

byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

不同类型的转换可用封装类,先装箱,再拆箱

parseInt(String s)

例:String → int int a = Integer.parseInt(“111”);

Math类

包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数

成员方法

static int abs(int a)					绝对值
static double ceil(double a)			向上取整
static double floor(double a)			向下取整
static int max(int a,int b) 			取最大值
static double pow(double a,double b)	 求次方
static double random()					伪随机数
static int round(float a) 				四舍五入
static double sqrt(double a)			开根号

Random类

构造方法

Random()
Random(long seed)

成员方法

int nextInt()
int nextInt(int n)	随机生成【0,n-1)范围内的值

Collections类

成员方法

static <T> void sort(List<T> list)		//升排序
static <T> int binarySearch(List<?> list,T key)	//二分查找
static <T> T max(Collection<?> coll)		//获取最大值
static void reverse(List<?> list)		//反转
static void shuffle(List<?> list)		

BigInteger类

可以让超过Integer范围内的数据进行运算

构造方法

BigInteger(String val)

成员方法

BigInteger add(BigInteger val)			加
BigInteger subtract(BigInteger val)		减
BigInteger multiply(BigInteger val)		乘
BigInteger divide(BigInteger val)		除
BigInteger[] divideAndRemainder(BigInteger val)

Arrays类

成员方法

static String toString(int[] a)			
static void sort(int[] a)			
static int binarySearch(int[] a,int key)	

BigDecimal类

在运算的时候,float类型和double很容易丢失精度,为了能精确的表示、计算浮点数,Java提供了BigDecimal

构造方法

BigDecimal(String val) 如形参为基本数据类型则会出现不精确的结果

成员方法

BigDecimal add(BigDecimal augend)				加
BigDecimal subtract(BigDecimal subtrahend)		减
BigDecimal multiply(BigDecimal multiplicand)	乘
BigDecimal divide(BigDecimal divisor)

Data类

构造方法

public Date()
public Date(long date)

成员方法

long getTime()
void setTime(long time)

SimpleDateFormat类

SimpleDateFormat继承自DateFormat

构造方法

SimpleDateFormat()		//new SimpleDateFormat("yyyy年MM月dd日")
SimpleDateFormat(String pattern)

成员方法

final String format(Date date)
Date parse(String source)

Calendar类

抽象类,为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法

成员方法

static Calendar getInstance()
int get(int field)
void add(int field,int amount)
final void set(int year,int month,int date)

正则表达式

字符类

[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
[0-9] 0到9的字符都包括

预定义字符类

. 任何字符。
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]

Greedy 数量词

X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次

功能

分割:String[] split(String regex)

替换:replaceAll(String regex,String replacement)

分组:

捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B©)) 中,存在四个这样的组:

  • 1 ((A)(B©))
    2 (A
    3 (B©)
    4 ©

  • 组零始终代表整个表达式。

    B:案例演示
    a:切割
    b:替换

Pattern和Matcher

Pattern p = Pattern.compile(“a*b”);
Matcher m = p.matcher(“aaaaab”);

GUI

布局管理器

FlowLayout(流式布局管理器):从左至右,panel默认

BorderLayout(边界布局管理器):东,南,西,北,中,Frame默认

GridLayout(网格布局管理器):规则的矩阵

CardLayout(卡片布局管理器):选项卡

GridBagLayout(网格包布局管理器):非规则矩阵

窗体监听

事件:用户的一个操作

事件源:被操作的组件

监听器:一个自定义类对象,实现了监听接口

Frame f = new Frame("我的窗体");
//事件源是窗体,把监听器注册到事件源上
//事件对象传递给监听器
f.addWindowListener(new WindowAdapter() {
	public void windowClosing(WindowEvent e) {     
		System.exit(0); 	//退出虚拟机,关闭窗口
	}
});

JDK新特性

JDK5

1、自动拆装箱
2、泛型
3、可变参数
4、静态导入
5、增强for循环
6、互斥锁
7、枚举

JDK7

1、二进制字面量
2、数字字面量可以出现下划线
3、switch 语句可以用字符串
4、泛型简化,菱形泛型
5、异常的多个catch合并,每个异常用或|
6、try-with-resources 语句

JDK8

1、接口中可以定义有方法体的方法,如果是非静态,必须用default修饰
2、如果是静态的就不用了

猜你喜欢

转载自blog.csdn.net/mLuoya/article/details/87870474