`
ccn1010
  • 浏览: 15014 次
  • 性别: Icon_minigender_1
  • 来自: 邢台
最近访客 更多访客>>
社区版块
存档分类
最新评论

java基础2_Lesson3

阅读更多


1. 接口中所声明的方法都是抽象方法。接口中的方法都是public的。


2. 接口也可以定义成员变量。接口中的成员都是public、final、static的。


3. 一个类不能既是final又是abstract的。因为abstract的主要目的是定义一种约定,让子类去实现这种约定,而final表示该类不能被继承,这样abstract希望该类被继承而final明确说明该类不能被继承,两者矛盾。因此一个类不能既是final的,又是abstract的。


4. Design Pattern(设计模式)。单例模式(Singleton):表示一个类只会生成唯一的一个对象。


5. 包(package)用于将完成不同功能的类分门别,放在目录(包 )下。包的命名规则:将公司域名反转作为包名。www.shengsiyuan.com,com.shengsiyuan(报名),对于包名:每个字母都需要小写。如果定义类的时候没有使用package,那么java就认为我们所定义的类位于默认包里面(default package)。

  1. 6 . 编译带有 package 声明的Java源文件有两种方式:   
  2. a) 直接编译,然后根据类中所定义的包名,逐一手工建立目录结构,最后将生成的class 文件放  
  3. 到该目录结构中(很少使用,比较麻烦)。   
  4. b) 使用编译参数 –d,方式为javac –d . 源文件.java,这样在编译后,编译器会自动帮  
  5. 助我们建立好包所对应的目录结构。

7 . 有两个包名,分别是aa.bb.cc与aa.bb.cc.dd,那么我们称后者为前者的子包。


8 . 导入( import ),将使用 package 分离的各个类导入回来,让编译器能够找到所需要的类。


9 import 的语法: import  com.shengsiyuan.PackageTest; 


10 import  com.shengsiyuan.*,表示导入com.shengsiyuan包下面的所有类。


11 import  aa.bb.*并不会导入aa.bb.cc

包下面的类。 

这时需要这样写: 

import  aa.bb.*; 

import  aa.bb.cc.*; 


12 . 关于package import class 的顺序问题:  

  a) 首先需要定义包(package ),可选  

  b) 接下来使用import 进行导入,可选  

  c) 然后才是class interface 的定义。  


13 . 如果两个类在同一个包下面,那么则不需要导入,直接使用即可。


14 . 访问修饰符(access modifier)。

         1 )  public (公共的):被 public 所修饰的属性和方法可以被所有类访问。 

         2 )  protected (受保护的):被 protected 所修饰的属性和方法可以在类内部、相同包 以及该类的子类所访问。

         3 )  private (私有的):被 private 所修饰的属性和方法只能在该类内部使用

         4 ) 默认的(不加任何访问修饰符):在类内部以及相同包下面的类所使用。


15 . instanceof : 判断某个对象是否是某个类的实例。语法形式:引用名  instanceof  类 名(接口名),返回一个boolean 值。


16 . People people =  new  Man();  


17 . System.out.println(people instanceof  People);  //结果为true,因为Man是People 的子类,根据继承,子类就是父类,因此Man也可以看作是People的实例。


18. 相等性的比较

      ①对于原生数据类型来说,比较的是左右两边的值是否相等.

      ②对于引用类型来说,比较左右两边的引用是否指向同一个对象,或者说左右两边的引用地址是否相同.


19. java.lang.Object类.java.lang包在使用的时候无需显式导入,编译时,编译器器自动导入.


20. API(Application Programming Interface).应用编程接口.


21. 当打印引用时,实际上会打印出引用所指对象的toString()方法的返回值,因为每个类都直接或间接低继承自Object,而Object类中定义了toString(),因此每个类中都有toString()这个方法.


22. 关于进制的表示:16进制,逢十六进一,16进制的数制包括:0~9,A,B,C,D,E,F.


23. equals方法:该方法定义在Object类中,因此Java中的每个类都具有该方法,对于Object类的equals()方法来说,它是判断调用 equals()方法的引用于传进来的引用是否一致,即这两个引用是否指向同一个对象.对于Object类来说等价于"==".


24. 对于String类的equals方法来说,它是判断当前字符串与传进来的字符串的内容是否一致.


25. 对于String对象的相等性判断来说,请使用equals方法,而不要使用==


26. String 是常量,其对象一旦创建完毕就无法改变.当使用+拼接字符串时,会生成新的String对象,而不是向原有的String对象追加内容.


27. String Pool(字符串池)


28. String s=”aaa”;(采用字面值的方式赋值)

        1)查找String Pool中是否存在"aaa这个对象,如果不存在,则在String Pool中创建一个"aaa"对象,然后将String Pool中的这个"aaa"对象的地址返回来赋给引用变量s,这样s就会指向String Pool中的这个"aaa"字符串对象.

        2)如果存在,则不创建任何对象,直接将String Pool中的这个"aaa"对象地址返回来,赋给s引用.


29. String s = new String("aaa");

        1)首先在String Pool中查找有没有"aaa"这个字符串对象,如果有,则不在String Pool中再去创建"aaa"这个对象了,直接在堆中(heap)中创建一个"aaa"字符串对象,然会将堆中的这个"aaa"对象的地址返回来,赋给s 引用,导致s指向了堆中创建的这个"aaa"字符串对象,

        2)如果没有,则首先在String Pool中创建一个"aaa"对象,然后再在堆中(heap)创建一个"aaa"对象,然后将堆中的这个"aaa"对象的地址返回来,赋给s引用,导致s指向了堆中所创建的这个"aaa"对象.

 

30. String的intern()方法


31. 只要+运算符连接的内容中有一个是字符串,那么所有的变量都变成字符串,例如"false"+true








分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics