java笔记.docx

上传人:b****3 文档编号:26948305 上传时间:2023-06-24 格式:DOCX 页数:35 大小:1.41MB
下载 相关 举报
java笔记.docx_第1页
第1页 / 共35页
java笔记.docx_第2页
第2页 / 共35页
java笔记.docx_第3页
第3页 / 共35页
java笔记.docx_第4页
第4页 / 共35页
java笔记.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

java笔记.docx

《java笔记.docx》由会员分享,可在线阅读,更多相关《java笔记.docx(35页珍藏版)》请在冰豆网上搜索。

java笔记.docx

java笔记

2013.12.5

Dos命令:

Dir列出所在目录文件

Md创建文件夹

Rd删除文件夹

Cd..退出一级目录

Cd\回到根目录

echohaha>1.txt创建一个内容为haha的txt

Del1.txt删除文件不经回收站

Del文件夹名删除该文件加全部内容

Del*.txt把txt全删

Java环境搭配

Jdk内包含有jre

Jdk能编程运行jdk只能运行

Bin工具文件夹

为什么要在电脑属性中设置环境变量

Path为了使在任意目录中能够运行指定目录的文件在任意环境下能运行该目录内程序

Java-home=jdk目录

%Java-home%动态获取java-home值

Helloword

Class类名与publicclass类名区别

后者文件名与类名必须相同

class类名类名一般大写开头

主函数程序入口Publicstaticvoidmain(String[]args){

}

一个文档中可以同时有及各类

0开头八进制0x开头16进制

1字节8位

基本数据类型

Boolean布尔型常量turefalse

Byte8位内存-128~127

Short16位内存-32768~32767

(整数默认)Int32位内存-2的31次方~2的31次方-1

Long天文数字.......

Float32位floata=2.3f;float定义后加f

(小数默认)Double64位

Char16位内存

整数占32位字母占8位汉字2字节

Byteb=3;

b=b+2;报错需要强制转换b=(byte)(b+2);

强制转化格式(数据类型)(数据)

利用print函数查ascall码system.out.print(‘2’+0)2为字符型0为整形相加结果会被强制转换问整形

算数运算符

%模运算即求余数10%4=21%-5=1-1%5=-1符号看被模数

B=a++;a先赋值再自增

B=++a;a先自增在赋值

A+b算数加法

“dasd”+“dsdss”字符连接=“dasddsdss”

System.out.print(“dasd”+“dsdss”)dasddsdss

System.out.println("a="+a+""+"b="+b);a=6b=5

 

算数运算符

X+=3即X=x+3

 

逻辑运算符

^异或两边相同为假两边不同为真

&和&&区别

&左右两边都运算&&当左边为假时结果一定为假所以不运算右边

 

This用法

 

