1, Java是一种静态类型、动态绑定的语言。具体来说,每一个对象都是编译时确定的良好类型。同时,可以在运行时检查一个对象究竟是什么。

2, Java中除了基本数字类型之外,Java中所有的对象都是通过引用来访问。

3, 跟C++相同,不同的类实例的数据是不同的,但是方法都是相同的。

4,所有实例变量均被设置为默认值0、false或者NULL。如果使用尚未初始化的对象,将会导致一个运行时错误。

5,命令行运行java/javac时,需要在项目classpath。何为项目classpath,如果代码中没有package语句,则classpath为当前目录。如果有package语句,则根目录为根据package上移目录。如果通过java -d指定了别的output目录,则运行java class的时候也需要指定classpath到对应目录。

  比如javac self\equal.java, java self.equal

6, jar -cvf abc.jar abc 将abc目录里的内容打包为abc.jar

     -xvf abc.jar 将abc.jar的内容解压  

     -tvf abc.jar 查看abc.jar的内容  

     -cvmf mypairvalue.mf abc.jar abc 将abc的内容打包,同时设置mypairvalue中的属性。可以指定Main-Class 为abc.classname,jar包就可以通过java -jar abc.jar      运行

7,   一场包括受查异常(throw声明的)和非受查异常(RuntimeException和Error的子类),可以通过printStackTrace看到异常的栈轨迹

8,   Java的构造函数不能用abstract, synchronized, final修饰

9,   显示的调用System.gc()方法可以提示垃圾回收器进行一次清扫。在一个对象被垃圾回收器删除之前,其finalize方法会被调用

10,  接口取代了在C++中使用的多重继承

11,  可以用this在构造函数入口处调用另一个构造函数,也可以通过super在构造函数入口处调用基类的构造函数。因为默认情况下基类的默认构造函数会被隐式调用,super的调用仅用来调用基类带参数的构造函数。

12,  Java的interface中函数默认为public,abstract的,implements该interface的类必须实现所有的函数,否则必须为abstract

13,  可以在任何大括号间声明一个类.

p190, 内部类的一个重要用途是建立适配器类。适配器类的作用是绑定至一个类,同时不破坏其封装性。方法的内部类引用的任何方法的局部变量都必须为final,因为在一次方法的调用中,所建立的所有的内部类实例必须看到相同的局部变量。

p199,   ==检查同一性,只有指向同一个对象时才相等,equals检查相等性,值相等,就相等。自定义的类可以覆盖equal函数(还有toString)

p201, 对象可以使用Object的clone方法建立自己的副本(浅拷贝),前提是要实现java.lang.Cloneable接口。clone是保护方法,可以通过重定义来声明为public

    Sheep one = new Sheep();

    Sheep another = (Sheep)one.clone();

    如果要实现深拷贝,必须在clone函数中,手动拷贝每一个变量

p204, 通过实例的getclass方法,或者类的.class方法都可以得到一个特定类的引用(Class对象)。通过这个实例,可以调用getName或者newInstance方法创建实例,注意返回的是Object,需要强制转化为对应类型。

   还可以通过forName查找一个特定类的的引用 Class sneakersClass = Class.forName("Sneakers");

p212, 创建对象除了可以通过classname.newInstance(),也可以先Date.class.getConstructor,再调用构造函数的newInstance

p214, 反射使我们能够在运行时完成编译时能完成的任何工作。

p221,  为什么要使用泛型,直接用Object类不行么?

p258,  Runnable的run方法必须没有任何参数,也没有任何返回值。

p261, 实现Runnable接口比继承Thread类更好,因为后者需要提供Thread类所有的公共API

p262, 启动一个线程

        new Thread(){
public void run(){System.out.println("Hello World!");}
}.start()

p263,stop、suspend和resume都已经废弃不再使用,因为这个方法以一种不合作的方式得到线程的控制,容易导致意想不到的结果,如死锁。应使用interrupt()

p264,调用join()方法将导致调用者阻塞,知道目标线程完成为止;

p265, 可以通过setDeamon来设置后台运行,后台运行的程序当所有程序结束时也会被系统自动结束

P273,notify()会唤醒等待中的一个线程,如果多个线程在等待,java会按任意条件选择其中的一个

