JAVA学习总结
来源:互联网 发布:淘宝外卖会员卡好用吗 编辑:程序博客网 时间:2024/05/18 03:14
Java虚拟机(Java virtual machine,JVM)
是运行Java程序必不可少的机制。编译后的Java程序指令并不直接在硬件系统的CPU上执行,
而是由JVM执行。
JVM是编译后的Java 程序和硬件系统之间的接口,程序员可以把JVM看作一个虚拟的处理器。
它不仅解释执行编译后的Java指令,而且还进行安全检查。它是Java程序能在多平台间进行
无缝移植的可靠保证,同时也是Java程序的安全检验引擎
Java解释器经过优化,字节码的执行速度已有很大提高
在字节码执行之前先经过JIT编译器进行编译,生成针对具体平台的本机执行代码。执行效率可
比解释执行的效率大幅度提高。并仍不失跨平台的特点
小程序:
public class Hello
{
public static void main(String[]args)
{
System.out.println ("hello world!");
}
}
标识符是以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符号,数字。
整数类型
byte
1字节
-27~27-1
short
2字节
-215~215-1
int
4字节
-231~231-1
long
8字节
-263~263-1
浮点型
float
4字节
double
8字节
什么是oop?
在oop中,把事物称为对象,把属性称为属性。Oop是面向对象的程序设计,采用:封装,继承和多态三大技术。封装是指将数据及对数据的操作捆绑在一起为类;继承是指将一个已有的类中的数据和方法保留,并加上自己特殊的数据和方法从而构成新类;多态性是指在一个类或多个类中,可以让多个方法使用同一个名字。
访问控制
私有的——以private修饰符指定;
保护的——以protected修饰符指定;
公开的——以public修饰符指定;
默认的,也称为default或package——不使用任何修饰符指定
关键词this
用来指向对象自身
用来访问当前对象的数据成员;
用来访问当前对象的成员方法;
重载构造方法时,用来引用同类的其他构造方法。
This 和super
This指代本类,super指代父类。
Static即可以修饰数据成员又可以修饰成员方法,表明所说明的对象时静态的。静态的成员与类相对应,它可被类的所有对象共享,定义了类之后即已存在。
Final
用final修饰的类不能再派生,它已经达到类层中的最底层
Abstract
用abstract可以修饰抽象类。抽象方法只需要给出原型说明,方法体是空的,抽象类一定要派生子类。
自动初始化和null引用
当执行new为一个对象分配内存时java自动初始化所分配的内存空间,对于数值型变量赋值为0,对于布尔型初值为false,对于引用即对象类型的任何变量,使用一个特殊的值null
运算符
数学函数
- Math.sin(0) //返回0.0,这是double类型的值
- Math.cos(0) //返回1.0
- Math.tan(0.5) //返回0.5463024898437905
- Math.round(6.6) //返回7
- Math.round(6.3) //返回6
- Math.ceil(9.2) //返回10 .0
- Math.ceil(-9.8) //返回-9 .0
- Math.floor(9.2) //返回9 .0
- Math.floor(-9.8) //返回-10 .0
- Math.sqrt(144) //返回12.0
- Math.pow(5,2) //返回25.0
- Math.exp(2) //返回7.38905609893065
- Math.log(7.38905609893065) //返回2.0
- Math.max(560, 289) //返回560
- Math.min(560, 289) //返回289
- Math.random() //返回0.0到1.0之间双精度的一个随机数值
循环语句
switch后面整型表达式的类型只能为:byte、short、char、int;
case后面的语句可以有break,也可以没有break;
case后面只能跟常量表达式;
多个case以及default之间没有顺序的要求;
default为可选项。
break label 不仅能够跳出本层循环,还能够跳出多层循环,而标签label可以指出要跳出的那层循环。
continue语句能够结束本次循环,进行当前所在层的下一次循环。
For循环
数组
静态数组和动态数组
静态数组在定义数组时同时对数组元素初始化
动态数组使用new为数组分配空间。
A=new char[20],.
数组边界
下标从0开始。length。
多维数组初始化
静态和动态
Vector类的构造方法
元素添加addElemnt(Object obj);insertElementAt(Object obj,int index);
元素删除;setElementAt(object obj,int index)
removerElement(object obj)
removeElementAt(int index)
字符串处理:
Length()
Substring(int beginIndex);
连接
String类使用concatenate(string str)
stringBuffer类使用append();
比较
Equals()
Boolean a=s1.equals(s2);
重载方法名
Extends关键字
Public class A extends B{}
虽然一个子类可以从父类继承所有的方法和成员变量,但是不能继承构造方法。只有两种方法可让一个类得到一个构造方法:一种是自己编写一个构造方法;另一个是因为用户没有写构造方法所以系统为类提供一个默认的构造方法。子类不能直接存取其父类中的私有属性及方法,但是可以使用公有方法进行存取。
父类构造方法调用
接口
[接口修饰符] interface 接口名称 [extends 父类名]{}
异常机制的关键步骤
try {…}
定义可能产生异常的代码段
catch (Etype e) {…}
用于捕获一个异常
finally {…}
用于做统一的事后处理,如释放资源
throw e;
用于抛出一个异常
throws Etype1, Etype2 ……
用于声明方法可能抛出的异常类型
公共异常
ArithmeticException
NullPointer Exception
IOException
………..
异常抛出
Throws
第七章
Jframe
内容窗格
面板
Flowlayout布局管理器
Broderlayout布局管理器
Gridlayout布局管理器
事件处理模型
事件类型接口:
Mousemotion
Mouse button
Action
Item
Window
第八章
JButton
组合框
文本域
菜单栏
菜单
菜单项
第十章
文件数据流
文件的处理
第十一章
线程的状态
- 线程一共有四种状态:新建(new)、可运行状态(runnable)、死亡(dead)及堵塞(blocked)
参照课本279页图11—3
创建线程
- 创建线程的方法一——继承Thread类
- 定义一个线程类,它继承类Thread并重写其中的方法run()。在初始化这个类的实例时,目标对象target可以为null,表示这个实例本身具有线程体
- 创建线程的方法二——实现Runnable接口
- Runnable是Java中用以实现线程的接口,从根本上讲,任何实现线程功能的类都必须实现该接口
线程的启动
- 通过Thread类中方法start()来启动
- start()
- 启动线程对象;
- run()
- 用来定义线程对象被调度之后所执行的操作,用户必须重写run()方法;
- yield()
- 强制终止线程的执行;
- isAlive()
- 测试当前线程是否在活动;
- sleep(int millsecond)
- 使线程休眠一段时间,时间长短由参数所决定;
- void Wait()
- 使线程处于等待状态;
线程的基本控制
- 结束线程
- 当一个线程从run()方法的结尾处返回时,它自动消亡并不能再被运行,可以将其理解为自然死亡
- 利用stop()方法强制停止,可以将其理解为强迫死亡,这种方法必须用于Thread类的特定实例中
挂起线程
- 暂停一个线程称为挂起。在挂起之后,必须重新唤醒线程进入运行
- 挂起线程的方法
- sleep()
线程不是休眠期满后就立刻被唤醒,因为此时其他线程能正在执行,重新调度只在以下几种情况下才会发生:
1) 被唤醒的线程具有更高的优先级;
2) 正在执行的线程因为其他原因被阻塞;
3) 程序处于支持时间片的系统中
- suspend()和resume()
- join() :引起现行线程等待,直至方法join所调用的线程结束
- java框架学习总结
- java学习一路总结
- java线程学习总结
- JAVA SWING学习总结
- Java学习总结
- java学习总结
- Java Web学习总结
- java学习总结-序
- java多线程学习总结
- java多线程学习总结
- java学习总结篇
- 学习java总结
- java web 学习总结
- Java 语言学习总结
- 学习JAVA问题总结
- java线程学习总结
- java 高新技术学习总结
- java Date学习总结
- android网络编程
- 用g++编译生成动态连接库*.so的方法及连接
- android自动化测试工具【UiAutomator】——打开settings实例
- cocos2d-x常用开发工具
- android xml解析 XmlPullParser的使用
- JAVA学习总结
- 【python】-file/dir
- 利用keepalived构建高可用MySQL-HA
- 初识jdbc
- java继承和组合的讨论
- FireBreath开发跨浏览器插件
- java.io.File中的pathSeparator与separator的区别
- android JB surfaceflinger重点
- c# 多线程 调用带参数函数