java笔记.docx
- 文档编号:26948305
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:35
- 大小:1.41MB
java笔记.docx
《java笔记.docx》由会员分享,可在线阅读,更多相关《java笔记.docx(35页珍藏版)》请在冰豆网上搜索。
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()
{
ArrayList
al.add
(1);
al.add
(1);
al.add
(2);
al.add(6);
al.add(9);
al.add(7);
//Iterator
//迭代器取出元素法一:
//while(it.hasNext()){//it.hasNext()返回值为boolean类型作用判断al中是否下一个元素存在
//System.out.println(it.next());
//}
//迭代器取出法2这个方法更优化
for(Iterator
{
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); //删指定位置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 笔记