Java基础学习常见知识点

Java基础学习常见知识点

@author:HB、ocean

@time:2020-3-1

单词记录

  • primitive type 基本类型
  • reference type 引用类型
  • heap 堆空间
  • stack 栈空间
  • operator 运算符
  • cast 转换
  • extends 继承
  • instance 例子
  • abstract 抽象
  • interface 接口
  • implements 实现
  • exception 异常

idea快捷键

  1. 主方法 psvm 快捷键

    public static void main(String[] args) {}
    
  2. 输出语句 sout 快捷键

    System.out.println("");
    
  3. 对象的构造 **先new对象 后提示补全 **

    Alt+Enter/Shift+灯泡

    Person p = new Person("李四");
    
  4. for循环 100.for 快速构造i从0到100的for循环 (fori 定义循环等)

    for(int i=0;i<100;i++){}
    
  5. 增强for循环 for each 数组.for 快速构建增强for循环 遍历元素

    for(int i:number) {
    	System.out.println(i);    
    }
    
  6. Ctrl+D 复制当前行

  7. Alt+Insert 快速生成类的方法 构造方法、verride等

  8. Ctrl+H 打开继承树

  9. Ctrl+鼠标左键 点出传参调用的参数名字

  10. Ctrl+Alt+T 可包裹代码 捕获异常等

Java学习记录

Java基础

  1. James Gosling(Canada人) 1995年推出 Java

    • 起初 Applet图形界面程序(网页)
    • 1988 J2SE 桌面 J2ME 手机 J2EE 服务器 高可用 高性能 高并发
    • 2005 Ruby 快速构建
    • 2006 Hadoop 大数据领域
    • 2008 Android 手机端
  2. 可移植性 动态性 反射

  3. 添加 JAVA_HOME、path系统变量

  4. Java 介于编译型与解释型之间

  5. 强语言类型 byte 1、short 2、int 4、long 8。char 2、float 4、double 8(boolean 占一位bit、一字节Byte占8位bit)

  6. float有限、离散、大约接近但不等,避免使用浮点数进行比较 BigDecimal数学工具类表示

  7. 字符char 本质数字 Unicode编码 2字节 0~65536 、65=A、97=a 例:‘/u0061’是a

  8. 注意问题:内存溢出、精度丢失、计算默认int,先转型l/L

  9. JDK7新特性,可用下划线分割 例:10_0000_0000

  10. 变量 实例变量、类变量、局部变量(布尔默认false 其余0,0.0,u0000,null)常量 final修饰(修饰符不分前后顺序)

  11. 取名 见名知意

  • 类成员、局部变量、方法名 首单词字母小写后驼峰原则

  • 常量 大写字母和下划线分隔

  • 类名 首字母大写后驼峰原则

  1. 位运算效率高 (接近底层)<</>>

  2. 与或短路运算

  3. 字符串类型只能拼接后边

  4. package放最上打包 import 引包 一般用公司域名倒置作为包名

  5. java doc 命令生成API文档

    /** */来书写

    • @author 作者名
    • @version 版本号
    • @since 需最早jdk
    • @param 参数名
    • @return 返回值
    • @throws 异常抛出

    生成 javadoc-encoding UTF-8 - character UTF-8 *.java

  6. Scanner类 JDK5新特性

Java流程控制

  1. 从JavaSE7开始switch支持String同时case必须是字符串常量/字面量(通过name.hashCode()来判断)
  2. 增强for循环JDK5新特性
  3. goto关键字 尽管goto是java保留字,但未正式使用,在break和continue上应用:带标签的break和continue,循环嵌套使用
  4. debug的使用 添加断点 小瓢虫运行调试

Java方法

  1. 方法的原子性 一个方法一个功能(有利于后期拓展)

  2. return 0 常用来终止方法

  3. 方法的重载与返回值类型无关(与参数的类型、个数、顺序有关)

  4. 运行class文件需要找到包的路径去加载,可以命令行传参数(args[0]……)

  5. JDK1.5开始支持可变参数(参数类型后面加入……、本质数组)一个方法仅支持一个可变长参数 在最后一个参数声明

  6. 递归 递归头和递归体 递归基数不易太大 能不用则不用 消耗栈资源

