随笔分类 - Java
1
摘要:一、 什么是异常 异常分为三大类,分别是: 检查性异常 运行时异常 错误 异常体系结构如下: 1. Error Error类对象由Java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。 可能是Java虚拟机执行错误,此时,JVM一般会终止线程;还有也可能会发生在虚拟机试图执行应用时,由它
阅读全文
摘要:一、static关键字 1. 静态变量(多线程) 2. 静态方法 3. 静态代码块 用于加载初始化的信息,类加载时就执行,永久只执行一次。 执行顺序:静态方法块(与类一起加载) --> 匿名代码块(赋初始值) --> 构造方法 后续执行时: 匿名代码块 --> 构造方法 4. 静态导入包 impor
阅读全文
摘要:面向对象三大特性:封装、继承、多态 1. 封装 程序编写追求“高内聚,低耦合”,高内聚即类内部数据操作细节自己完成,不允许外部干涉;低耦合即仅暴露少量的方法供外部使用。 Java中的封装:“属性私有,get/set供外部访问” 封装的作用: 1)提高程序安全性,保护数据 2)隐藏代码实现细节 3)统
阅读全文
摘要:1. 什么是面向对象 面向过程:是一种线性思维 面向对象:是一种分类思维,适合处理复杂的问题,特别是需要多人协作的问题 面向对象的本质:以类的方式组织代码,以对象的方式封装数据 (对象是具体的事物,类是一个抽象出的模板) 面向对象三大特性: 封装 继承 多态:同一事物的多种形态 Java宏观为面向对
阅读全文
摘要:1. 三种初始化方式 静态初始化 int[] a = {1, 2, 3}; 动态初始化(包括默认初始化) int[] b = new int[10]; b[0] = 1; 默认初始化 2. Java内存简析 Java内存: 数组在内存中的分配: 说明: 数组中的元素可以是任何数据类型,包括基本类型和
阅读全文
摘要:一个方法完成一个功能,便于扩展。 1. 方法的定义与调用 一些需注意的点: Java中只有值传递,没有引用传递。 形参:定义的作用 实参:实际调用时传递的参数 2. 方法的重载 重载就是在一个类中,有相同的函数名称,但形参不同的函数。 1)方法重载的规则: 方法名必须相同 参数列表必须不同(参数个数
阅读全文
摘要:1. Scanner类 Scanner in = new Scanner(System.in); 字符串的输入主要有两种: in.next():以空格为结束符,空格后的字符舍弃 in.nextLine():以回车为结束符,用的较多 (可用hasNextLine作为条件,判断是否继续输入) 其他数据类
阅读全文
摘要:1. 前言 今天面试前,笔试中遇到写单例模式的试题,之前也参考一些优秀博主的博客写过一遍。 在此,再次整理一下。 2. 单例模式要点 实现单例模式有以下三个要点: 1)首先要确保全局只有一个类的实例:要保证这一点,至少类的构造器要私有化 2)单例的类只有自己创建自己:因为构造器私有了,但还要有一个实
阅读全文
摘要:1. 标志符 命名注意: 只可以字母(A-Z或a-z)、美元符($)、下划线(_)开始; 首字符之后可以是字母、美元符、下划线或数字的任何字符组合; 不能使用关键字作为变量名或方法名; 标识符大小写敏感。 借用狂神PPT图: 2. 数据类型 Java是一种强数据类型语言。 强数据类型语言:具有严格的
阅读全文
摘要:Java既为编译型也为解释型。 同为翻译工作,两者的不同为翻译的时机不同。 用一个简单的例子来进行说明: A写了一本“英文书”,B只可使用中文来阅读。 如果A写完这本书后,整个翻译后,再交给B,则称为编译型; 如果A边写边翻译给B看(即B看,A就给他翻译),则称为解释型。 编译型:由专门的编译器编译
阅读全文
摘要:JDK,即Java Development Kit,用于Java程序开发 JRE,即Java Runtime Environment,用于Java运行 JVM,即Java Virtual Machine,是Java跨平台的核心 狂神课程截图如下,可了解到JDK、JRE、JVM的关系: 此外,安装jd
阅读全文
摘要:1. 简单性 2. 面向对象 3. 可移植性(JVM) 4. 高性能(即时编译,使某些代码的效率接近C++的效率) 5. 分布式(可处理很多TCP/IP协议上的东西,通过URL可实现向打开本地文件一样,方便的打开远程文件) 6. 动态性(反射机制) 7. 多线程 8. 安全性 9. 健壮性(异常机制
阅读全文
摘要:1. Java的三大版本 Java于1998年推出Java的三大版本: J2SE:标准版(桌面...) J2ME:嵌入式开发 (手机...) J2EE:企业级开发 (服务器):其强大 健壮 安全,具有的三高特性--高可用、高性能、高并发,使其适合应用于服务器开发 2. Java发展 基于Java开发
阅读全文
摘要:1. 计算机语言发展史 机器语言 -->汇编语言 -->高级语言 其中高级语言可分为面向过程语言与面向对象语言: 面向过程语言:C(1972年) 面向对象语言:C++(1982年)、Java(1995年) 既可面向过程也可面向对象:python(1991年) 2. C与C++ C语言: 贴近硬件,运
阅读全文
摘要:ArrayList继承了AbstractList类,实现了List接口 其扩容开始于添加元素的add方法,其添加元素有两种方法: public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!!
阅读全文
摘要:分别执行: 没有重写equals也没有重写hashCode aa行:输出false 2. 重写equals没有重写hashCode aa行:输出true; 此时借助Set来观察是否有区别:属性值相同的两个对象hashCode不相等,导致Set中出现重复存储 3. 重写equals也重写hashCod
阅读全文
摘要:HashSet是最常用的Set集合之一,可以保证元素的唯一性。 底层原理 底层就是HashMap,存储的元素为HashMap的key,HashMap的value默认存储了一个Object的静态常量PRESENT 构造方法 public HashSet() { map = new HashMap<>(
阅读全文
摘要:1. 运行时数据区域 Java程序运行时,会划分不同的区域。 JDK1.8之前和JDK1.8略有区别,如图。 1) 程序计数器 是内存中很小的一块内存空间。 主要作用有两点: a. 字节码解释器通过修改程序计数器来依次读取指令,实现代码的流程控制,如顺序执行、选择、循环、异常处理; b. 在多线程的
阅读全文
摘要:1. 为什么要使用多线程? 1)从计算机底层来说 线程可比作轻量级进程,是程序执行的最小单位,线程间切换和调度的成本远远小于进程; 另外,多核CPU可支持多个线程同时执行,降低了线程上下文切换的开销。 单核计算机时代: 主要是为了提高CPU和IO设备等的综合利用率(如果只有一个线程,CPU执行时,I
阅读全文
摘要:1. 集合是做什么的? Java集合类位于Java.util包中,是一个用来存放对象的容器。 2. Java集合框架 可以发现上述所有的集合类,除Map之外,都实现了Iterator接口。 Iterator可用来遍历集合类,提供有hasNext(), next(), remove()三个方法; 其子
阅读全文
1