java基础知识点概括

第一、java编译运行过程

* *程序员所编写的是以.java为后缀的文件。此文件操作系统不能正确识别,因此要通过编译生成所谓的字节码文件(.class)

而字节码文件需要jvm来提供运行环境的支持。

**jvm是一个安装在操作系统上的软件,为字节码提高运行环境。

第二、java语言基础

(一)基本语法

(1)书写格式

java程序中一句连续的字符串不能分开在两行中书写。

错误示范:System.out.printf("hello,

world!");

正确示范:

System.out.printf("hello,”+

“world!");

(2)注释

单行注释   //

多行注释   /*hiuzhdisafy*/

文档注释   /**文档注释是对代码的解释说明,可以使用javadoc
命令将文档注释提取出来生成帮助文档。*/

注意:多行注释/* .......  */可以嵌套//但是不能嵌套/*......*/

(3)标识符

标识符必须以字符,下划线_或美元符号$开头。标识符不能含有运算符,如+,-等。标志符不能有关键字如class等。

标识符不能是true,false,null等。标识符区分大小写。

(4)关键字

(5)java中 的常量

*整型常量

*浮点型常量

分为float和double。floa类型必须以f或F结尾,如45.45f

一般默认为double型浮点数

*字符常量    用 'a' 表示

*字符串常量     用“xxxxx”表示

*布尔常量  true,false

*null常量  null表示对象的引用为空

(二)java中的变量

(1)变量数据类型

*图中数字表示每种变量类型所占用的字节空间

*char类型可以赋值为0~65535范围内的整数

(2)变量的类型转换

**自动类型转换

两种数据类型彼此兼容,必须是  大的=小的(目标类型的取值范围大于原类型)

**强制类型转换

容易造成数据精度的丢失

**表达式类型自动提升

(3)作用域

局部变量,全局变量

(4)final变量

final修饰的变量必须初始化且初始化后的值不可改变

(三)java中的运算符

**算数运算符

(-5)%3=-2    5%(-3)=2    

**赋值运算符

可以写成    int  x,y,z; x=y=z=5;

但是不能写成  int x=y=z=5;

**比较运算符  

结果是true或者false

**逻辑运算符

运算结果:&和&&相同。|和| |相同。

区别为:使用&&时左边若为false表达式停止运算。| |同理

**位运算符

&与,|或,~取反,^异或,<<左移   >>右移   >>>无符号右移(减半)

第三、类与对象

(一)类的修饰符

public :该类可被任意包中的类调用

默认:只能被同一个程序包的其他类调用

abstract:抽象类没有具体的实现功能

final :最终类,不能被任何类继承

**java程序中最多只有一个public类(也可以没有)

java中若没有public类,文件名必须和包含main方法的类名相同

*用javac编译.java文件的时候 ,它会给每一个类生成一个.class文件。

(二)成员变量

**public 、protected、private为可访问性修饰符。

**static说明它是静态变量

**final说明为常量使用

**成员变量的数据类型可以是java中任意的数据类型,包括简单类型,类,接口,数组。

(三)成员方法声明

**参数的类型可以是简单数据类型,也可以是引用数据类型(数组、类或接口)

**局部变量的作用域只在该方法的内部

**一个方法必须声明其返回值,如果没有返回值就必须声明其返回类型为void

**当方法声明的返回类型是一个类是,返回对象return必须是相同的类或者它的子类

**当方法声明的返回类型是一个类是,返回对象return必须实现这个接口

**访问控制权限

(四)对象的创建与使用

**创建对象后可通过对象的引用来访问其成员(方法和变量)

**若创建时成员变量数据类型没有初始值,系统会赋予默认值

**当对象被实例化后,在程序中可以通过对象的引用变量来访问该对象成员。如果没有任何变量引用就会当成垃圾对象

**

第八、多线程

(一)线程的创建

1.

*继承Thread类,重写Thread类中的public void run( )方法。

*调用start( )方法

2

*编写一个类实现Runnable接口中的run方法。

*通过Thread th=new Thread(上述类的实例) 来创建一个线程

*调用start( )方法

3

*可通过Thread类中的currentThread( )方法来获取当前线程对象

具体代码实现:

(二)线程的休眠

*Thread.sleep(10);

(三) 保证用于处理共享资源的代码只能有一个线程访问

1.

将处理共享资源的代码放在一个代码块中,

2

用synchronizeed关键字修饰,称为同步代码块。

3.

同步方法只允许一个线程访问,其他访问的线程都会发生组塞

我认为第二种同步方法更简便

(四)死锁问题

指多个线程在运行过程中因争夺资源而造成的一种僵局。当进程出于这种僵持状态时,若无外力作用,它们都将无法再向前推进

(五)线程的生命周期及状态转换

1.

*新建

*就绪,调用start()方法后进入

*运行 获得了CPU的使用权后开始执行run()方法中的线程体。

*阻塞,只有引起阻塞的原因消除后才能进入就绪状态

*死亡 线程的run方法执行完毕,后者线程抛出异常

(六)线程的调度

1  线程的优先级

*用Thread类中的静态常量表示

*用1~10的数字表示,数字越大优先级越高

 

2  线程让步

*调用 yield()方法,将线程转换为就绪状态

*注意:只有与当前线程优先级相同或者更高的线程才有获得执行的机会

3 线程插队

* 调用join()方法实现这一功能

*注意:在某个线程中调用其他线程的join方法时,调用的线程将被阻塞直到join方法加入的线程执行完它才会出于就绪状态

第九、IO流

1 分类

*操作数据不同:字节流、字符流      数据传输方向不同: 输入流、输出流

第十、GUI

猜你喜欢

转载自blog.csdn.net/intelligentgirl/article/details/84591597