1.java是解释型语言。java虚拟机能实现一次编译多次运行。

2.JDK(java software Development kit 软件开发包),JRE(java Runtime Environment java运行环境)。

3.javac编译java程序,java运行java程序。

4.一个文件最多有一个public class。

5.java中switch语句只能探测int类型值(JDK1.6以前)。

6.在java中一个字节是八位,一个字符占两个字节(16位unicode字符串)。

7.内存中byte占1个字节,int占4个字节,long类型占8个字节;float占4个字节,double占8个字节;boolean类型占1个字节;

8.java不提供运算符的重载。

9.在static方法中不能访问非static的成员。static方法是指在函数前面加上static限定符,如:public static vooid main(String args[]);public static void print();

10.约定俗成的给package取名时把自己公司的域名倒过来,后面再跟上项目名。如:cn.edu.jxau.Game24。

11.默认的访问权限是default.

12.接口和接口之间可以继承,类和类之间可以继承,但是类和接口之间只能通过类来实现接口。一个类只能继承一个父类,但可以实现多个接口。

13.数组

一维数组的形式:

(1),  int a[]; a = new int[5];  等同于 int a[] = new int[5];
(2),  int[] a; a = new int[5];  等同于  int[] a = new int[5];
二维数组的形式:

int a[][] = {{1,2}, {3,4,5,6}, {7,8,9}};二维数组可看成以数组为元素的数组。
   java中多维数组的声明和初始化应按从高维到低维的顺序进行,如:
方法(1)
  int a[][] = new int[3][];

      a[0] = new int[2];

      a[1] = new int[4];

      a[2] = new int[3];//正确

     int t[][] = new int[][4];//非法

方法(2);
   int a[][] = new int[3][5];//正确,分配一个三行五列的二维数组。

学习C和C++的很容易出错

14.增强的for循环
   优点:增强的for循环对于遍历array和collection的时候相当的简便。例如:

import java.util.*;

public class EnhancedFor {

public static void main(String args[]) {

int arr[] = {1,2,3,4,5};

for(int i:arr) {

System.out.println(i);

}

Collection c = new ArrayList();

c.add(new String("sss") );

c.add(new String("aaa") );

c.add(new String("bbb") );

for(Object o:c)

System.out.println(o);

}

}

缺点:数组,不能方便地访问下标值;

总结:除了简单遍历并读取其中的内容外,不建议使用增强的for循环。

15.泛型
   JKD1.4以前类型不明确:
   装入集合的类型都被当作Object对待,从而失去自己的实际类型;从集合中取出时往往需要转型,效率低,容易产生错误。
   解决办法:
   在定义集合的时候同时定义集合的类型;
   可以在的定义Collection的时候指定;
   也可以在循环时用Iterator指定。
   好处:
   增强程序的可读性和稳定性。

16.线程的基本概念:
(1),线程是一个程序内部的顺序控制流。
(2),线程和进程的区别:
  每个进程都有独立的代码和数据空间(进程上下文),进程间切换会有较大的开销;
  线程可以看成时轻量级的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计时器(pc),线程切换的开销小;
多进程:在操作系统中能同时运行多个任务(程序);
多线程:在同一个应用程序中有多个顺序流同时执行;

17.线程的实现

Java的线程通过java.lang.Thread类来实现。VM启动时会有一个由主方法(public static void main(){} )所定义的线程。可以通过创建Thread的实例来创建新的线程。每一个线程都通过特定的Thread对象的方法run()来完成其操作的,方法run()为线程体。通过调用Thread类的start()方法来启动一个线程。

18.能使用接口的时候不要从Thread类继承,因为用接口不仅可以实现接口的方法,而且还可以继承其他的类。

19.Sleep方法:Thread的静态方法(public static void sleep (long millis) throws InterruptedException) 使得当前线程休眠(暂时停止执行millis毫秒);
  Join方法:合并某个线程;
  Yield方法:让出CPU,给其他线程执行的机会。

20.synchronized (this) :锁定当前对象,在执行当前这个对象时不应许其他线程打断插入。使用的方式有:
(1),

