关键词不能为空

当前您在: 主页 > 英语 >

最全的java学习笔记(必看)

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 23:51
tags:

-

2021年2月1日发(作者:bgc)



%




Java


学习笔记








一、


Java


技术基础


................... ........................................



编程语言



.


...................................... ...........................



Java


的特点


< br>............................................... ...............



Java


开发环境



........ .................................................. ..



Java


开发环境配置



...... ..................................................





Linux


命令与相关知识



.... .................................................



Eclipse/Myeclipse


程序结构



............................................. ..



二、


Java


语言基础


................... ........................................



基础语言要素


.


.................................... .........................



八种基本数据类型



.


.............................................. ...........



常量和变量



.


................................................. ..............



运算符与表达式



.

< br>............................................... ............



编程风格



.


.................................................. ...............



:



流程控制语句



.

................................................ .............



数组


.................................................. ....................



字符串


.......................................... ..........................



方法三要素



.


................................................. ..............





插入排序



.


.................................................. ...............



冒泡排序



.


.................................................. ...............



冒泡排序:轻气泡上浮的方式



.


......................................... ......



二分法查找



.


.............................. .................................



~



Java


系统


API


方法调用



............................................. .......



二进制基础



.


............................. ..................................



Java


基础其他注意事项



.......................................... ..........



三、



面向对象



............ .................................................. ..




........... .................................................. ..........



对象


... .................................................. .................




.......................... .............................................



方法及其调用


.


.................................... .........................





引用


.. .................................................. ..................



访问控制(封装)



.


.............................................. ...........



构造器


. .................................................. .................



super()< /p>



super


.和


this()



this




.


.................. .....................



重载和重写



.


................................................. ..............



继承


................................................. .....................



static


.


.................... ..............................................



final..................... ...............................................





多态< /p>


........................................ ..............................



抽象类


................................ ....................................





接口


.. .................................................. ..................



内部类

< p>
............................................ ........................



匿名 类


...................................... ..............................



二维数组和对象数组



.


............................................. ..........



其他注意事项



.

................................................ .............



四、


Java SE


核心


I


...... .................................................. ...



;



Object



< br>............................................... .................



String




......... .................................................. .....



StringUtils




.... .................................................. .....



StringBuilder




.. .................................................. .....



正则表达式



.


............................... ................................



Date




................................................. .................



Calendar




....... .................................................. .....



SimpleDateFormat




................................................. .....



^



DateFormat




........................................... .................



包装类


............................................. .......................



BigDecimal




..... .................................................. .....



BigInteger




..... .................................................. .....



Collection


集合框架



.. .................................................. ..



List


集合的实现类


ArrayList



LinkedLis t


..................................



Iterator


迭代器



..... .................................................. ...



泛型


.......... .................................................. ..........



&





增强型


f or


循环



.


.................................................. .........



List


高 级-数据结构:


Queue


队列



.


............................. .............



List

< br>高级-数据结构:


Deque




.


........................... .................



Set


集合的实现类


HashSet


.


...................................... ...........



Map


集合的实现类


HashMap


.


...................................... ...........



单例模式和模版方法模式



.


........................................... ........



五、


Java SE


核心


II


.......... ................................................



Java


异常处理机制



...... ..................................................



'



File


文件类



......... .................................................. ...



RandomAccessFile




................................................. .....



基本流:


FIS



FOS


.


... .................................................. ...



缓冲字节高级流:


BIS< /p>



BOS


.


. ...............................................



基本数据类型高级流:


DIS



DOS


.


... .........................................



字符高级流:


ISR



OSW


.


....... .............................................



缓冲字符高级流:


BR



BW


.


....... ...........................................



文件字符高级流:


FR



FW


.


....... ...........................................



|



PrintWriter


.


............... ..............................................



对象序列化



.


..................................... ..........................



Thread


线程类及多线程



... .................................................



Socket


网络编程



...... .................................................. ..



线程池


.......... .................................................. ........



双缓冲队列


< /p>


.


............................ ...................................





Java


技术基础



编程语言



/



机器语言:


0


1


在硬件直接执行



汇编语言:助记符



高级语言:










Java


运行比


C/C++


慢)< /p>



1


)面向过程的高级语言:程序设计的 基本单位为函数,如:


C/C++


语言。



2


)面向对象的高级语言:程序设计的基本单位为类,如:


Java



C#





Java


的特点



