Java的基础知识,推荐用时10min(直接复制粘贴到Ty看更方便)

Java 笔 记

Java是由Sun Microsystems公司于1995年,其特点是可移植性强,可从多平台进行扩展。

分成三类:a、javaSE java平台标准般版 b、JavaEE java平台企业版 c、JavaME Java平台微型版

特点:简单 面向对象 分布式

一、数据结构

几大接口和类

枚举(Enumeration):定义了从数据结构中取回连续元素的方式

位集合(BitSet):单独设置和清楚的位或标志

向量(Vector):

栈(Stack)、字典(Dictionary)、哈希表(Hashtable)、属性(Properties)

二、基本语法

Java程序认为是一系列对象的集合,在这些对象中通过调用彼此的方法来实现协同的工作。

对象:对象是类的一个实例,有状态和行为

类:类是一个模板,标会对象的行为和状态

方法:方法就是类的动作行为,逻辑运算、数据修改以及所有动作都是在方法中完成

实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量决定

java.c 进行代码编译

java 代码运行

编写时语法(都要做到简明,见名知意):

大小写敏感,类名大写(大驼峰方式)、方法名(小驼峰方式)、源文件名(和类名保持相同)、方法主入口采取特定形式

Java标识符

类名、变量名以及方法名都被成为标识符,书写时有一定的要求:所有标识符都应由字母、美元符、下划线开始,关键字不能作为标识符,标识符大小写敏感

Java修饰符

用来修饰类中的方法和属性

1、访问控制修饰符:default、public、protected、private

2、非访问控制修饰符:final、abstract、static、synchronized

Java变量

局部变量、类变量(静态变量)、成员变量(非静态变量)

Java枚举

限制预先设定好的值,减少代码中出现的bug,经常用单词全大写来表示

Java关键字
关键字说明
访问控制private私有的
protected受保护的
public公共的
default默认
类、方法和变量修饰符abstract声明抽象
class
extends扩充,继承
final最终值,不可改变的
implements实现(接口)
interface接口
native本地,原生方法(非 Java 实现)
new新,创建
static静态
strictfp严格,精准
synchronized线程,同步
transient短暂
volatile易失
程序控制语句break跳出循环
case定义一个值以供 switch 选择
continue继续
default默认
do运行
else否则
for循环
if如果
instanceof实例
return返回
switch根据值选择执行
while循环
错误处理assert断言表达式是否为真
catch捕捉异常
finally有没有异常都执行
throw抛出一个异常对象
throws声明一个异常可能被抛出
try捕获异常
包相关import引入
package
基本类型boolean布尔型
byte字节型
char字符型
double双精度浮点
float单精度浮点
int整型
long长整型
short短整型
变量引用super父类,超类
this本类
void无返回值
保留关键字goto是关键字,但不能使用
const是关键字,但不能使用
null
Java注释

单行,多行,文档式注释

继承

利用继承方法,可以重用已存

在类的方法和属性,而不重写这些代码。被继承的类成为超累(super class),派生类称为子类(subclass)

接口对象间相互通信的协议,一个继承多个接口

变量的种类:类变量(被静态修饰和类为一体) 成员变量 局部变量

构造方法:必须存在没有则默认生成,一个类可以有多个构造方法,但是构造方法的名字与类名相同

三、基本数据类型

变量是申请用来储存值的名称,而数据类型决定申请空间。

1、内置数据类型

Java提供了8中数据类型。六种数字类型(四个整数型,两个浮点型),一个字符型,还有一个布尔型

byte 8 -128~127

short 16

int 32

long 64

float 单精度,32位

double 双精度 64

char

boolean

2、引用数据类型

指向对象的变量,对象和数组都是引用数据类型,所有的默认值都为null

Java常量

在程序中运行时,不能被修改用关键字final来修饰,注意通常用大写的字母标识

自动类型转换

整型,实型(常量),字符型数据可以

低————————————————》高

byte,short,char->int->long->float->double

从大的类型转移到小的类型需要强制

四、变量类型

在Java中所有的变量在使用前必须进行声明

  • 类变量:独立于方法之外的变量,用 static 修饰。
  • 实例变量:独立于方法之外的变量,不过没有 static 修饰。
  • 局部变量:类的方法中的变量。
五、修饰符
访问修饰符

放在语句的最前端,用来修饰定义类、方法或者变量

访问权限:1、public 所有类可见,开放性最大

2、protected 对同一包内的类和子类可见

3、default 在同一包类可见

4、private 在同一类中可见

访问控制和继承:父类中声明为public 的方法在子类中也必须为public。父类中声明为protected 的方法中,子类必须声明更高的权限。父类中声明为peivate的方法不能被继承

非访问修饰符

static 用来修饰类变量和方法

静态变量也被成为类变量,局部变量不能用static来修饰,对于静态变量无论一个类实力的对象有多少个,静态变量只有一份

静态方法:用来声明独立于对象的静态方法,不能使用类的非静态变量

final 用来修饰类、方法、变量,final修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的

可以和static在一起建立类常量,必须有初始值,一旦赋值不能被重新赋值,必须指定初始值;final方法可以被子类继承但是不能被子类重写,其设定的目的就是防止方法被修改。final的类不能被继承而呈现最终的状态