Java数组

  1. 三种初始化

    //静态初始化 创建+赋值
    int[] a = {1,2,3};
    //动态初始化 包含默认初始化
    int[] b = new int[3];
    b[0] = 1;
    

    数组的默认初始化 数组是引用类型 它的元素相当于类的实例变量,因此数组一经分配空间,其中每个元素也按照实例变量同样的方式被隐式初始化。

  2. 数组对象本身是在堆中

  3. 多维数组,即数组的数组不常用 (因为面向对象的思想)

  4. 数组工具类 java.util.Arrays,用static修饰的静态方法,可直接使用类名来调用,不用使用对象来调用。

  5. **冒泡排序 时间复杂度O(n2)**比较相邻元素 每一次内层循环都产生当前最小数放后面,外层循环控制循环次数 每次内层循环减少。

  • 内层添加flag判断 判断是否有改变
  1. 稀疏数组 一个数组存在大量相同元素 使用稀疏数组格式 (记录有效坐标与原始坐标的大小)

    总行数总列数有效数值个数
    有效数值所在行有效数值所在列有效数值具体值

面向对象编程OOP

  1. 以类的方式组织代码,以对象的组织(封装)数据

  2. 三大特性:封装 继承 多态

  3. 一个项目只存在一个main方法(main方法在栈中)一个.java只有一个public class

  4. String预定义类不可变 当常量处理

  5. 类是一个模板 抽象 对象是一个具体的实例 对象是通过引用来操作的:栈—堆

  6. 封装:高内聚 低耦合 属性私有 get/set

  • 提高程序安全性 保护数据
  • 隐藏代码实现细节
  • 统一接口
  • 系统可维护性增加
  1. Java单继承 父类 子类 is a 关系(私有无法被继承)

  2. Java中 所有类 都直接或间接继承Object类

  3. 调用父类构造方法,必须放在子类构造方法第一行(super和this只能调用一个)

  4. 静态方法的调用只和左边定义的数据类型有关(静态方法是类的方法 非静态方法 是对象的方法 非静态非私有非final才可以重写 修饰符范围可以扩大但不能缩小 抛出异常范围不能扩大)(对象能执行的方法看左边类型)

  5. 多态 动态编译 类型 可扩展性

  6. instance of 判断对象类型 变量指向的实例是否是指定类型(指定类型子类)

  7. 下转型对象需要强制类型转换 转型对象丢失方法

  8. 转型对象,方便方法调用,减少重复代码

  9. 类加载顺序:静态代码块、匿名代码块、构造方法**(静态代码块赋初始值)**

  10. 静态导入包

    //静态导入包
    import static java.lang.Math.random;
    //下面可直接调用random();
    
  11. 抽象类是约束,需要子类来实现(抽象类可以有普通方法、抽象方法)

  12. 普通类:具体实现 抽象类:具体实现和规范(抽象方法) 接口:只有规范!(约束和实现分离 面向接口编程)

  13. Impl接口实现类后缀 接口中 属性是常量 public static final 接口中 方法 是抽象方法 默认public abstract 无构造方法

  14. 通过外部类来实例化内部类 匿名内部类、lambda的使用……

Java异常

  1. Java把异常当做对象来处理 定义一个基类 java.lang.Throwable 作为所有异常的超类 分类 错误 Error 和 异常 Exception
  2. Error由Java虚拟机生成并抛出 与编程员操作无关 JVM终止
  3. 异常处理 抛出与捕获 try catch finally(常用来关闭io与资源)finally先处理在处理catch 捕获异常层层递进关系(从小到大)
  4. printStackTrace();//打印错误栈信息 (报的异常)
  5. System.exit(0/1……);//手动结束程序
  6. throw 主动抛出异常,一般在方法中使用 方法中处理不了,在方法上抛出异常 throws
  7. 自定义异常 继承自异常类的类

Java常见异常

Throwable

  • Exception

​ RunTimeException(运行时异常)

  1. 数组下标越界 java.lang…ArrayIndexOutOfBoundsException
  2. 类型转换异常 ClassCastException
  3. 除零异常 / by zero
  4. 空指针异常 NullPointerException
  5. 算数异常 ArithmeticException
  6. 丢失资源 MissingResourceException
  7. 找不到类 ClassNotFoundException
  • Error
  1. 内存溢出 OutOfMemoryError
  2. 类定义错误 NoClassDefFoundError
  3. 链接错误 LinkageError
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值