java基础知识常思考

第一章

1.jdk jre jvm 的区别
2.什么是反射
3.Java常用指令
  • javac:Java语言编译器
  • java:字节码解释器
  • javadoc:文档生成器
  • javap:Java字节码分解程序
  • javah:Jni编程工具
  • appletviewer:小应用程序浏览工具
  • jar:打包程序

第二章

1.常见数据类型
  • 引用类型
  • 基本类型
2.变量和常量
  • 装箱拆箱
3.变量的作用域

全局变量使用前可以不初始化(将会是默认值),局部变量使用时必须初始化

4.基本类型和引用类型
5.类型转换

自动类型转换,强制类型转换(有风险)

6.操作符

(条件)?(如果成功):(如果失败)

7.运算符优先级:
优先级(由高到低)运算符
分隔符. [] () {} , ;
一元运算++ – ! ~
强制类型转换(type)
乘、除、取余* / %
加、减+ -
位移运算符>> >>> <<
关系大小预算符> < >= <=
等价运算符== !=
按位与&
按位异或^
按位或|
逻辑与&
逻辑或||
三元运算符? :
赋值运算符= += *= ?= ^= &= |= <<= >>= >>>=
8.流程控制
  1. 分支结构
    if else
  2. 循环结构
    for while do…while;
  3. 选择结构
    switch(){case : … break;case: …break;defult:…} jdk7之后,可用枚举或字符串
9.数组,二维数组,数组遍历
10.值传递和引用传递

第三章 面向对象

1.常用类

1.接口与的继承
2.this , super
3.封装中public pravite procteced default
4.String常量池,拼接字符串
5.static final
6.String类常用方法(查阅帮助文档)有几个构造方法,多少个方法和功能
StringBuffer 字符串缓冲区,初始为16位。
常用的类,如Math,Date (查看帮助文档)
日期格式化DateFormat

2.类与类之间的关系

1.类在Java之间是单继承(与C++有区别)
  • 使用extends
  • 如果继承多个,只能用实现接口的方式实现,使用implement关键字
2.方法的重写(在父类与子类之间)
  • 方法结构(返回值,参数,方法名)完全一致
  • 父类的方法不可以是private
  • 子类的修饰范围可以比父类大
    -实现接口可以实现多个
3.super,this,super(),this()的用法。
  • super指当前超类(父类)的引用
  • this指当前类的对象(当前对象)
  • this(),super()都只能放在第一行,代表的是挡墙或当前类的超类的传入同参数的构造器
4.final 不可更改变的,最终的。
  • 修饰变量时,表示为常量
  • 修饰类时,不能被继承
  • 修饰对象时,对象也不可改变
  • 修饰方法时,子类中可以覆盖但不能重写
5.static 静态
  • 在编译时在类的范围里声明为共享(而不是对象)即类方法
  • 在static方法内部不能调用非静态方法,反过来是可以的。
  • 仅仅通过类本身来调用static方法
  • static方法只能调用static方法
  • 用法
  1. static方法
  2. static变量
  3. static代码块(优化程序性能)
  4. 修饰类时,只有内部类才可以被定义为static

6.抽象类,接口

  1. 抽象类
  • 可以放抽象方法和普通方法
  • 非抽象类继承抽象类必须实现抽象方法
  • 抽象类继承抽象类和类的继承相似
  • 抽象方法不须要实现(只有方法名没有方法体)
  • 有抽象方法一定是抽象类
  1. 接口
  • 接口定义为public 或是缺省的
  • 接口可以继承接口
  • 1.8之后,接口可以且必须实现static方法,在之前不可以使用静态代码块和静态方法,与abstract类为区别
  • 接口是隐式抽象的(会被隐式指定为public abstract)
  • 接口中的方法不可以在接口中实现,可在实现该接口的类中实现。
  • 接口中的变量是会被隐式的指定为 public static final
  • 接口中的方法没有方法体(default、static方法除外,必须有方法体,可有多个static方法)
  • 接口没有构造方法(构造器)

第四章 异常处理

1.Throwable类

image

2.错误Error