publicclasstest{

privateinti=0;

//第一个构造器:

有一个int型形参

test(inti){

i=66666;

//此时this表示引用成员变量i,而非函数参数i

System.out.println("this.i:

"+this.i);

System.out.println("i:

"+i);

//从两个输出结果充分证明了i和this.i是不一样的!

}

test(Strings){//第二个构造器:

有一个String型形参

System.out.println("Stringconstructor:

"+s);

}

test(inti,Strings){//第三个构造器:

有一个int型形参和一个String型形参

this(s);//this调用第二个构器

//this(i);

this.i=i++;//this以引用该类的成员变量

System.out.println("Intconstructor:

"+i+"/n"+"Stringconstructor:

"+s);

}

publictestincrement(){

this.i++;

returnthis;//返回的是当前的对象,该对象属于(ThisTest)

}

publicstaticvoidmain(String[]args){

testtt0=newtest(10);

testtt1=newtest("ok");

testtt2=newtest(20,"okagain!

");

System.out.println(tt0.increment().increment().increment().i);

//tt0.increment()返回一个在tt0基础上i++的ThisTest对象,

//接着又返回在上面返回的对象基础上i++的ThisTest对象!

}

}

 

FOR

无限循环

For(;;){}

While

无限循环

While(ture){}

w,q为循环标识符breakw;表示退出w循环

Continuew;继续w循环

2014-2-28

继承

classPerson{

Person()

Stringname;

intage;

}

classStudentextendsPerson{

Student(){

Super();默认会调用父类构造函数Persen();

voidstudy(){

System.out.print(name);

}

}

Super.访问父类中的变量

This访问子类本类中的变量

子类权限不能小于父类权限

子类必有一个构造函数会访问父类构造函数

This()和super()不能同时出现应为他们只能写在第一行\

 

Final关键字:

Final修饰的类不能被继承

Final修饰的函数不能被复写

Final修饰的不可以改变

Final修饰的变量全部用大写

Final定义的变量必须赋值

Static定义的可以用类名访问

 

Abstract抽象方法一定定义在抽象类中

抽象类不可以new

抽象函数只能由子函数复写

子类必须复写父类所有抽象方法

当一个类中有确定的方法和不确定的方法,而确定部分在使用不确定的部分那就把确定部分final不确定部分abstract

抽象类中可以同时包含抽象方法和非抽象方法

接口类中全是抽象方法interface修饰

Interface接口名{}

而不用class名称{}

Iterface中固定修饰符

常量:

publicstaticfinal

方法:

publicabstract

子类实现接口用implements而不是extends

类不可以多继承但是接口可以多实现

publicclassInterfaceDemo{}

interfaceInter{}

interfaceInter2{}

classa{}

classTestimplementsInter,Inter2{}//类可以继承接口

classTest2extendsaimplementsInter,Inter2{}//类可以继承类在实现接口

interfacecextendsInter{}//接口间可以相互继承

 

基本功能定义在类中扩展功能定义在接口中

 

多态:

前提类与类有继承或者实现关系

关键字instanceof:

if(ainstanceofcat)//如果a属于cat类型

直接访问内部类:

外部类.内部类类名=new外部类().new内部类();

Static只能修饰成员不能修饰局

匿名内部类前提:

内部类必须继承一个类或者实现接口

匿名内部类格式:

new父类或者接口(){定义子类内容};

匿名内部类调用函数new父类或者接口(){定义子类内容}.函数();

abstractclassAbsDemo

{

abstractvoidshow();

}

classOuter

{

intx=3;

publicvoidfunction()

{

newAbsDemo()//这以下是一个对象

{

voidshow()

{

System.out.println("");

}

};

}

}

异常的处理

Try

{

需要被检测的代码

}

Catch(异常类变量)

{

处理方式

System.out.println(e.getMessage());//获取异常信息

System.out.println(e.toString());//获取异常名称异常信息

e.printStackTrace();//异常跟踪信息

}

Finally

{

一定会执行的语句例如数据库关闭连接

}

ThrowsException//在功能上通过throws关键字声明了该功能可能会出现问题

 

classDemo

{

intdiv(inta,intb)throwsException

{

returna/b;

}

}

publicclassExceptionDemo

{

publicstaticvoidmain(Stringfsad[])throwsException

{

Demod=newDemo();

try

{

intx=d.div(4,1);

System.out.println(x);

}

catch(Exceptione)

{

System.out.println(e.getMessage());//获取异常信息

System.out.println(e.toString());//获取异常名称异常信息

e.printStackTrace();//异常跟踪信息

}

System.out.println("over");

}

}

多异常多catch

Throws与throw区别:

Throws用在函数上后面跟异常类

throw用在函数内后面跟异常对象

特殊的异常:

Exception中有一个子类异常runtimeException及其子类运行时异常

如果在函数内容上抛出该异常函数上可以不用声明

如果在函数上声明了该异常调用者可以不用处理不用try和catch

自定义的异常若继承了runtimeException可以不声明不解决直接抛出就可以了

 

只要问题被catch(){}解决异常就不用声明

异常总结:

异常是对问题的描述讲问题进行对象封装

异常体系:

Throwsable

|--Error

|--Exception

|--RuntimeException

异常体系特点:

异常体系中所有类以及建立的对象都具有可抛性

可以被throw和throws关键字操作

Throw和throws用法:

Throw定义在函数内,用于抛出异常对象

Throws定义在函数上用于抛出异常类可以用多个逗号分开

当函数内容有throw抛出异常对象并未进行try处理,必须要在函数上声明否则编译失败

注意,RuntimeException除外

如果函数声明了异常,调用者需要进行处理调用者可Throws可以try

异常有两种:

编译时被检测异常

该异常在编译时,如果没有处理(没有throw没有try)编译失败

该异常被标识代表这可以处理

运行时异常(编译时不检测)

在编译时不需要处理编译器不检查

该异常的发生建议不要处理让程序停止需要对代码进行修正

异常处理语句:

Try

{

需要被检测的代码

}

Catch(异常类型异常形参)

处理异常的代码

Finally

一定会执行的代码,如关闭资源代码数据库断开连接注意若前边代码中执行了Systems.exit(0);finally也不会执行

有三个结合方式:

Trycatch

Tryfinally

Trycatchfinally

自定义异常:

定义类继承Exception或者RuntimeException

1.为了让该类具有可抛性

2.让该类具备操作异常的共性方法

当要定义自定义异常时可以使用父类已经定义好的功能

将异常信息传递给父类的构造函数用super();传递

 

 

线程:

Thread

创建线程方法

继承Thread类

子类重写run()方法run方法内存放要运行的代吗相当于main()

调用线程start方法该方法两个功能:

启动线程调用run方法

 

线程的状态:

Runnable:

创建线程的另一种重要方法

步骤:

1.定义类实现Runnable接口

2.覆盖Runnable接口中的run方法

将线程要运行的代码放在其中

3.通过Thread创建对象

4.将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数

5.调用Thread类中的start方法并且调用Runnable接口子类中的run方法

同步代码块:

Synchronized(任意一个对象)

需要同步的代码

作用使一个线程一次执行完该代码块中途不会北其他线程执行

类名.class是一个对象

等待唤醒机制:

Wait();

Notify();

Notifyall();

都使用在同步中因为都要持锁的线程操作即锁.wait()等

String

char[]arr={'a','b','d','f','g','e','r','t',};

Strings=newString(arr);//将字符数组转换为字符串

Strings=newString(arr,2,5);//从第2个开始取5个作为字符串

Stringa="qwerrtyewq";

char[]b=a.toCharArray();//字符串转换为字符数组

 

Stringa="qwer";

a=a.replace("we","mn");//替换字符

Stringa="qwer,tyui,opas";

String[]b=a.split(",");//字符串按逗号分割

 

Stringa="qwer";

Stringz=a.substring(1,3);//获取从1到3角标前的字符串包含1角标不包含3角标

Stringz=a.substring

(1);//获取从角标1开始的字符串

Stringa="Pwer";

Stringz=a.toUpperCase();//转换成大写

Stringz=a.toLowerCase();//转换成小写

 

Stringa="Pwr";

Stringz=a.trim();//去掉两端空格

Strings1=“asdfghjkl”

Strings2=“dfghjk”

S1.contains(s2)//返回值类型为Boolean

 

Stringbuffer字符串缓冲区是一个容器是一个final类

StringBuffersb=newStringBuffer();

Sb.append(“asd”)//往sb容器中添加字符串asd

Sb.append(“asd”).append(35)//往sb容器中添加字符串asd和34

 

1.存储添加

Append在末尾添加

Insert插入

2.删除

Delete(start,end)包含头不包含尾

sb.delete(0,sb.length());//清空缓冲区

sb.deleteCharAt

(2);//删除在2标位的字符

 

3.获取

charAt(index);获取字符

Indexof();获取位置

lastindexOf();

sb.getChars(2,5,chs,3);//将sb中字符串取2到5的字符串存到chs字符数组中从chs[3]开始存

“”+数字=字符串

Inta=Integer.parseInt(“xxx”,zzz);//xxx为需要转换的数zzz为xxx的进制类型

 

 

集合框架:

 

Collection接口

ArrayListal=newArrayList();

al.add("java01");//添加

al.add("java02");

al.add("java03");

al.add("java04");

al.add("java05");

sop(al);//打印集合

sop(al.size());//获取个数

al.remove("java03");//删除

sop(al);

sop(al.contains("java04"));//判断是否包含

sop(al.isEmpty());//判断是否为空

al.clear();//清空

sop(al);

 

ArrayListal=newArrayList();

ArrayLista2=newArrayList();

al.add("java08");

al.add("java02");

al.add("java03");

al.add("java04");

a2.add("java01");

a2.add("java02");

a2.add("java04");

a2.add("java05");

sop(al);

sop(a2);

//al.retainAll(a2);//取交集

//sop(al);

//sop(a2);

al.removeAll(a2);//删除交集

sop(al);

sop(a2);

 

迭代器Iterator

 

importjava.util.*;

publicclassCollectionDemo{

/**

*@paramargs

*/

publicstaticvoidget()

{

ArrayListal=newArrayList();

al.add

(1);

al.add

(1);

al.add

(2);

al.add(6);

al.add(9);

al.add(7);

//Iteratorit=al.iterator();//获取迭代器用于取出集合中元素

//迭代器取出元素法一:

//while(it.hasNext()){//it.hasNext()返回值为boolean类型作用判断al中是否下一个元素存在

//System.out.println(it.next());

//}

//迭代器取出法2这个方法更优化

for(Iteratorit=al.iterator();it.hasNext();)

{

System.out.println(it.next());

}

}

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

get();

}

}

List,set为collection常见子接口

|--list:

元素是有序的元素可以重复该集合有索引

|--set:

元素无序不可重复没有索引

 

List特有方法:

增:

Add(index,element);

addAll(index,Collection);

Remove(index);

改:

Set(index,element);

查:

Get(index);

Sublist(from,to);

Listiterator

 

importjava.util.ArrayList;

importjava.util.Iterator;

publicclassListDemo{

publicstaticvoidmain(String[]args){

ArrayListal=newArrayList();

al.add("1");

al.add("2");

al.add("3");

al.add("4");

al.add("5");

al.add("6");

System.out.println(al);

//在指定位置增

al.add(4,"86464648");

System.out.println(al);

//删指定位置

al.remove(3);

System.out.println(al);

//改元素

al.set(1,"444411111111");

System.out.println(al);

//查

System.out.println(al.get(4));

//获取所有元素法一

for(intx=0;x

{

System.out.println(al.get(x));

}

//获取所有元素法二

for(Iteratorit=al.iterator();it.hasNext();)

{

System.out.println(it.next());

}

}

}

 

importjava.util.ArrayList;

importjava.util.Iterator;

publicclassListDemo{

publicstaticvoidmain(String[]args){

}

publicstaticvoidg()

{

ArrayListal=newArrayList();

al.add("1");

al.add("2");

al.add("3");

al.add("4");

al.add("5");

al.add("6");

System.out.println(al);

//在指定位置增

al.add(4,"86464648");

System.out.println(al);

//删指定位置

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1