寒假笔记——java

奋斗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  (推荐)
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具体的实现 。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值