【精品】java学习笔记与心得.doc_第1页
【精品】java学习笔记与心得.doc_第2页
【精品】java学习笔记与心得.doc_第3页
【精品】java学习笔记与心得.doc_第4页
【精品】java学习笔记与心得.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【精品】java学习笔记与心得 GUI GraphicsUser InterfaceAWT AbstractWindow Toolkitjava.awt包含了构成抽象窗口工具集(abstract windowtoolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。 javax.swing完全Java版的图形用户界面(GUI)解决方案,提供了很多完备的组件,可以应对复杂的桌面系统构建。 java.包含执行与网络相关的操作的类,如URL,Socket,ServerSocket等。 java.io包含能提供多种输入/输出功能的类。 java.util包含一些实用工具类,如定义系统特性、使用与日期日历相关的方法。 还有重要的集合框架。 1多态是针对两个类之间的方法来说的。 2重载是针对一个类之间的同名方法而言的。 3覆盖是针对两个类的同名同参的方法来说的。 3两个子继承之间的类不能转换,就算是强制转换都不行。 4java文档名,应该用public class的公共类名来赋名。 5当编译一个java文档时,java编译器会根据class类的数量,来生成多个对应class文件。 6运行时屏蔽断言。 运行时屏蔽断言java-disableassertions/java-da运行时允许断言java-enableassertion/java-ea一个类的所有基本类型数据成员都保证获得一个初始值每个编译单元内都只能有一个public类一个有效的程序就是一系列.class文件,它们可以封装和压缩到一个JAR文件里(使用Java1.1提供的jar工具)程序片的运行;由于程序片观察器会忽略除APPLET标记之外的任何东西,所以可将那些标记作为注释置入Java源码/这样就可直接执行“appletviewer MyApplet.java”,不必再创建小的HTML文件来完成测试。 新建一个类或创建一个类都不会触发该类的main入口函数public static void main(Stringargv)的Stringargv与public static void main(String argv)的String argv之间的区别两者作用一样,前者是java新引入的数组的一种写法,后者是c+的数组的写法形式,在java中,两种写法都可以。 导入已有的java applet文件,file-import-general-existing projectsinto workspace字段就是指数据成员方法就是指成员函数执行一个类需要写全包名java .xiaoliu.abc.HelloWorld voidnothing()return;return的作用是退出语句,而不是返回0的一个值,当在有返回值的情况之下,就会提示必须返回一个值,即return0;每种非基本类型的对象都有一个toString()方法如果类没有默认的自变量,或者想调用含有一个自变量的某个基础类构建器,必须明确地编写对基础类的调用代码。 这是用super关键字以及适当的自变量列表实现的class GameGame(int i)System.out.println(Game constructor);class BoardGameextends GameBoardGame(int i)super(i);/调用父类的自变量是int类型的构造函数-System.out.println(BoardGame constructor);final类的意义就是禁止一个新类来继承它接口包含了基本数据类型的数据成员,但它们都默认为static和final,也就是说接口是不能用extends继承。 接口中的字段会自动具备public属性,所以没必要专门指定,也就是说接口是拿来用的,设置成private就失去了意义。 java doc命令行java Frogfinalize toString方法的引用下面是调用打印的另一个方法(尽管在效率上可能会差一些)System.out.println(+e.nextElement();它采用了封装到Java内部的“自动转换成字串”技术。 一旦编译器碰到一个字串,后面跟随一个“+”,就会希望后面又跟随一个字串,并自动调用toString()。 取对象的地址值super.toString()super的对象是指根类Object随机为boolean赋值boolean shadom=Math.random()0.5;违例跟踪public classNeverCaughtstaticvoidf()throw newRuntimeException(From f();/3staticvoidg()f();/6public staticvoid main(String args)g();/9编择出Exception inthreadmainjava.lang.RuntimeException:From f()at NeverCaught.f(NeverCaught.java:3)at NeverCaught.g(NeverCaught.java:6)at NeverCaught.main(NeverCaught.java:9)3,6,9能够跟踪到抛出异常的地方jar命令行jar cfmyJarFile.jar*.class用于创建一个名为myJarFile.jar的JAR文件,其中包含了当前目录中的所有类文件,同时还有自动产生的查看java包的大类和相应的小类在E:Program FilesJavajre6librt.jarjava用压缩文件打开rt.jar文件rt=runtime运行时类java.lang是java的核心类,也是已经默认导入的类,所以可以直接引入StringSystem类,即不用import java.lang.*;java.lang类包括StringSystemIntegerMathThreadException的一些常用功能的类对当前所在目录的全部文件进行打包成jar文件当前所在的目录必须用cd命令行引入jar-cvf abc.jar*.*.*表示全部文件Object类一个构造函数Object();多个方法clone()equals(Object obj)finalize()getClass()hashCode()toString()与线程相关的方法notify()notifyAll()wait()wait(long timeout)wait(long timeout,iint nanos)toString publilass TesttoStringpublic staticvoid main(String args)Dog d=new Dog();System.out.println(d:+d);class Dog里面的System.out.println(d:+d)=System.out.println(d:+d.toString();override thetoString functionoverride=重写如果没有重写toString方法,则d=getClass().getName()+Integer.toHexString(hashCode()d=Dog757aef=比较的是对象之间的地址值是否相等equals()方法比较的是两个对象的内容是否相等一般都重写equals()方法instanceof判断该Object类对象是否是Cat类的对象Object instanceofCat返回true/false多态存在的三个条件1要有继承2要有方法重写3父类引用子类对象如Parent p=new Child();抽象类的父类可以声明Person person,但不可以进行实例化Person person=new Person();只要类中有一个方法是抽象方法,该类就必须声明为抽象类,关键字abstract final关键字final的变量不可以改变final的方法不可以重写final的类不可以继承interface接口的默认前置public interfaceRunnerpublic staticfinal int i;public void start();public void run();public void stop();=pulbic interfaceRunnerinti;voidstart();voidrun();void stop();voidstop();异常Throwable包含两个子类Error系统内部错误,不需要程序员处理Exception程序员需要处理的错误Exception又包含运行时错误RuntimeException方法后面接throws往外抛异常,交给上一层结构处理,即printStackTrace()的路径轨迹的上、下层结构的一层重写方法需要抛出与原方法所抛出异常类型一致异常或不抛出异常路径的正反斜杆window的是反斜杆linux的是正斜杆/但统一写正斜杆/的两者皆可容器(接口)在java.util工具类里面一个一个地往里装一对一对地往里装Collection有两个子类,Set(HashSet)+List(ArrayList+LinkedList)Set的数据对象没有顺序且不可以重复List的数据对象有顺序且可以重复LinkedList方便删除、添加、插入元素ArrayList方便访问元素Map接口定义了存储“键(Key)-值(value)映射对”的方法当调用remove、contains等方法需要比较对象是否相等时,需要重写equals和hashCode方法以实现自定义的对象相等规则对象一样,则索引也必须一致,如字典,但有时也不一定,看情况。 hashCode就是实现索引的效率Collection Map(HashMap)Iterator接口1所有实现了Collection接口的容器类都有一个Iterator方法用以返回一个实现了Iterator接口的对象2Iterator对象称作迭代器,用以方便的实现对容器元素的遍历操作3Iterator接口定义了三个方法boolean hasNext();判断游标右边是否有元素Object next();返回游标右边的元素并将游标移动到下一个位置void remove();删除游标左面的元素,在执行完nest之后该操作只能执行一次-A-A-A-A-A-A-A-游标A元素用法Collection c=new HashSet();c.add(new Name(first name,last name)Iterator i=c.iterator();while(i.hasNext()Name name=(Name)i.next();/i.remove()i.next();Collection是一个接口Collections是一个类Map接口键值不能重复,即键不能重复。 当键相同时,由于一一对应的关系会把相应的value值替换掉。 因为比较equals判断是否重复的效率比较慢,而比较两个对象的hashCode是否相同,从中判断是否重复,这种方法比较快,因而一般都重写该对象的hashCode方法Auto-boxing/unboxing在合适的时机自动打包、解包打包自动将基础类型转换为对象解包自动将对象转换为基础类型有一种相当于String类型的s+的形式如Interger i=new Interger (100);i+1;泛型(Generic)list=new ArrayList();Map=new hashMap();装入的对象只能是String对象interfaceclass io以stream结尾的为字节流Reader/Write的为字符流io2PrintWriter PrintStream PrintWriter和PrintStream都属于输出流,分别针对字符和字节两者都提供了重载的print两者的输出操作不会抛出异常,并且有自动flush功能io3InputStream OutputStreamReader WriterFileInputStream FileOutputStreamFileReader FileWriterBufferedInputStream BufferedOutputStreamBufferedReader BufferedWriterByteArrayInputStream ByteArrayOutputStreamInputStreamReader OutputStreamWriterDataInputStream DataOutputStreamPrintStreamPrintWriterObjectInputStream ObjectOutputStream处理流1缓冲流BufferInputStream/BufferOutputStream BufferReader/BufferWriter2转换流,字节流到字符流的转换InputStreamReader/OutputStreamWriter3数据流,将基础数据类型写入到文件中,或从文件中读取,如int、long、double DataInputStream/DataOutputStream DateCST=China StandardTime newDate()Wed Oct2418:26:20CSTxx线程Thread/Thread t=new Thread(Runnable r);(方法1Runnable接口实现推荐,重复实现)Runner r=new Runner();Thread t=new Thread(r);t.start();class Runnerimplements Runnablepublic voidrun()/重写run方法Thread构造函数是一个Runnable接口,Thread.start()调用属于接口Runnable类型的run()方法(方法2继承Thread类实现)Runner r=new Runner();r.start();class Runnerextends Threadpublic voidrun()线程同步/加锁synchronized在父类Runnable/Thread的子类当中的方法必须全部加上synchronized关键字前提是两个方法都有修改子类的数据成员的值的时候,不然达不了真正同步加了锁的目的加上synchronized只能保证一个线程进入当前的方法当中,但不能保证别的线程能够访问调用其它的方法如银行账户的修改不能让两个线程同时访问线程的wait sleepyield wait放弃锁synchronized,由notify呼唤sleep不会放弃锁synchronized yield放弃一个CPU时间片wait/notify属于Object的方法sleep/yield属于Thread的方法本地的IP地址是“127.0.0.1”所有可显示的图形元素的父类为Component FlowLayout是Panel类的默认布局管理器Flow流水线式的布局BorderLayout是Frame类的默认布局管理器Border划分为东西南北中五个区正则表达式字母.数字d java.util.regex.Pattern字符x字符x反斜线字符0n带有八进制值0的字符n(0=n=7)0nn带有八进制值0的字符nn(0=n=7)0mnn带有八进制值0的字符mnn(0=m= 3、0=n=7)xhh带有十六进制值0x的字符hhuhhhh带有十六进制值0x的字符hhhht制表符(u0009)n新行(换行)符(u000A)r回车符(u000D)f换页符(u000C)a报警(bell)符(u0007)e转义符(u001B)cx对应于x的控制符字符类abca、b或c(简单类)abc任何字符,除了a、b或c(否定)a-zA-Za到z或A到Z,两头的字母包括在内(范围)a-dm-pa到d或m到pa-dm-p(并集)a-z&defd、e或f(交集)a-z&bca到z,除了b和cad-z(减去)a-z&m-pa到z,而非m到pa-lq-z(减去)预定义字符类.任何字符(与行结束符可能匹配也可能不匹配)d数字0-9D非数字0-9s空白字符tnx0BfrS非空白字符sw单词字符a-zA-Z_0-9W非单词字符wPOSIX字符类(仅US-ASCII)pLower小写字母字符a-zpUpper大写字母字符A-ZpASCII所有ASCIIx00-x7FpAlpha字母字符pLowerpUpperpDigit十进制数字0-9pAlnum字母数字字符pAlphapDigitpPunct标点符号!#$%&()*+,-./:;?_|pGraph可见字符pAlnumpPunctpPrint可打印字符pGraphx20pBlank空格或制表符tpCntrl控制字符x00-x1Fx7FpXDigit十六进制数字0-9a-fA-FpSpace空白字符tnx0Bfrjava.lang.Character类(简单的java字符类型)pjavaLowerCase等效于java.lang.Character.isLowerCase()pjavaUpperCase等效于java.lang.Character.isUpperCase()pjavaWhitespace等效于java.lang.Cha

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论