一般指与虚拟机相关的问题,如系统崩溃、虚拟机错误、动态链接失败等,这些错误无法恢复或捕获,将导致应用程序中断;

3.异常Exception

因程序编码错误或外在因素导致的问题,这些问题能够被系统捕获并进行处理,从而避免应用程序非正常中断,例如:除以0、对负数开平方根、空指针访问等

  1. 异常的分类
  • 非检查型异常:编译器不要求强制处置的异常,该异常是因编码或设计不当导致的,这种异常可以避免,RuntimeException及其所有子类都属于非检查型异常
  • 检查型异常:编译器要求及其子类(RuntimeException及其子类除外)都属于检查型异常必须处理的异常,该异常是程序运行时因外界因素而导致的,Exception
    image
4.异常处理
  1. try{}catch{}…catch{}finally{} :捕获异常
  2. throws :发送一个异常的抛出声明(抛出异常序列)
  3. throw : 抛出异常

第五章集合和泛型

一、集合

1.Collection

image
-可用迭代器
-可转数组
-add()放数据

  1. Set 元素是无序的,且不可以重复(重复会覆盖掉)
  • 遍历使用forEach或Itretor
  1. 有序的如List可以使用三种遍历方式
2.Map<K,V> : 键值对
  • key不能重复,value可以重复
  • 数据也是无序的
  • put()放数据
  • keySet()方法将所有的key放入Set集合,然后进行遍历
  1. List
  • ArrayList 数组
  • Vector 线程安全数组
  • LinkList 链表
  1. Collections类:对集合进行操作的工具类(查阅帮助文档)

二、泛型

  1. “泛”对于通用类型比Object的好处是简洁不需要强转。
  2. 通配符:是由“?”来表示一个未知类型,从而解决类型被限制、不能动态根据实例进行确定的缺点。
  3. 有界类型
  • 使用extends关键字声明类型参数的上界;
    使用extends关键字可以指定类型参数的上界,限制此类型参数必须继承 自指定的父类或父类本身。被指定的父类则称为类型参数的“上界(upper bound)”。

  • 使用super关键字声明类型参数的下界。
    使用super关键字可以指定类型参数的下界,限制此类型参数必须是指定的类型本身或其父类,直至Object类。被指定的类则称为类型参数的“下界(lower bound)”
  1. 泛型的限制
    java的泛型会在编译时擦除,于是泛型的使用必须有限制
  • 泛型的类型只能是类类型,不能是简单类型。
  • 不同泛型的实例是不兼容的,如“Generic”与“Generic”的实例不兼容
  • 定义泛型时,类型参数只是占位符,不能直接实例化,
例如:“new T()”是错误的;
  • 不能实例化泛型数组,除非是无上界的类型通配符
例如:“Generic<String> []a = new Generic<String> [10]”是错误的,
而“Generic<?> []a = new Generic<?> [10]”是被允许的
  • 泛型类不能继承Throwable及其子类,即泛型类不能是异常类,不能抛出也不能捕获泛型类的异常对象
例如:“class GenericException <T> extends Exception”、“catch(T e)”都是错误的。

第五章 JDBC编程

JDBC简介
  1. JDBC访问不同的数据库时,需要数据库厂商提供相应的驱动程序
  2. 完成的工作:
  • 建立数据库连接
  • 执行SQL语句
  • 获取执行结果
JDBC工具类

第六章 线程

实现Thread
继承Runnable
Callable
Future
线程的生命周期

状态转换:

  • 线程被new之后只能调用一次start()方法。
  • isAlive现成的状态
有三种方法可以使终止线程。
  1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。
  2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。
  3. 使用interrupt方法中断线程。
join()
  • 暂停父线程,等待当前线程执行完毕。
线程的优先级
  • getPriority(),setPriority(0~10)
  • 优先级高只是先结束,执行的权限高一些,而不是完全优先。
  • 优先级提倡使用。。。等常量
线程的同步(保证某一时刻只由一个线程访问)
  1. 同步代码块
  2. 同步方法
  3. 同步锁
  • 定义一个ReentrantLock的对象,进行加锁和释放锁
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值