平台无关性、简单性 、面向对象、健壮性、多线程、自动内存管理。





平台无关性:指

< br>Java


语言平台无关,而


Java

的虚拟机却不是,需要下载对应平台


JVM


虚拟机的。



自动内存管理:


对临时存储的数据自动进 行回收,


释放内存。


如:


引用类型的变 量没有


指向时,被回收;程序执行完后,局部变量被回收。



Java


开发环境



Java Developement Kit


——


Java


开发工具包,简称


JDK

< p>
,是由


Sun


公司提供的一个



免费的


Java


开发工具,


编程人员和最终用户可以利用这个工具来编译、

< br>运行


Java


程序。



前版本有、






()



()



()




JDK


结构:


JDK



|--


开发工具(


Tools< /p>


)命令:


java


javac



jar


< p>
rmic ...



|-- JRE



Java


基本运行环境)

< br>


|--


系统


A PI


库,系统类库





|


系统带来的标准程序库,标准


API



|-- J VM java


虚拟机






java


语言的执行环境



Java


开发环境配置



安装完


JDK


之后,不能立刻使用,需要设置环境变量:


1


)设置


PATH



D:Java


(指向


JD K



bin


文件夹,有各种编译命令)




2



CLASSPATH


:告诉


Java


程序去哪里查找第三方和自定义类,如果


.class


文件和类


源文件在同一文件夹内,则不需要配置


cl asspath


,后续有包,则需要。



A



Windows


:在命令行执行



>



set CLASSPATH=E:workspace1304bin


(临时环境配置)



java




注意事项:




E



set classpath


= c:


(不加分号就不找当前路径)



= . c: d:


(先找


classpath< /p>


,若无,再找当前路径)



< p>
C



D


两盘有同名


. class


文件,


classpat h


设置为


D


盘,而命令行窗口


当前盘符为


C


盘,则


J VM


现找


classpath


路径,后 找当前路径。



B


< br>Linux


:在控制台执行



① 设置


CLASSPATH


环境变量,指向


package


所在的目录,一般是项目文件夹中的




bin


目录。



?



②执行


java


(包名必须写)




export CLASSPATH=/home/soft01/workspace/1304/bin


(临时环境配置)



java



java -cp /home/soft01/workspace/1304/bin


(二合一)




注意事项:




Windows


根目录是反斜线:





Linux


根目录是斜线:


/



Linux


命令与相关知识



?



1



Linux


无盘符,只有一个根目录(


ro ot




2


)终端


==


控制台


==


命令行窗口



3



pwd


:打印当前工作目录,显示当前工作目录的位置



4



ls


:列表显示目录内容,默认显示当前目录内容



5



cd


:改变当前工作目录;


cd


后不加参数


=


返回


home


文件夹;


cd ~


:返回


home





cd /


:切换到根目录;


cd ..


:返回上一层目录(相对的)




6



mkdir


: 创建文件夹(目录)



注意:目录


==


文件夹



7


rm


:删除文件;


rm xx xx


:可删多个文件;



]



rm



rf xx


-


为减号,


r


表递归,

< p>
f


表强制



8



cat xx


:显示文本文件内容



9


)启动


Java


开发工具:

cd/opt/eclipse


./eclipse .


表当前目录下




10


)绝对路径:


/home


(以


/


开始为绝对路径,相对于根目录)





相对路径:


home


(相对于当前工作目录)





11



ho me


(用户主目录,用户的家)



/h ome/username


如:


/home/soft01



12


)主目录(


home

< br>)


:有最大访问权限:什么都能干,增删改查、建目录等




其他地方:一般只能查看,不能增删改查、创建目录等





Eclipse/Myecli pse


程序结构


Project


项目文 件



|-- src


源文件



| |-- Package




|





|-- .java


源文件



|-- bin



|-- Package










|-- .class


字节码程序



注意事项:




消耗少,最稳定





Java


语言基础



基础语言要素



1

)标识符:给类、方法、变量起的名字



A


.必须以字母或下划线或


$$


符号开始,其余字符可以是字母、数字、


$$


符号和下


划线。



B


.只能包含两个特殊字符,即下划线


_


和美元符号


$$


。不允许有任何其他特殊


字符。



C


.标识符不能包含空格。





D


.区分大小写。



2


)关键字:只有系统才能用的标识符




注意事项:




true



false



null


不是关键字!是 字面量。




main


不是关键字!但是是一个特殊单词,可以被