abstract 修饰符,用来创建抽象类和抽象方法

本身不能被实现,该方法的使用需要继承有子类提供,并且抽象方法不能用final,static进行修饰,abstract方法对于abstract类,充分不必要

synchronized 和 volatile 主要用于线程的编程

synchronized关键字声明的方法同一时间只能被一个线程访问

transient只修饰变量,并不对其进行序列化

volatile修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。

六、运算符

执行数学运算,来操作变量

算术运算符、关系运算符、位运算符、逻辑运算符、赋值运算符、其他运算符

计算运算符:+、-、*、/、%、++、–

关系运算符:==、!=、<、>、>=、<=,关系运算符得出来的是Boolean值

位运算符:是用来处理数值类型的操作符

操作符描述例子
如果相对应位都是1,则结果为1,否则为0(A&B),得到12,即0000 1100
|如果相对应位都是 0,则结果为 0,否则为 1(A | B)得到61,即 0011 1101
^如果相对应位值相同,则结果为0,否则为1(A ^ B)得到49,即 0011 0001
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。(〜A)得到-61,即1100 0011
<<按位左移运算符。左操作数按位左移右操作数指定的位数。A << 2得到240,即 1111 0000
>>按位右移运算符。左操作数按位右移右操作数指定的位数。A >> 2得到15即 1111
>>>按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

逻辑运算符:作为条件判断接下来的执行情况

操作符描述例子
&&称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。(A && B)为假。
| |称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。(A | | B)为真。
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。!(A && B)为真。

赋值运算符

操作符描述例子
=简单的赋值运算符,将右操作数的值赋给左侧操作数C = A + B将把A + B得到的值赋给C
+ =加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数C + = A等价于C = C + A
- =减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数C - = A等价于C = C - A
* =乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数C * = A等价于C = C * A
/ =除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数C / = A,C 与 A 同类型时等价于 C = C / A
(%)=取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数C%= A等价于C = C%A
<< =左移位赋值运算符C << = 2等价于C = C << 2
>> =右移位赋值运算符C >> = 2等价于C = C >> 2
&=按位与赋值运算符C&= 2等价于C = C&2
^ =按位异或赋值操作符C ^ = 2等价于C = C ^ 2
| =按位或赋值操作符C | = 2等价于C = C | 2

t条件运算符(?:)

也叫做三元运算符,通过结果得到Boolean值,进行运算

instanceof运算符

用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型),得到的结果是Boolean 需要用特定的值进行赋值。

Java运算符优先级

下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。

类别操作符关联性
后缀() [] . (点操作符)左到右
一元expr++ expr–从左到右
一元++expr --expr + - ~ !从右到左
乘性* /%左到右
加性+ -左到右
移位>> >>> <<左到右
关系> >= < <=左到右
相等== !=左到右
按位与左到右
按位异或^左到右
按位或|左到右
逻辑与&&左到右
逻辑或| |左到右
条件?:从右到左
赋值= + = - = * = / =%= >> = << =&= ^ = | =从右到左
逗号左到右
七、Java循环结构

主要三种循环结构:

1、while 循环

while(布尔表达式){

​ //循环内容

}

2、do . . . whilie循环

do{

​ //代码语句

}while(布尔表达式)

3、for 循环

for(初始值; 布尔表达式;更新 ){

​ //代码语句

}

4、增强for循环

for(声明语句:表达式){

​ //代码句子

}

声明语句:声明新的局部值,该变量类型能和数组元素相匹配

表达式:要访问的数组名

break关键字

主要用于swich选择语句当中,用来跳出整个语句块,或用于跳出最里层的循环,并且继续执行接下来的操作

continue关键字

退出循环当前次

八、条件语句与选择语句

if(布尔表达式){

​ //执行语句

}else if(){

}else{

}

swich(变量或者值){

​ case value:

​ //语句

​ break;

​ default:

​ //没有分支时执行

}

九、常用类

所有包装类(Interger,Long,Btye,Doubel,Float、short)都是抽象类Number的子类

Java是一个面相对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。

另外,当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的包装器类了。

1、int 转为Intergerr

​ int i = 0;

​ Interger ii = new Interger(i);

2、Interger转为int

​ Interger ii = new Interger(0);

​ int i = ii.intValue()

Math类

包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。Math的所有方法都被标记为静态方法所以直接对类给予调用即可。

​ Number类与Math的常用方法

