`
woxiaoe
  • 浏览: 276516 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Java 基础复习笔记一

    博客分类:
  • Java
阅读更多

这两天复习java的基础知识,把一些自己认为比较有用的点记录下来。

 

1)合法标识符是以"$","_",和字母为开始的字符串。

2)'\r'表示回车符,'\n'表示换行符

3)不是所有的Unicode的字符都可以直接用做char类型常量,比如'\r','\n'需要用反斜杠做转义才可以。

4)一个整形的数据达到整型能表示的最大数值后,再加1,则机器产生上溢,结果为整型的最小值。如果该数据达到了整形能表示的最小数值后,再减一,这机器产生下溢,结果为整形的最大值。实型变量如果下溢,者计算机设置为0.0;如果上溢这机器设为+-Infinity(正负无穷大)

5)char为16为的Unicode字符

6)byte类型的范围是 -128~127,char类型的范围是0~65535,short 类型的范围是-32768~32767

7)double类型的数据占64位的存储空间。

8)char类型数据可以自动转换为除了boolean类型数据之外的任何简单数据类型

9)浮点数做除法是,如果分母为0.0则不会出现溢出,系统默认的结果为NaN特殊值

10)short类型的数据在计算机中存储时是按照高位数据在前,低位数据在后进行的

11)boolean只有true和false两个值,不能做类型转换,包括自动和强制

12)接口属于复合类型

13)数组时最简单的复合数据类型,是一系列数据的集合

14)java语言中的方法的参数传递时传值调用,而不是地址调用

15)出static内部类外,不能再类内声明static成员

16)抽象方法不一定在抽象类中,也可以在接口中。

17)单处理机的计算机上,2个线程实际上不能并发执行

18)线程是程序的一个单个执行流

19)线程可以通过调用sleep()方法使比当前线程低优先级的线程运行

       线程可以通过调用yield()方法使和当前线程优先级一样的线程运行,若没有相同优先级的线程处于可运行状态,线程用yield()方法时,当前线程将继续执行

20)进程是有代码,数据,内核状态,以及一组寄存器组成的。java线程模型就是一个虚拟的cpu,程序代码和数据的封装体

21)final修饰的变量一旦被初始化后就不可改变了,对于基本类型来说是其值不可改变,对于对象变量来说是其引用不可改变。其初始化可以在两个地方,一是其定义出,二是在构造函数中,两者只能选其一

22)HashMap允许一个null的键和多个null值,Hashtable不允许。HashMap把Hashtable的contains方法去掉了,改成了containsvalue 和containsKey.

       Hashtable方法是同步的,而HashMap不是

23)判断一块内存空间是否符合垃圾收集的标准:

              *给对象赋予了空值null,以下在没有调用过。

              *给对象赋予了新值,及重新分配了内存空间

24)*抽象类不可以初始化,

       *如果一个类里有一个以上的抽象方法,则该类必须声明为抽象类,该方法必须声明为抽象的,此时抽象方法是不可以有body的

       *抽象类中也可以有非抽象方法,非抽象方法与一般类相同

       *抽象类中如果全是抽象方法,那么抽象类就是一个纯抽象类,整个抽象类也就变成了接口。

25)对于一个static的方法而言,无法访问泛型的类型参数,所以static方法需要使用泛型能力,就必须使其成为泛型方法。

26)在泛型代码内部,无法获得任何有关泛型参数类型的信息

27)无论何时对同一个对象调用hashCode()都应该生成同样的值。散列码不比是独一无二的,但是通过hashCode()和equals()必须能够完全确定对象的身份

28)如果一个后台线程,那么它创建的任何线程将被自动设置成后台线程。

29)Math.round() 返回与参数最接近的长整数

30)abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized  (不能)

31)传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich

分享到:
评论
8 楼 hzh86316 2010-06-06  
<div class="quote_title">woxiaoe 写道</div>
<div class="quote_div">
<p>这两天复习java的基础知识,把一些自己认为比较有用的点记录下来。</p>
<p> </p>
<p>1)合法标识符是以"$","_",和字母为开始的字符串。</p>
<p>2)'\r'表示回车符,'\n'表示换行符</p>
<p>3)不是所有的Unicode的字符都可以直接用做char类型常量,比如'\r','\n'需要用反斜杠做转义才可以。</p>
<p>4)一个整形的数据达到整型能表示的最大数值后,再加1,则机器产生上溢,结果为整型的最小值。如果该数据达到了整形能表示的最小数值后,再减一,这机器产生下溢,结果为整形的最大值。实型变量如果下溢,者计算机设置为0.0;如果上溢这机器设为+-Infinity(正负无穷大)</p>
<p>5)char为16为的Unicode字符</p>
<p>6)byte类型的范围是 -128~127,char类型的范围是0~65535,short 类型的范围是-32768~32767</p>
<p>7)double类型的数据占64位的存储空间。</p>
<p>8)char类型数据可以自动转换为除了boolean类型数据之外的任何简单数据类型</p>
<p>9)浮点数做除法是,如果分母为0.0则不会出现溢出,系统默认的结果为NaN特殊值</p>
<p>10)short类型的数据在计算机中存储时是按照高位数据在前,低位数据在后进行的</p>
<p>11)boolean只有true和false两个值,不能做类型转换,包括自动和强制</p>
<p>12)接口属于复合类型</p>
<p>13)数组时最简单的复合数据类型,是一系列数据的集合</p>
<p>14)java语言中的方法的参数传递时传值调用,而不是地址调用</p>
<p>15)出static内部类外,不能再类内声明static成员</p>
<p>16)抽象方法不一定在抽象类中,也可以在接口中。</p>
<p>17)单处理机的计算机上,2个线程实际上不能并发执行</p>
<p>18)线程是程序的一个单个执行流</p>
<p>19)线程可以通过调用sleep()方法使比当前线程低优先级的线程运行</p>
<p>       线程可以通过调用yield()方法使和当前线程优先级一样的线程运行,若没有相同优先级的线程处于可运行状态,线程用yield()方法时,当前线程将继续执行</p>
<p>20)进程是有代码,数据,内核状态,以及一组寄存器组成的。java线程模型就是一个虚拟的cpu,程序代码和数据的封装体</p>
<p>21)final修饰的变量一旦被初始化后就不可改变了,对于基本类型来说是其值不可改变,对于对象变量来说是其引用不可改变。其初始化可以在两个地方,一是其定义出,二是在构造函数中,两者只能选其一</p>
<p>22)HashMap允许一个null的键和多个null值,Hashtable不允许。HashMap把Hashtable的contains方法去掉了,改成了containsvalue 和containsKey.</p>
<p>       Hashtable方法是同步的,而HashMap不是</p>
<p>23)判断一块内存空间是否符合垃圾收集的标准:</p>
<p>              *给对象赋予了空值null,以下在没有调用过。</p>
<p>              *给对象赋予了新值,及重新分配了内存空间</p>
<p>24)*抽象类不可以初始化,</p>
<p>       *如果一个类里有一个以上的抽象方法,则该类必须声明为抽象类,该方法必须声明为抽象的,此时抽象方法是不可以有body的</p>
<p>       *抽象类中也可以有非抽象方法,非抽象方法与一般类相同</p>
<p>       *抽象类中如果全是抽象方法,那么抽象类就是一个纯抽象类,整个抽象类也就变成了接口。</p>
<p>25)对于一个static的方法而言,无法访问泛型的类型参数,所以static方法需要使用泛型能力,就必须使其成为泛型方法。</p>
<p>26)在泛型代码内部,无法获得任何有关泛型参数类型的信息</p>
<p>27)无论何时对同一个对象调用hashCode()都应该生成同样的值。散列码不比是独一无二的,但是通过hashCode()和equals()必须能够完全确定对象的身份</p>
<p>28)如果一个后台线程,那么它创建的任何线程将被自动设置成后台线程。</p>
<p>29)Math.round() 返回与参数最接近的长整数</p>
<p>30)abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized  (不能)</p>
<p>31)传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich</p>
</div>
<p> </p>
<p>感觉楼主对java里面很多概念都比较混乱和模糊,为免误人子弟,挑几个说说吧:</p>
<p> </p>
<p>13)数组时最简单的复合数据类型,是一系列数据的集合</p>
<p>数组和集合是两个不同的数据结构。数组不仅仅是一系列数据的集合。。。。。</p>
<p> </p>
<p>14)java语言中的方法的参数传递时传值调用,而不是地址调用。</p>
<p>我不太明白你的定义中的“值调用” “地址调用”分别是什么,什么叫 值调用?????都是值了,还调用?啥叫调用?</p>
<p>如果我分别理解为 值传递 和 地址传递 ,那你这句话就是错的。</p>
<p>如果我分别理解为 值传递 和 引用传递 ,那可以理解为是正确的。准确的表述应该是</p>
<p><strong>java中只有值传递,没有引用传递。</strong></p>
<p><strong></strong><span style="white-space: pre;"> </span>绝大多数的人认为 对于java中的对象在方法参数传递时,也是传递的值,这个值就是对象的引用(地址)。包过java之父在内的绝大多数人支持这个观点,我学Bruce Eckel,保持中立。</p>
<p> </p>
<p>15)出static内部类外,不能再类内声明static成员。</p>
<p>明白你的意思,感觉应该是笔误了吧。修正笔误。</p>
<p><strong>不能在非static的内部类中声明static成员。</strong></p>
<p> </p>
<p>21)final修饰的变量一旦被初始化后就不可改变了,对于基本类型来说是其值不可改变,对于对象变量来说是其引用不可改变。<span style="text-decoration: underline;">其初始化可以在两个地方,一是其定义出,二是在构造函数中,两者只能选其一。</span></p>
<p> </p>
<p>画线部分有问题,final的变量除了在定义的时候 和 构造函数中初始化外,还有2个地方也可以用来初始化final变量:初始化块 和 静态初始化块,但是具体的是有区别的,准确的应该这样描述:</p>
<p>1。 对于final的非静态变量(非static),可以在其定义时,<strong>初始化块</strong>,或者构造函数等三个地方初始化,三者选其一。</p>
<p>2。 对于final的静态变量(static),可以在其定义时,<strong>静态初始化块</strong>等两个地方初始化,二者选其一。</p>
<p>特别说明,<strong>static的常量不可以在构造函数中初始化。</strong></p>
<p> </p>
<p>
</p>
<p style="margin: 0px;">23)判断一块内存空间是否符合垃圾收集的标准:</p>
<p style="margin: 0px;">              *给对象赋予了空值null,以下在没有调用过。</p>
<p style="margin: 0px;">              *给对象赋予了新值,及重新分配了内存空间</p>

<p style="margin: 0px;"> </p>
<p style="margin: 0px;">感觉你在这里的描述还是有大问题,建议彻底忘掉你的两种判断方法,唯一判断是否符合垃圾收集标准的是:<strong>对象从根进程是否可达。</strong>(软链接的情况暂不和你考虑)</p>
<p> </p>
<p>按你的判断标准,</p>
<p>List&lt;Object&gt; list = new ArrayList&lt;Object&gt;();</p>
<p>Object o = new Object();</p>
<p>list.add(o);</p>
<p>o = null; 或者 o = new Object();</p>
<p> </p>
<p>按你的标准,o所指向的原来的对象就已经符合垃圾收集的标准了。相信你也知道,实际是不符合的,因为这个对象在虚拟机的有向图中是可达。</p>
<p>说白点,还可以通过list.get(0)来获取这个对象的引用。</p>
<p> </p>
<p>另外,从你的描述中感觉你对 对象 的概念不是很理解。</p>
<p>Object o = new Object(); 这句话中,o是一个对象吗?NO。</p>
<p>这句话的含义是,在堆中新建一个对象空间,并把这个对象的引用传递给变量o。变量o本身并不是一个对象。</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>还有一些描述,水平有限,没看懂。不予评论。以上言论也仅供参考,纳百家之言吧。希望新手谨慎对待楼主的这篇文章。</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
7 楼 海豚心语 2010-06-05  
支持一下!
6 楼 AquariusM 2010-06-04  
基础很实在很重要呀!
顶!
5 楼 qiyueguxing 2010-06-04  
woxiaoe 写道
JavaLike 写道
汗,上了首页!

???



???你不明白吗?人家的意思是这样的帖子竟然也能出现在首页!
4 楼 菜菜菜 2010-06-04  
上首页很正常,提醒大家不要忽略基础
3 楼 woxiaoe 2010-06-04  
JavaLike 写道
汗,上了首页!

???
2 楼 JavaLike 2010-06-04  
汗,上了首页!
1 楼 xiaojing3517 2010-06-04  
topic!!!

相关推荐

Global site tag (gtag.js) - Google Analytics