JVM


识别 ,主函数是固


定格式,作为程序的入口。




注释:单行注释:


0*2^10(2


次方


)=*2^11(3


次方


)=


.


10*2^1010(10


次方


)




尾数:


. 10


指数:


1010


基数:


2




浮点数字面量默认都为


double


类 型,所以在定义的


float


型数据后面加

F



f



double


类型可不写后缀,但在小数计算中一定要写


D


或。







float

的精度没有


long


高,有效位数(尾数)短。

< p>



float


的范围大于


long


指数可以很大。




浮点数是不精确的,不能对浮点数进行精确比较。


< p>
3


)一种字符类型


(char)

< br>:



char



16


位,是整数类型,用


单引号


括起来的


1


个字符(可以是一个中文字符)

< br>,


使用


Unicode


码代表字 符,


0~2^16-1



65535< /p>






注意事项:






不能为


0


个字符。




转义字符:


n


换行


r


回车


t Tab


字符



双引号



表示一个








两字符< /p>


char


中间用“


+


连接,


内部先把字符转成


int


类型,再进行加法


运算,


char


本质就是个数!二进制的,显示的时候,经过“处理”显示


为字符。



4


)一种布尔类型

< br>(boolean)



true





false

假。



5


)类型转换:


char-->



自动转换:


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







强制转换:①会损失精度,产生误差,小数点以后的数字全部 舍弃。




②容易超过取值范围。



常量和变量



变量:

< br>内存中一块存储空间,可保存当前数据。在程序运行过程中,其值是可以改变的


量 。





1< /p>


)必须声明并且初始化以后使用(在同一个作用域中不能重复声明变量)

< br>!



2


)变量必须有明确类型(


Java


是强类型语言)


< p>


3


)变量有作用域(变量在声明的地方开始,到 块{}结束)


。变量作用域越小越好。



4


)局部变量在使用前一定要初始化!成员变量在对象被创建后有默认值,可直接用。



5


)在方法中定义的局部变量在该方 法被加载时创建。



常量:在程序运行过程中,其值不可以改变的量。




注意事项:




字面量、常量和变量的运算机制不同,字面量、常量由编译器 计算,变量


由运算器处理,目的是为了提高效率。





eg


:小 于


32


位数的字面量处理



byte b1 = 1; byte b2 = 3;








注意事项:




int


类型指:

byte



short



int


,只能写


long


类型,要写也必须强转成


int


类型;而

byte



short


为自动转换 成


int





swtich-case


:若


case


中无符合的数,并且


default


写 在最前(无


break


时)





则为顺序执行,有


break



}


则退出。




swtich-case


:若


case


中无符合的数,并且


default


写 在最后,则执行


default





swtich-case


:若


case


中有符合的数,并且


default


写在最后,并且


default


前面的


case


没有


break


时,


default


也会执行。




2


)循环控制语句


< br>①


for


:最常用,用在与次数有关的循环处理,甚至只 用


for


可以解决任何循环问


题。




注意事项:


f or


中定义的用于控制次数的循环变量,


只在

< br>for


中有效,


for


结束则循 环变量被释放(回收)





while


:很常用,用在循环时候要先检查循环条件再处理循环体,用 在与次数无


关的情况。如果不能明确结束条件的时候,先使用


w hile(true)


,在适当条件使用


if

< br>语句



break


结束循环。< /p>




do-while

< br>:


在循环最后判断是否结束的循环。


如:


使用


while(true)


实现循环的

< p>
时候,结束条件


break


while


循环体的最后,就可以使用


do-while



do-while


的结束


条件经常是


“否定逻辑条件”



不便于思考业务逻辑,


使用的时候需要注意。


可以利用


while



true



+ break


替换。



④循环三要素:


A


.循环变量初值


B


.循环条件


C

< br>.循环变量增量(是循环趋于


结束的表达式)




for



while


循环体中仅一条语句,


也要补全


{ < /p>


}



当有多条语句,

且不写


{


}


时,


它们只执行紧跟着的第一条语句。




⑥循环的替换:





while(


布尔表达式


){}


等价


for(;


布尔表达式


;){}



while(true){}


等价


for(;;)



while(true){} + break


替换


do{}while(


布尔表达式


);





for(;;) + break


替换


do{}while(


布尔表达式


);



3


)跳转控制语句


< br>continue


:退出本次循环,直接执行下一次循环




break


:退出所有循环



