java基础知识常思考

java基础知识常思考

    • 第一章
        • 1.jdk jre jvm 的区别
        • 2.什么是反射
        • 3.Java常用指令
    • 第二章
        • 1.常见数据类型
        • 2.变量和常量
        • 3.变量的作用域
        • 4.基本类型和引用类型
        • 5.类型转换
        • 6.操作符
        • 7.运算符优先级:
        • 8.流程控制
        • 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++有区别)
        • 2.方法的重写(在父类与子类之间)
        • 3.super,this,super(),this()的用法。
        • 4.final 不可更改变的,最终的。
        • 5.static 静态
      • 6.抽象类,接口
    • 第四章 异常处理
        • 1.Throwable类
        • 2.错误Error
        • 3.异常Exception
        • 4.异常处理
    • 第五章集合和泛型
      • 一、集合
        • 1.Collection
        • 2.Map

第一章

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类

java基础知识常思考_第1张图片

2.错误Error

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

3.异常Exception

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

  1. 异常的分类
  • 非检查型异常:编译器不要求强制处置的异常,该异常是因编码或设计不当导致的,这种异常可以避免,RuntimeException及其所有子类都属于非检查型异常
  • 检查型异常:编译器要求及其子类(RuntimeException及其子类除外)都属于检查型异常必须处理的异常,该异常是程序运行时因外界因素而导致的,Exception
    java基础知识常思考_第2张图片

4.异常处理

  1. try{}catch{}…catch{}finally{} :捕获异常
  2. throws :发送一个异常的抛出声明(抛出异常序列)
  3. throw : 抛出异常

第五章集合和泛型

一、集合

1.Collection

java基础知识常思考_第3张图片
-可用迭代器
-可转数组
-add()放数据

  1. Set 元素是无序的,且不可以重复(重复会覆盖掉)
  • 遍历使用forEach或Itretor
  1. 有序的如List可以使用三种遍历方式

2.Map : 键值对

  • 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 []a = new Generic [10]”是错误的,
而“Generic []a = new Generic [10]”是被允许的
  • 泛型类不能继承Throwable及其子类,即泛型类不能是异常类,不能抛出也不能捕获泛型类的异常对象
例如:“class GenericException  extends Exception”、“catch(T e)”都是错误的。

第五章 JDBC编程

JDBC简介

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

JDBC工具类

第六章 线程

实现Thread

继承Runnable

Callable

Future

线程的生命周期

状态转换:
java基础知识常思考_第4张图片

  • 线程被new之后只能调用一次start()方法。
  • isAlive现成的状态

有三种方法可以使终止线程。

  1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。
  2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。
  3. 使用interrupt方法中断线程。

join()

  • 暂停父线程,等待当前线程执行完毕。

线程的优先级

  • getPriority(),setPriority(0~10)
  • 优先级高只是先结束,执行的权限高一些,而不是完全优先。
  • 优先级提倡使用。。。等常量

线程的同步(保证某一时刻只由一个线程访问)

  1. 同步代码块
  2. 同步方法
  3. 同步锁
  • 定义一个ReentrantLock的对象,进行加锁和释放锁

你可能感兴趣的:(Java,编程语言)