p278, 如果我们希望不同的线程使用不同的值,则需要使用ThreadLocal

p279, 优先级高的线程会抢占低优先级的线程的执行。相同的线程会一直执行当前线程,直至:

    1,调用Thread.sleep()或者wait()

    2,等带锁,运行一个同步方法

    3,在I/O中被阻塞

    4,通过yield调用交出控制权

    5, 完成或者调用stop()

p284, 线程组主要是为了识别和控制某一项任务的所有线程,如限制其行为。线程组可以在创建线程的时候传递给构造函数

Java学习指南学习笔记的更多相关文章

  1. shell学习指南-阅读笔记

    shell学习指南真不是刚开始学习shell应该看得书,虽然其中讲了简单的linux命令,shell语法等,但是每章也有些深入和生僻地方,我想如果我刚学shell看到这样的地方一定会头疼的要死.或许也 ...

  2. 《Servlet和jsp学习指南》 笔记1

    chapter 1 Servlet 4个java 包: 对于每一个http请求,Servlet请求都会创建一个ServletRequest实例,并将它传给Servlet的service方法.Servl ...

  3. 《Servlet和jsp学习指南》 笔记2

    chapter 13 请求和响应的装饰 初步了解Decorator模式: 在不修改一个对象的类的源码的情况下,装饰这个对象的行为. chapter 14 异步处理 异步Servlet和Filter,只 ...

  4. shell脚本学习指南-学习(2)

    1.I/O重定向符:<   >  >与管道   | #! /bin/bash echo -n "Enter your name!" //输出 printf &qu ...

  5. shell脚本学习指南-学习(1)

    1.先看下面这个命令: $who  | wc  -l  计算当前登陆的用户个数: $who   当前登陆的有哪些用户: pipeling(   |  )可以在两个程序之间建立管道,左侧的结果成为右侧的 ...

  6. Hadoop权威指南学习笔记二

    MapReduce简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考,有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.n ...

  7. Hadoop权威指南学习笔记三

    HDFS简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考.有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my ...

  8. JavaScript 权威指南-学习笔记(一)

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! ## JavaScript 权威指南-学 ...

  9. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

随机推荐

  1. Thinking in UML-2-建模基础

    建模的问题可以分为两个: 怎么建 模是什么 怎么建:角度不同决定了建模方向不同.所以首先要决定抽象的角度即建立这个模型的目的是什么. 模是什么:人+事+物+规则 我们这样来建立模型: 问题领域 = n ...

  2. 处理SecureCRT中使用vim出现中文乱码问题

    处理SecureCRT中使用vim出现中文乱码问题 引用原文:http://blog.chinaunix.net/uid-20639775-id-3475608.html因为cat没有问题,定位是vi ...

  3. php strrpos()与strripos()函数不同之处在哪里呢

    strripos() 函数 定义和用法strripos() 函数查找字符串在另一个字符串中最后一次出现的位置.如果成功,则返回位置,否则返回 false.语法strrpos(string,find,s ...

  4. WPF:基础知识

    WPF:1.数据驱动 2.UI定义与运行逻辑分离 一. 1.编译 /t:exe 命令行程序:/t:winexe 图形用户界面程序:/t:library 动态链接库 2.启动 1)编译后生成的App.g ...

  5. asp.net 之 数据库导入treeview

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  6. 【jQuery】window.onload 和 $(document).ready() 的区别

    ... 在Stack Overflow上看到了这个问题,自己翻译了过来. The onload event is a standard event in the DOM, while the read ...

  7. javascript 面向对象(转)

    1.使用[]调用对象的属性和方法 function User() { this.age = 21; this.sex = "男?"; } var user = new User() ...

  8. lambda的使用ret = filter(lambda x : x > 22 ,[11,22,33,44])

    #!/usr/bin/env python #def f1(x) : # return x > 22 ret = filter(lambda x : x > 22 ,[11,22,33,4 ...

  9. Giving Data Backup Option in Oracle Forms 6i

    Suppose you want to give the data backup option in Oracle Forms application to some client users, wh ...

  10. HTML 方法

    姓名输入框:<input type="text" value="默认有值"/> 密码输入框:<input type="text&qu ...