数组



&


< /p>


类型一致的一组数据,相当于集合概念,在软件中解决一组,一堆


XX


数据时候使用数


组。


< p>
1


)数组变量:是引用类型变量(不是基本变量)引用变量通过数组的内存 地址位置引


用了一个数组(数组对象)


,即栓到数组对象的绳子 。



eg


:数组变量的赋值




int[] ary = new int[3];quals(cmd)



(


要好。



方法三要素



方法:

< br>method


(函数


function =


功能)


y=f(x)


< p>
1


)方法的主要三要素:方法名、参数列表、返回值。


2



什么是方法:


一个算法逻辑功能的封装,


是一般完成一个业务功能,


如:


登录系统,


创建联系人,简单说:方法是动作,是动词。



(



3


)方法名:一般按照方法实现的功能定名,一般使用动词定义,一般使用小写字母开


头,第二个单词开始,单词首字母大写。如:


createContac t()




4


)参数列表:是方法的前提条件,是方法执行依据,是数据。如:



login(String


id,


String


pwd)



参数的传递看定义的类型及顺序,


不看参数名。



5


)方法返回值:功能执行的结果,方法必须定义返回值,并且 方法中必须使用


return


语句返回数据;如果无返回值则定 义为


void


,此时


return


语句可写可不写;返回结果只能


有一个,若返回多个结果,要用数组 返回(返回多个值)




< p>
注意事项:


递归调用:方法中调用了方法本身,用递归解决问题比较简练,


只需考


虑一层逻辑即可!但是需要有经验。

一定要有结束条件!


如:


f(1)=1;


递归层次不




能太深。总之:慎用递归!



插入排序



将数组中每个元素与第一个 元素比较,


如果这个元素小于第一个元素,


则交换这两个元


素循环第


1


条规则,找出最小元素,放于第


1


个位置经过


n-1

< br>轮比较完成排序。




for(int i = 1; i < i++) {



]



int


k


=


arr[i];1

< p>
)开始令


low=0


(指向


3




high=7


(指向


88



,则

< p>
mid=3


(指




36



。因为

k


,故应在前半段中查找。


2



令新的


high=mid-1 =2


(指向


24




low=0


(指向

< p>
3



不变,


则新的


mid=1


(指向


12




此时


k>mid


,故确定应在后半段中查找。



3

)令新的


low=mid+1=2


(指向

< br>24



,而


high=2


(指向


24


)不变,则新的

< br>mid=2


,此时


k=arr[mid]


,查找成功。



如果要查找的数不是数列中的数,例如


k=25


,当第四次判断时,


k>mi d[2]


,在后边半


段查找,令


low =mid+1


,即


low=3(


指向< /p>


36)



high=2

< br>(指向


24


)出现


low>hi gh


的情况,表


示查找不成功。



Java


系统


API


方法调用



Arrays


类, 是数组的工具类,包含很多数组有关的工具方法。如:



1



toString()


连接数组元素为字符串,方便数组内容输出。



2



equals


比较两个数组序列是否相等。



-



3



sort()


对数组进行排序,小到大排序。



4< /p>



binarySearch(names,


二分查找,必须在有序序列上使用。



二进制基础



1


)计算机中一切数据都是


2


进制的


!


基本类型,对象,音频,视频。



2< /p>



10


进制是人类习惯,计算按照人类习 惯利用算法输入输出。




算法转化


-> 1010(2)




1010 -


算法转化


->




3



16< /p>


进制是


2


进制的简写,

< br>16


进制就是


2


进制!



4


)计算机硬件不支持正负号,为了解决符号 问题,使用补码算法,补码规定高位为


1


则为负数,每位都为< /p>


1


则为


-1


,如


1111 1111 = -1 = 0xff





5


)二进 制数右移


>>


:相当于数学


/


2(


基数


)


,且正 数高位补


0


,负数高位补


1

< p>
;二进制


字左移


<<


:< /p>


相当于数学


*


2(

< br>基数


)



且低位补


0



二进制数无符号右移


> >>



相当于数学


/


2(




)


,且不论正负,高位都补


0




6


)注意掩码运算:把扩展后前面为


1


的情况除去,与


0xff


做与运算。< /p>



eg1


:二进制计算



int


max


=


0x7fffffff;






long


l


=


max


+


max


+


2;





l


);





this()





Cell c = new Cell(); +



class Cell { int x; int y;





public


Cell()


{



this(1,1);






Foo);lass


类进行初始


化。



③在堆内 存中开辟空间,分配内存地址,栈内存中开辟空间也就有了。



{



④在堆内存中建立对象的特有属性 ,并进行默认(隐式)初始化。



⑤对属性进行显式初始化。



⑥对对象进行构造代码块初始化。



⑦对对象进行对应的构造器初始化。



⑧将内存地址赋给栈内存中的


P


变量。



final



最终的,可以修饰:类 、方法、变量(成员变量和局部变量)




1



final


修饰的类:不能再继承。





2



final


修饰的方法:不能再重写。



3



final

的方法和类,阻止了动态代理模式!动态代理模式广泛的应用在:


Spring


Hibernate Struts2


4


)企业编程规范:不允许使用


final


的方法和类!



5


final


的变量:


final


变量只能初始化一次(赋值一次,且方法中不能有给


final


变量赋值的语句!因为方法可被调用多次!


< br>,不能再修改!也可在方法的参数列表中添加




final




eg1



final


的局部变量




final int a;


a = 5;


宏观说:字面量和常量都称为常量!



多态



继承体现了多态:父类型变量可 以引用各种各样的子类型实例,也可接收子类对象。



~



个体的多态:父类型的子类型实例是多种多样的。


< p>
行为的多态:父类型定义方法被子类重写为多种多样的,重载也是多态的方法。


1


)千万不能出现将父类对象转成子类类型,会造型异常 !



2


)多态前提:必须是类与类之间 有关系。要么继承,要么实现。通常还有一个前提:


存在覆盖。



3


)多态的好处:多态的出现大大的提高程序的扩展性。



4


)多态的弊端:虽然提高了扩展性,但是 只能使用父类的引用访问父类中的成员。