序号方法与描述
1xxxValue() 将 Number 对象转换为xxx数据类型的值并返回。
2compareTo() 将number对象与参数比较。
3equals() 判断number对象是否与参数相等。
4valueOf() 返回一个 Number 对象指定的内置数据类型
5toString() 以字符串形式返回值。
6parseInt() 将字符串解析为int类型。
7abs() 返回参数的绝对值。
8ceil() 返回大于等于( >= )给定参数的的最小整数,类型为双精度浮点型。
9floor() 返回小于等于(<=)给定参数的最大整数 。
10rint() 返回与参数最接近的整数。返回类型为double。
11round() 它表示四舍五入,算法为 Math.floor(x+0.5),即将原来的数字加上 0.5 后再向下取整,所以,Math.round(11.5) 的结果为12,Math.round(-11.5) 的结果为-11。
12min() 返回两个参数中的最小值。
13max() 返回两个参数中的最大值。
14exp() 返回自然数底数e的参数次方。
15log() 返回参数的自然数底数的对数值。
16pow() 返回第一个参数的第二个参数次方。
17sqrt() 求参数的算术平方根。
18sin() 求指定double类型参数的正弦值。
19cos() 求指定double类型参数的余弦值。
20tan() 求指定double类型参数的正切值。
21asin() 求指定double类型参数的反正弦值。
22acos() 求指定double类型参数的反余弦值。
23atan() 求指定double类型参数的反正切值。
24atan2() 将笛卡尔坐标转换为极坐标,并返回极坐标的角度值。
25toDegrees() 将参数转化为角度。
26toRadians() 将角度转换为弧度。
27random() 返回一个随机数。
十、Java Character 类 / String 类

Character类用于对单个字符进行操作,可用于对一个基本类型char的值进行封装

Character 方法

1、isLetter() 是否是一个字母

2、isDigit() 是否是一个数字字符

3、isWhitespace() 是否是一个空白字符

4、isUpperCase() 是否为大写字母

5、isLowerCase() 是否为小写字母

6、toLowerCase() 将指定得字母变成小写形式

7、toString() 返回字符串长度仅为一

String类

是不可改变的,所以它的值无法改变

1、length()

2、A.concat(B)

创建格式化字符串

System.out.printf("浮点型变量的值为 " + "%f, 整型变量的值为 " + " %d, 字符串变量的值为 " + “is %s”, floatVar, intVar, stringVar);

你也可以这样写

String fs; fs = String.format("浮点型变量的值为 " + “%f, 整型变量的值为 " + " %d, 字符串变量的值为 " + " %s”, floatVar, intVar, stringVar);

Java StrinBuffer类 和StringBuilder类

这个类的突出作用就是对字符串进行修改

1、capacity() 返回当前容量

2、chatAt(int index) 返回序列中指定索引处的char值

3、indexOf(String)返回第一次出现指定字符串的索引位置

十一、Java数组

数组是用来存储固定大小的同类型元素。

for -Each循环

for(type element: array){

​ System.out.println(element);

}

单维数组与多维数组

十二、Java时间与日期类

Date()类 表示获取时间,没有对格式进行操作

SimpleDateFormat类,多用来处理时间格式。

也可用format进行操作

Calender类

十三、正则表达式

正则表达式定义了字符串的模式,用来搜索、编辑或处理文本

Pattern.matches(pattern , content)

捕获组:是把多个字符当一个单独单元进行处理的方法,它对括号内的字符分组来创建。groupCount方法用来表示对象的捕获组

String pattern = “(\\D*) (\\d+) (.*)”;

Pattern r = Pattern.compile(pattern);

Matcher m = r.matcher(file);

m.group(0) 直接返回原字符串

m.group(1) 按照规定字符串中第一种类型进行搜索

m.group(2) 按照规定字符串中第二种类型进行搜索

m.group(3) 按照规定字符串中第三种类型进行搜索

正则表达式语法
字符说明
\将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n"匹配字符"n”。"\n"匹配换行符。序列"\\“匹配”\","\(“匹配”("。
^匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与"\n"或"\r"之后的位置匹配。
$匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与"\n"或"\r"之前的位置匹配。
*零次或多次匹配前面的字符或子表达式。例如,zo* 匹配"z"和"zoo"。* 等效于 {0,}。
+一次或多次匹配前面的字符或子表达式。例如,"zo+"与"zo"和"zoo"匹配,但与"z"不匹配。+ 等效于 {1,}。
?零次或一次匹配前面的字符或子表达式。例如,"do(es)?“匹配"do"或"does"中的"do”。? 等效于 {0,1}。
{n}n 是非负整数。正好匹配 n 次。例如,"o{2}"与"Bob"中的"o"不匹配,但与"food"中的两个"o"匹配。
{n,}n 是非负整数。至少匹配 n 次。例如,"o{2,}“不匹配"Bob"中的"o”,而匹配"foooood"中的所有 o。"o{1,}“等效于"o+”。"o{0,}“等效于"o*”。
{n,m}mn 是非负整数,其中 n <= m。匹配至少 n 次,至多 m 次。例如,"o{1,3}"匹配"fooooood"中的头三个 o。‘o{0,1}’ 等效于 ‘o?’。注意:您不能将空格插入逗号和数字之间。
?当此字符紧随任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后时,匹配模式是"非贪心的"。"非贪心的"模式匹配搜索到的、尽可能短的字符串,而默认的"贪心的"模式匹配搜索到的、尽可能长的字符串。例如,在字符串"oooo"中,"o+?“只匹配单个"o”,而"o+“匹配所有"o”。
.匹配除"\r\n"之外的任何单个字符。若要匹配包括"\r\n"在内的任意字符,请使用诸如"[\s\S]"之类的模式。
Matcher类
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值