一、Java程序概述
1、特性
简单性、高性能、编译性、解释性、分布式处理、健壮性、安全性、面向对象、
开源、跨平台
2、
3、JDK、JRE、JVM
JDK:Java开发工具包
包含:JAVA开发工具(jdk\bin)
基础开发库(jdk\jre\lib\rt.jar)
基础开发库的源码(jdk\src.zip)
Java SE 开发工具包的
javac命令负责编译应用程序
java:java解释器,用于执行Java应用程序
JRE:
Java运行时环境
JVM:
负责加载.class并运行.class文件
4、
二、变量、数据类型和运算符 1、标识符:由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符
不能以数字开头 2、变量 变量名必须是一个有效的标识符 变量名不可以使用java关键字 变量名不能重复 3、数据类型 3.1 基本数据类型 类型转换:小到大,直接转 大到小,强制转 浮变整,小数没
低 ------------------------------------> 高
byte,short,char→ int→ long→float→double
3.2 引用数据类型 :类、接口、数组 4、运算符- 计算结果的数据类型,与最大数据类型一致
-
byte,short,char三种比int小的整数,运算时会先自动转换成int
- 1、switch 语句中的变量类型可以是: byte、short、int 、char、String(jdk1.5以后支持)
- 2、switch 语句可以拥有多个 case 语句
- 3、每个 case 后面跟一个要比较的值和冒号,且此值的数据类型必须与变量的数据类型一致
- 4、当变量值与 case 语句值相等时,开始执行此case 语句的内容,执行完会判断此行代码是否有break,如果有,结束执行,如果没有,会继续向后执行穿透所有case,包括default
- 5、switch 语句可以包含一个 default 分支,该分支一般是写在switch 语句的最后
- 6、如果在default之前的case有break,则default不会执行
先执行,再判断,循环体代码保证最少执行一次
package liucheng; //1.编写程序,读入整数并判断读入的正数和负数个数, //输入为0时结束程序。 import java.util.Scanner; public class Liucheng01 { public static void main(String[] args) { /*int num,zsum=0,fsum=0; System.out.println("please input some numbers:"); Scanner sc=new Scanner(System.in); do{ num=sc.nextInt(); if(num>0) zsum++; else if (num<0) fsum++; }while(num!=0); System.out.println(zsum); System.out.println(fsum); */ int num,zsum=0,fsum=0; System.out.println("please input some numbers:"); Scanner sc=new Scanner(System.in); while((num=sc.nextInt())!=0){ if(num>0) zsum++; else if (num<0) fsum++; } System.out.println(zsum); System.out.println(fsum); } } 6)三中循环区别- for:知道循环次数
- while/do while:当循环次数不确定时
- while:先判断,不符合规则,不执行代码
- do while:代码最少被执行一次,再去判断,符合规则,再次执行代码
- 动态初始化
- int[] a=new int[5];
- 静态初始化
- int[] b = new int[]{1,2,3,4,5};
- int[] c = {1,2,3,4,5};
- 用来描述现实事物的,是一类事物的模板。
- Java语言最基本单位就是类 ,类似于类型。
- 类里有 属性和行为( 方法)
- 对象是类的一个 实例,是一类事物的具体体现。
- 对象是具体存在的,具备该类事物的属性和行为。
- 一般来讲局部变量存在栈中,方法执行完毕内存就被释放
- 对象(new出来的东西)存在堆中,对象不再被使用时,内存才会被释放
- 每个堆内存的元素都有地址值
- 对象中的属性都是有默认值的
- this代表类的当前对象
- 利用“this.”可以调用当前对象的成员
- this可以实现构造方法的调用
- 利用this()可以调用构造方法 必须写在构造方法的第一条
- 静态属性用static修饰的属性,称为类属性(不是类的属性) 用于描述一个类下所有对象共享的属性 比如:员工的最低工资,学生的学校名称等等 可通 过类名直接调用,也可通过对象调用
- 静态方法用static修饰的方法,叫类方法 静态方法中不能访问非静态成员(属性和方法) 如果一个方法中没有访问非静态成员,则这个方法可以声明成静态的。
- 使用在类外,静态属性和静态方法可以通过类名直接调用,也可以通过对象名调用。 在类外,非静态属性和非静态方法只能通过对象名调用。
- Java是 单重继承的
- 面向对象中在已有类的基础上扩展出新类的方式称为继承
- 父子类在一个包中,子类可以继承父类中的非私有属性和方法;父子类不在一个包中,子类可以继承 public 类中的public 属性和 protected 属性
- 可以通过这个关键字使用父类的内容,Super代表的是父类的一个引用对象
- 注意:在构造方法里,出现的调用位置必须是第一行
- 子类对象可以当作父类对象使用
- 父类对象不能当作子类对象使用
- 用 instanceof 操作符测试一个对象是否是一个类的实例
- 参数列表不同包括:参数数目不同,参数出现顺序不同,参数的类型不同.
- 静态绑定
- 子类与父类之间 方法头相同 方法体不同
- 动态绑定
- 修饰类:不能被继承
- 修饰方法:不能被覆盖
- 修饰属性:不能重新赋值
- 修饰常量:不能重新赋值
- 抽象类:用abstract修饰的类。
- 只能用于继承,不能用于创建对象
- 抽象方法:用abstract修饰的方法只有方法头没有方法体。
- Java中的接口可以多重继承、接口只能继承接口,不能继承类
- 接口定义与类定义相似,但只能包含 静态常量和抽象方法。
- 一种用于描述类对外提供功能规范的、能够多重继承的、特殊的抽象类。
- 通过interface关键字来定义接口
- 通过implements让子类来实现接口
- 接口不能实例化, 但是接口对象可以指向它的实现类对象。 List Set Map都是接口使用时先实现List <String> list = new ArrayList <>();
- 接口的所有成员方法都具有( public, abstract )修饰的特性
- 迭代器Iterator
- 增强for型循环
- JDK 中与输入输出相关的包和类都集中存放在 java.io 包中。
- Java IO最重要的 5 个 类: File 、 InputStream 、 OutputStream 、 Reader 和 Writer 。
- 按 Java 的命名惯例,凡是以 InputStream 结尾的类型为字节输入流,以 OutputStream 结尾的类型为字节输出流。凡是以 Reader 结尾的类均为字符输入流,以 Writer 结尾的类均为字符输出流。
- File 类是对文件和文件夹的一种抽象表示(引用或指针)。
- DataInputStream 类直接从底层输入流读取 Java 的八种基本类型数据, DataOutputStream 类能够将 Java 基本类型数据写出到一个底层输出流。
- Java 通过 ObjectOutputStream 类实现对象的序列化,通过 ObjectInputStream 类实现对象的反序列化。
- 只有实现 Java.io. Serializable 接口的类的对象才能被序列化和反序列化。用关键字 transient 修饰的对象变量将不会序列化。
- POI 是 Apache 软件基金会的开放源码程序库,它提供通过 Java 语言对 Microsoft Office 文件进行读写的 API ,支持 Office97-2008 文档格式。
- DriverManager :依据数据库的不同,管理JDBC驱动
- Connection :负责连接数据库并担任传送数据的任务
- Statement :由 Connection 产生、负责执行SQL语句
- ResultSet:负责保存Statement执行后所产生的查询结果
- awt组件(java.awt包中)
- swing组件(javax.swing包中)
- 容器类:如JFrame、JPanel和JApplet等,用来包含其他组件。
- 组件类:如JButton、JTextField、JTextArea、JComboBox、JList、JRadioButton、JMenu等,都是JComponent类的子类。
- 辅助类:如Color、Font、FontMetrics、Dimension和LayoutManager等,是组件和容器用于绘制和放置对象的。
-
Thread类的特性
- 每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常把run()方法的主体称为线程体
- 通过该Thread对象的start()方法来调用这个线程
- void start(): 启动线程,并执行对象的run()方法
- run(): 线程在被调度时执行的操作
- String getName(): 返回线程的名称
- void setName(String name):设置该线程名称
- static currentThread(): 返回当前线程
- static void yield():线程让步。暂停当前正在执行的线程,把执行机会让给优先级相同或更高的线程,若队列中没有同优先级的线程,忽略此方法
- join() :当某个程序执行流中调用其他线程的 join() 方法时,调用线程将被阻塞,直到 join() 方法加入的 join 线程执行完为止 、 低优先级的线程也可以获得执行
- static void sleep(long millis):(指定时间:毫秒) 令当前活动线程在指定时间段内放弃对CPU控制,使其他线程有机会被执行,时间到后重排队。 抛出InterruptedException异常
- stop(): 强制线程生命期结束
- boolean isAlive():返回boolean,判断线程是否还活着
更多推荐
Java期末复习知识点总结
发布评论