class Timer {

private static int num = 0;

public synchronized void add(String name) {

//执行这个方法的过程中锁定当前对象。

num ++;

try {

Thread.sleep(1);

catch( InterruptedException e) {

return;

}

System.out.println(name + ",你是第" + num +"使用Timer的线程。");

}

}

(2),

class Timer {

private static int num = 0;

public  void add(String name) {

synchronized(this) {  //锁定大括号这个区域的代码段

num ++;

try {

Thread.sleep(1);

catch( InterruptedException e) {

return;

}

System.out.println(name + ",你是第" + num +"使用Timer的线程。");

}

21.wait();使用wait()的前提是用synchronized锁住该方法。notify的作用是叫醒其它线程,notifyAll的作用是叫醒其它多个线程。

22.wait方法和sleep方法的区别:
(1),wait方法是Object类的方法,sleep方法是Thread类的方法。
(2),wait时,别的线程可以访问锁定的对象;调用wait方法时必须锁定该对象。
(3),sleep时,别的线程不可以访问锁定对象。

Java Notes的更多相关文章

  1. Java Notes 00 - Singleton Pattern(单例总结)

    转:http://hukai.me/java-notes-singleton-pattern/ 这里不赘述单例模式的概念了,直接演示几种不同的实现方式. 0)Eager initialization ...

  2. 实例说明Java中的null

    翻译人员: 铁锚 翻译时间: 2013年11月11日 原文链接: What exactly is null in Java? 让我们先来看下面的语句: String x = null; 1. 这个语句 ...

  3. 编写高质量代码改善java程序的151个建议——[1-3]基础?亦是基础

    原创地址:   http://www.cnblogs.com/Alandre/  (泥沙砖瓦浆木匠),需要转载的,保留下! Thanks The reasonable man adapts himse ...

  4. 实例说明Java中的null(转)

    让我们先来看下面的语句: String x = null; 1. 这个语句到底做了些什么?  让我们回顾一下什么是变量,什么是变量值.一个常见的比喻是 变量相当于一个盒子.如同可以使用盒子来储存物品一 ...

  5. Java课堂笔记(三):抽象类和接口

    在面向对象一文中,我们说了多态的一个功能是将“做什么”和“怎么做”分离开来,所采用的方法是将不同的具体实现放在不同的子类中,然后向接口中传入一个父类对象的引用.而本篇博客要说的内容则为接口(此处&qu ...

  6. Java随谈(六)## 我们真的理解 Java 里的整型吗?

    我们真的理解 Java 里的整型吗 整型是我们日常生活中最常用到的基础数据类型,看这篇文章之前,我想问: 我们真的像自己认为的那么理解 Java 内的整型吗? 也许看完本篇文章你就有自己的答案. C ...

  7. CM12.1/13.0编译教程

    环境搭建 1.安装64位Ubuntu系统(实体安装.虚拟机安装均可) 注意:要求机器至少4G内存(虚拟机至少分配4G内存),硬盘至少100G空间(源码20G+,编译后整个目录约60~70G) 安装方法 ...

  8. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  9. A Java back-end engineer's study notes

    loveincode's notes 学习工作中的一些记录,收藏. 人气很高的链接库 计算机基础相关笔记 操作系统 , 编译原理 , 计算机网络 , 互联网协议... 常用数据结构与算法 Java 实 ...

随机推荐

  1. 勿在浮沙筑高台-- 关于IT技术学习的一点反思

    常常看到前辈们大牛们感慨, 感慨我们这一代人生活在最好的时代, 拥有海量的学习资源以及指数增长的新技术与新知识. 的确, 如果你是这个时代的大学生,或是初出茅庐的程序员, 你会发现有太多太多的选择,  ...

  2. template_12特化与重载

    1,重载函数模板f<int*>((int*)pi);//1f<int>((int*)pi);//2上面用int*替换第一个模板的T,用int来替换第二个模板的T.那么将得到两个 ...

  3. zedboard 中SDK 修改串口设置(波特率。。。。)

    其实在zedboard   SDK中不用初始化串口的也就是platform()可以不写 ,初始化在EDK导入SDK中就写好了  具体看bsp文件夹下面的汇编.但是如果我们想要在SDK中改变串口设置的话 ...

  4. float闭合(清除浮动)和CSS HACK

    一.float 闭合(清除浮动) 将以下代码加入Global CSS 中,给需要闭合的div加上 class="clearfix" 即可,屡试不爽. <style>.c ...

  5. ios 录音

    http://code4app.com/ios/%E5%BD%95%E9%9F%B3%E5%92%8C%E6%92%AD%E6%94%BE/51ba821b6803fa6901000000

  6. 通过百度地图API定位--第三方开源--百度地图(一)

    1.把百度地图定位API(下载地址:http://lbsyun.baidu.com/sdk/download?selected=location)里面的libs复制到自己的项目libs里面 2.进行相 ...

  7. Repeat Header / Keep Header Visible in Tables in RS 2008

    You selected "Repeat header rows on each page" or "Keep header rows visible while scr ...

  8. hibernate4 使用及 新特性

    hibernate4.x已经在官网出现一段时间了.下载地址: http://hibernate.org/orm/downloads/ 使用hibernate4所需要的jar包 在lib\require ...

  9. C# 访问控制:public、private、protected和internal

    平日工作时最常用的访问控制符是public和private,当看到prism里面大量使用protected的时候,觉得还是不太理解为啥. 所以就静下心来查找并理解了一下,这里记录下,以便回顾和交流. ...

  10. WPF学习笔记 控件篇 属性整理【1】FrameworkElement

    最近在做WPF方面的内容,由于好多属性不太了解,经常想当然的设置,经常出现自己未意料的问题,所以感觉得梳理下. ps:先补下常用控件的类结构,免得乱了 .NET Framework 4.5 Using ...