5


)在多态中成员函数的特点:



①在编译时期:


参阅引用型变量所属的类中是否有调用的方法。


如果有,


编译通过,


如果没有编译失败。< /p>





②在运行时期:参阅对象所属的类中是否有调用的方法。



③简单总结就是:成员方法在多态调用时,编译看左边,运行看右边。



6



在多态中,

< br>成员变量的特点:


无论编译和运行,


都参考左边


(


引用型变量所属的类


)




7


)在多态中,静态成员方法和 属性的特点:无论编译和运行,都参考做左边。



8

< p>
)父类


引用


指向子类对象,当父类想使用子类中特 有属性、方法时,要向下转型。



抽象类



抽象就是将拥有共同方法和属 性的对象提取出来,


提取后,


重新设计一个更加通用、



加大众化的类,就叫抽象类。



1



abstract


关键 字可以修饰类、方法,即抽象类和抽象方法。





}



2


)抽象类可以有具体的方法,或者全部都是具体方法,但一个类中只要有一个抽象方


法,那么这个类就是抽象类,并且必须用


abstract


修饰类。



3


)抽象类可以 被继承,则子类必须实现抽象类中的全部抽象方法,否则子类也将是抽


象类。抽象类也可 主动继承实体类。



4


)抽象类不能实 例化,即不能用


new


生成实例。


< /p>


5


)可以声明一个抽象类型的变量并指向具体子类的对象。



6


)抽象类可以实现接口中的方法。



7


)抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立 对象。



接口



interface


差不多


= = abstract class



1



|



2



接口是


lik e


a



“像”我中的一种,是继承 体系之外的,用于功能扩展!想扩展就实


现,不想就不用实现。



3


)接口中只能声明抽象方法和常量且声明格式都是固定的,只 不过可以省略。



eg


:接口中声明常 量和抽象方法的格式是固定的



interface Runner {



/*public abstract final*/int SPEED=100;ew Inner();



5


)当内部类在成 员位置上,就可以被成员修饰符所修饰。比如


private


: 将内部类在


外部类中进行封装。



< /p>


6


)静态内部类:被


static


修饰后就具备了静态的特性。当内部类被


static


修饰后,


只能直接访问外部类中的


static


成员,出现了访问局限。




~



①在外部其他类中,如何直接访问


static


内部类的非静态成员呢









new ().function();





②在外部其他类中,如何直接访问


static


内部类的静态成员呢









注意事项:




当内部类中定义了静态成员,该内部类必须是


static


的 。



-


-


-


-


-


-


-


-



本文更新与2021-02-01 23:51,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/595931.html

最全的java学习笔记(必看)的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文