1、java笔记2013.12.5Dos 命令 :Dir列出所在目录 文件Md 创建文件夹Rd 删除文件夹Cd. 退出一级目录Cd 回到根目录echo haha1.txt 创建一个内容为haha的txtDel 1.txt 删除文件 不经回收站Del 文件夹名 删除该文件加全部内容Del *.txt 把txt全删Java环境搭配Jdk内包含有jreJdk 能编程运行 jdk只能运行Bin 工具文件夹为什么要在电脑属性中设置环境变量Path 为了使在任意目录中能够运行指定目录的文件 在任意环境下能运行该目录内程序Java-home=jdk目录%Java-home% 动态获取java-home值Hell
2、o wordClass 类名 与 public class 类名区别后者文件名与类名必须相同class 类名 类名一般大写开头主函数程序入口 Public static void main(String args)一个文档中可以同时有及各类0开头八进制 0x开头16进制1字节8位基本数据类型Boolean 布尔型常量 ture falseByte 8位内存 -128127Short 16位内存 -3276832767(整数默认)Int 32位内存 -2的31次方2的31次方-1Long 天文数字.Float 32位 float a=2.3f ; float定义后加f(小数默认)Double 6
3、4位Char 16位内存整数占32位 字母占8位 汉字2字节Byte b=3;b=b+2; 报错需要强制转换 b=(byte)(b+2);强制转化格式 (数据类型)(数据)利用print函数查ascall码 system.out.print( 2+0) 2为字符型 0为整形 相加结果会被强制转换问整形 算数运算符%模运算 即求余数 10%4=2 1%-5=1 -1%5=-1 符号看被模数B=a+ ; a先赋值再自增B=+a ; a先自增在赋值A+b 算数加法“dasd”+“dsdss” 字符连接 =“dasddsdss”System.out.print(“dasd”+“dsdss”) dasd
4、dsdssSystem.out.println(a=+a+ +b=+b); a=6 b=5算数运算符X+=3 即 X=x+3逻辑运算符 异或 两边相同为假 两边不同为真& 和&区别&左右两边都运算 &当左边为假时 结果一定为假 所以不运算右边This用法public class test private int i=0; /第一个构造器:有一个int型形参 test(int i) i=66666; /此时this表示引用成员变量,而非函数参数 System.out.println(this.i: +this.i); System.out.println(i:+i); /从两个输出结果充分证明了
5、i和this.i是不一样的! test(String s) / 第二个构造器:有一个String型形参 System.out.println(String constructor: +s); test(int i,String s) / 第三个构造器:有一个int型形参和一个String型形参 this(s);/this调用第二个构器 /this(i); this.i=i+;/this以引用该类的成员变量 System.out.println(Int constructor: +i+/n+String constructor: +s); public test increment() this
6、.i+; return this;/返回的是当前的对象,该对象属于(ThisTest) public static void main(String args) test tt0=new test(10); test tt1=new test(ok); test tt2=new test(20,ok again!); System.out.println(tt0.increment().increment().increment().i); /tt0.increment()返回一个在tt0基础上+的ThisTest对象, /接着又返回在上面返回的对象基础上i+的ThisTest对象! FOR
7、无限循环For(;)While无限循环While(ture) w,q为循环标识符 break w;表示退出w循环Continue w;继续 w循环2014-2-28继承class Person Person() String name; int age;class Student extends PersonStudent()Super();默认会调用父类构造函数Persen(); void study() System.out.print(name); Super.访问父类中的变量This访问子类本类中的变量子类权限不能小于父类权限子类必有一个构造函数会访问父类构造函数This()和supe
8、r()不能同时出现 应为他们只能写在第一行Final 关键字:Final修饰的类不能被继承Final 修饰的函数不能被复写Final修饰的不可以改变Final修饰的变量全部用大写Final定义的变量必须赋值Static 定义的 可以用类名访问Abstract 抽象方法一定定义在抽象类中抽象类不可以new抽象函数只能由子函数复写子类必须复写父类所有抽象方法 当一个类中有确定的方法和不确定的方法 ,而确定部分在使用不确定的部分 那就把确定部分final 不确定部分 abstract抽象类中可以同时包含抽象方法和非抽象方法接口类中全是抽象方法interface修饰Interface 接口名而不用 c
9、lass 名称Iterface中固定修饰符常量:public static final方法:public abstract 子类实现接口用implements 而不是 extends 类不可以多继承 但是接口可以多实现public class InterfaceDemo interface Inter interface Inter2 class aclass Test implements Inter, Inter2 /类可以继承接口class Test2 extends a implements Inter,Inter2/类可以继承类在实现接口interface c extends Int
10、er/接口间可以相互继承基本功能定义在类中 扩展功能定义在接口中多态:前提 类与类有继承或者实现关系关键字instanceof: if(a instanceof cat)/如果a属于cat类型直接访问内部类:外部类.内部类 类名 =new 外部类().new 内部类();Static 只能修饰成员 不能修饰局匿名内部类前提: 内部类必须继承一个类或者实现接口匿名内部类格式: new 父类或者接口()定义子类内容;匿名内部类调用函数 new 父类或者接口()定义子类内容.函数();abstract class AbsDemo abstract void show();class Outer in
11、t x=3; public void function() new AbsDemo()/这以下是一个对象 void show() System.out.println(); ; 异常的处理Try需要被检测的代码Catch(异常类 变量)处理方式 System.out.println(e.getMessage();/获取异常信息 System.out.println(e.toString();/获取异常名称 异常信息 e.printStackTrace();/异常跟踪信息 Finally一定会执行的语句 例如数据库关闭连接Throws Exception /在功能上通过throws关键字声明了该
12、功能可能会出现问题class Demo int div(int a,int b) throws Exception return a/b; public class ExceptionDemo public static void main (String fsad) throws Exception Demo d= new Demo(); try int x= d.div(4, 1); System.out.println(x); catch(Exception e) System.out.println(e.getMessage();/获取异常信息 System.out.println(e
13、.toString();/获取异常名称 异常信息 e.printStackTrace();/异常跟踪信息 System.out.println(over); 多异常多catchThrows 与throw 区别:Throws用在函数上后面跟异常类 throw 用在函数内 后面跟异常对象特殊的异常:Exception中有一个子类异常runtimeException及其子类运行时异常如果在函数内容上抛出该异常 函数上可以不用声明如果在函数上声明了该异常 调用者可以不用处理不用try 和 catch自定义的异常若继承了runtimeException 可以不声明 不解决 直接抛出就可以了只要问题被ca
14、tch()解决 异常就不用声明异常总结:异常是对问题的描述 讲问题进行对象封装异常体系:Throwsable|-Error|-Exception|-RuntimeException异常体系特点:异常体系中所有类以及建立的对象都具有可抛性可以被throw 和 throws关键字操作Throw 和throws用法:Throw 定义在函数内,用于抛出异常对象Throws定义在函数上 用于抛出异常类 可以用多个逗号分开当函数内容有throw抛出异常对象 并未进行try 处理 ,必须要在函数上声明 否则编译失败注意,RuntimeException 除外如果函数声明了异常,调用者需要进行处理调用者可Th
15、rows 可以try异常有两种:编译时被检测异常该异常在编译时,如果没有处理(没有throw没有try) 编译失败该异常被标识 代表这可以处理运行时异常(编译时不检测)在编译时不需要处理 编译器不检查该异常的发生 建议不要处理 让程序停止 需要对代码进行修正异常处理语句:Try需要被检测的代码Catch(异常类型 异常形参)处理异常的代码Finally一定会执行的代码 ,如关闭资源代码 数据库断开连接 注意 若前边代码中执行了 Systems.exit(0); finally也不会执行 有三个结合方式:Try catchTry finallyTry catch finally自定义异常:定义类
16、继承Exception或者RuntimeException1.为了让该类具有可抛性2.让该类具备操作异常的共性方法当要定义自定义异常时 可以使用父类已经定义好的功能将异常信息传递给父类的构造函数用super();传递线程:Thread创建线程方法继承Thread类子类重写run()方法 run方法内存放要运行的代吗 相当于main()调用线程start方法 该方法两个功能:启动线程 调用run方法线程的状态:Runnable:创建线程的另一种重要方法步骤:1.定义类实现 Runnable接口2.覆盖Runnable接口中的run方法将线程要运行的代码放在其中3.通过Thread创建对象4.将R
17、unnable接口的子类对象作为实际参数传递给Thread类的构造函数5.调用Thread类中的start方法并且调用Runnable接口子类中的run方法同步代码块:Synchronized(任意一个对象)需要同步的代码作用 使一个线程一次执行完该代码块 中途不会北其他线程执行类名.class是一个对象等待唤醒机制:Wait();Notify();Notifyall();都使用在同步中 因为都要持锁的线程操作 即 锁.wait()等Stringchar arr = a, b, d, f, g, e, r, t, ;String s = new String(arr); /将字符数组转换为字符
18、串String s = new String(arr,2,5);/从第2个开始 取5个作为字符串String a=qwerrtyewq;char b =a.toCharArray();/ 字符串转换为字符数组String a=qwer;a=a.replace(we, mn);/替换字符String a = qwer,tyui,opas;String b = a.split(,);/字符串按逗号分割String a = qwer;String z = a.substring(1,3);/获取从1到3角标前的字符串 包含1角标不包含3角标String z = a.substring(1);/获取从
19、角标1开始的字符串String a = Pwer;String z = a.toUpperCase(); /转换成大写String z = a.toLowerCase();/转换成小写String a = Pwr ;String z = a.trim(); /去掉两端空格String s1 = “asdfghjkl”String s2 = “dfghjk”S1.contains(s2) /返回值类型为 BooleanStringbuffer 字符串缓冲区 是一个容器 是一个final 类StringBuffer sb = new StringBuffer();Sb.append(“asd”)/
20、往sb容器中添加字符串asdSb.append(“asd”).append(35)/往sb容器中添加 字符串asd和341.存储添加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字符数组中 从chs3 开始存“”+数字
21、= 字符串Int a = Integer.parseInt(“xxx”,zzz); /xxx为需要转换的数 zzz为xxx的进制类型集合框架:Collection 接口 ArrayList al = new ArrayList(); 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
22、(al.isEmpty();/判断是否为空 al.clear();/清空 sop(al);ArrayList al = new ArrayList(); ArrayList a2 = new ArrayList(); 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
23、.removeAll(a2);/删除交集 sop(al); sop(a2);迭代器 Iteratorimport java.util.*;public class CollectionDemo /* * param args */ public static void get() ArrayList al =new ArrayList(); al.add(1); al.add(1); al.add(2); al.add(6); al.add(9); al.add(7);/ Iterator it =al.iterator();/获取迭代器 用于取出集合中元素 /迭代器取出元素法一:/ whil
24、e(it.hasNext() /it.hasNext()返回值为boolean类型 作用判断al中是否下一个元素存在/ System.out.println(it.next();/ /迭代器取出法2 这个方法更优化 for(Iterator it =al.iterator();it.hasNext();) System.out.println(it.next(); public static void main(String args) / TODO Auto-generated method stub get(); List ,set 为collection常见子接口|-list : 元素是
25、有序的 元素可以重复 该集合有索引|-set :元素无序 不可重复 没有索引List特有方法:增:Add(index , element);addAll(index,Collection);删Remove(index);改:Set(index ,element);查:Get(index);Sublist(from ,to);Listiteratorimport java.util.ArrayList;import java.util.Iterator;public class ListDemo public static void main(String args) ArrayList al
26、=new ArrayList(); 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); /获取所有元素
27、法一 for(int x= 0;xal.size();x+) System.out.println(al.get(x); /获取所有元素法二 for(Iterator it=al.iterator(); it.hasNext();) System.out.println(it.next(); import java.util.ArrayList;import java.util.Iterator;public class ListDemo public static void main(String args) public static void g() ArrayList al =new ArrayList(); 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