您的位置:首页 > 编程语言 > Java开发

寒假笔记——java

2016-03-11 22:01 190 查看



Java6基础教程:(第一本Java书)

Static关键字修饰的成员变量:

1.属于整个类所有;

2.非静态成员方法可以访问静态成员变量;

3.两种初始化:定义时候初始化或者通过静态初始器/static{ }

4.可以通过类名和对象来访问;而非静态数据成员则只能通过对象来访问;

5.非静态方法中不能存在静态方法;

Static修饰的成员方法:

1.只能访问由static修饰的成员变量;

2.方法为整个类所有;

3.对应的方法在子类中不能被重写;

注意:在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。

   而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。

 

   静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。

Final修饰的成员变量:

1.两种初始化:定义 和构造函数;

Final修饰的成员函数:

1.表示最终方法,不能再在子类中被重新定义,且只能使用从父类继承来的方法;

     继承:

Java中的继承关系通过关键字extends实现;子类能够继承来自父类的除私有成员和方法的一切;

子类中与父类同名的成员变量会实现隐藏,但是仍旧占据空间;而同名的成员方法则将子类中的父类方法消除;

一般我们继承基本类和抽象类用extends关键字,实现接口类的继承用implements关键字。

this 是本类对象的一个引用;

super是父类对象的一个引用;当需要在子类中调用父类的被重写方法时,要使用super关键字。

     两者均不能用在static修饰的方法中;

抽象类和抽象方法:

  1,由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。

   父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。

  2,如果你想设计这样一个类,该类包含一个特别的成员方法,该方法的具体实现由它的子类确定,那么你可以在父类中声明该方法为抽象方法。声明抽象方法会造成以下两个结果:

   1,如果一个类包含抽象方法,那么该类必须是抽象类。 2,任何子类必须重写父类的抽象方法,或者声明自身为抽象类。

    继承抽象方法的子类必须重载该方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该抽象方法,否则,从最初的父类到最终的子类都不能用来实例化对象。

接口,包:

interface 完成对事物的抽象

封装:public 使得所有的方法和成员变量有了被别的类使用的可能性,具体还得看对应方法或者变量的修饰;

    (同一个.java文件中只能有一个public class)

      protected 保证类可以通过继承的方式来访问其他包的方法和成员;

      private 保证本类中的数据和方法只能被本类所使用;其他类(同包不同均可)可以通过该类的成员方法来修改的其中的私有数据;

      public  在任何的地方都能访问;

      private  只能在本类中访问;

      protected  不能在别的包中被访问。

总结:同一个包中数据之间只有private限制;不同包之间只有public没有限制;

多态:java中有两种多态机制(重载overload和覆盖override)

第六章:数组与常用的类:

  在Java中将数组看做是对象;

 定义数组:eg:int[] a=new int[10]; int[][] b=new int[3][4];int[][] b=new int[3][];

 int[][] b=new int[][]{{2,2,3},{3,3,3}}(申明数组的同时赋值,是不能指定数组的长度的)

 二位数组:b.length=行;列=b[i].length;

与数组相关的方法:

1.System.arrrycopy()将数组a复制给数组b

2.如果是利用数组对象的equals()方法,a.equals(b)判断的是两个数组引用是否相等;

  如果用a==b,则两个数组有相同的储存空间,改变一个,相应的另一个也会变;

  如果是Array.equals(a,b)只要有相同且相互对应的元素,就相等;(比较元素相等)

3.数组类:java.uitl.Arrays,即专门用来处理数组的类;

  asList()//将数组转变为List;binarysearch()二分查找;fill()填充;sort()升序排列;

System类来获取标准的输入和输出:

break与continue的比较:

  两者均用于跳出循环;break用于结束整个循环;continue则表示结束本次循环;

处理字符串的类:String and StringBuffer

  String abc= "wangwei";得到一个字符串常量;

  StringBuffer abc=new StringBuffer("wangwei")用于表示字符串变量的,即可以动态修改的;

Java中日期处理的类:

1.Date 表示与格林威治时间相距的毫秒数;主要用于创建日期对象;

2.DateFormat 对上面或的时间进行各种的格式化;这是一个抽象类,不能实列化,可以通过静态方法返回该类的对象;

3.Calendar 可以灵活的设置和读取日期中的具体时间,年,月。。

BigDecimal实现精确计算

第七章:异常

第八章:Java中输入/输出和文件操作

1.字节流

字节输入流

字节输出流

// 使用 System.in 创建 BufferedReader

   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

2.字符流Reader()和Writer()

字符输出流

字符输入流

3.文件流

File(String str) //创建一个文件,或者目录

FileOutputStream(文件名)   //用于向对应文件中写入数据   DataOutputStream() BufferedStream()

FileInputStream(文件名)    //从对应的文件中读取文件数据 DataInputStream()

第九章:多线程

创建:继承Thread类;   实现Runnable接口(2步)

区别:前者有run()和start()方法;而后者只有run()方法;

常用的方法:1,启动线程start()2,定义线程的操作的run()方法

            3,sleep(time)使当前线程暂时休眠,优先级高的线程可以在它的run()方法中调用sleep()使自己放弃cpu,

               休眠一段时间(转到阻塞状态);

            4,判断线程是否消亡isAlive()

注意:Thread的run()方法是专门 用来被自身线程调用的,不是也在主线程中直接调用其他线程的run()方法;

Java中线程的调度模式:抢占式调度

                      1.调整优先级   2.线程睡眠  3.线程让步  4.等待其他线程结束

比较:sleep()和yield()都会使当前线程放弃CPU,前者使其进入阻塞状态,后者则会使其进入可运行状态;睡眠的结果是其他任何优先级的      线程都可能获得CPU,而让步只能使同等或者更高级的线程获得CPU;

获取主线程:Thread main1=Thread.currentThread();

线程间的同步:加锁机制  

第11章网络编程和数据库编程

   3种通信方式:

1,URL通信

2,socket通信

3,UDP通信(不可靠通信,适合于实时准确度要求不高的)

   JDBC结构:1,Java程序 2,JDBC管理器

          3,驱动程序(4种)作用是处理JDBC方法,为特定的数据库发送SQL请求,并未Java程序获取所需的结果

          4,数据库

   4中驱动程序:

1,Jdbc-Odbc bridge

2,Jdbc_native API bridge

3,Jdbc_middleware  (推荐
4000


4,pure JDBC diver (推荐)

第12章:Java高级

数据结构:

1.枚举 Enumeration接口 现在基本被 Iterator替代;

2.Java Bitset类

3.Java Vector类(向量)Vector类实现了一个动态数组。和ArrayList和相似,但是两者是不同的:

     1. Vector是同步访问的。

     2. Vector包含了许多传统的方法,这些方法不属于集合框架。

4.Java Stack 类(栈)栈是Vector的一个子类,它实现了一个标准的后进先出的栈。

   五个函数:1,empty();2,push();3,pop();4,peek()5,search()

5.Java Dictionary 类  Dictionary 类是一个抽象类,用来存储键/值对,作用和Map类相似。已经被Map取代了。

6.Java Hashtable 接口  Hashtable是原始的java.util的一部分, 是一个Dictionary具体的实现 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: