自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 集合 面试题

集合 面试题 1.HashSet 是如何保证数据不可重复的? 答:HashSet 的底层其实就是 HashMap,只不过 HashSet 实现了 Set 接口并且把数据作为 K 值,而 V 值一直使用一个相同的虚值来保存,我们可以看到源码: public boolean add(E e) { return map.put(e, PRESENT)==null;// 调用 HashMap 的 ...

2020-04-27 16:41:35 217

原创 克隆 面试题

克隆 面试题 1.以下代码执行的结果是? import java.util.Arrays; class CloneTest { public static void main(String[] args) throws CloneNotSupportedException { CloneObj cloneObj = new CloneObj(); clone...

2020-04-27 16:10:01 236

原创 抽象类和接口 面试题

抽象类和接口 面试题 1.添加以下哪个选项不会引起编译器报错? abstract class AbstractAnimal { static String animalName = "AbstractAnimal"; // 添加代码处 } A:protected abstract void eat(); B: void eat(); C:abstract void eat()...

2020-04-27 15:39:53 347

原创 类与 Object 面试题

类与 Object 面试题 1. 以下程序执行的结果是? class ExecTest { public static void main(String[] args) { Son son = new Son(); } } class Parent{ { System.out.print("1"); } static{ ...

2020-04-27 14:20:18 380

原创 数组和排序算法 面试题

数组和排序算法 面试题 1. 以下代码访问数组元素打印的结果是多少? int[] arr = new int[5] {1, 2, 3, 4, 5}; System.out.println(arr[4]); 答:程序编译报错,在 Java 中初始化数组时,如果直接给数组赋值,不能声明数组长度;如果声明了数组长度,则不能赋值给数组,否则编译器报错。 正确的写法如下: int[] arr = n...

2020-04-27 11:13:25 580

原创 Java 中的异常处理 面试题

Java 中的异常处理 面试题 1. 以下代码 catch 里也发生了异常,程序会怎么执行? try { int i = 10 / 0; System.out.println("try"); } catch (Exception e) { int j = 2 / 0; System.out.println("catch"); } finally { Syst...

2020-04-01 17:11:21 305

原创 Java 中的运算符和流程控制 面试题

Java 中的运算符和流程控制 面试题 1. Java 中 i++ 和 ++i 有什么区别? 答:i 先赋值再运算;i 先运算再赋值。 示例代码: int i = 0; int i2 = i++; int j = 0; int j2 = ++j; System.out.println("i2=" + i2); System.out.println("j2=" + j2); 输出结果:i2=0,...

2020-04-01 15:51:07 218

原创 字符串 面试题

字符串 面试题 1. String 属于基础数据类型吗? 答:String 不是基础数据类型,它是从堆上分配来的。基础数据类型有 8 个,分别为:boolean、byte、short、int、long、float、double、char。 java 中String 是个对象,是引用类型 ,基础类型与引用类型的区别是,基础类型只表示简单的字符或数字,引用类型可以是任何复杂的数据结构 ,基本类型仅表示...

2020-04-01 14:26:15 382

原创 基本数据类型和包装类的 面试题

基本数据类型和包装类的 面试题 1. 以下 Integer 代码输出的结果是? Integer age = 10; Integer age2 = 10; Integer age3 = 133; Integer age4 = 133; System.out.println((age == age2) + "," + (age3 == age4)); 答:true,false 此题考的是:高频区间...

2020-04-01 13:23:59 392

原创 2.62.特殊类的总结

特殊类的总结 **枚举 枚举就是有固定个数实例的类 枚举的父类是Enum 非公有类 最不特殊的类,可以认为就是被缺省访问控制符修饰的类。也就是说,和public class 的区别仅仅是可以被访问的范围不一样 如果一个文件只有非公有类,那么类名和文件名可以不一样。当然文件后缀必须是 java 。 内部类 内部类的特殊之处在于可见性和可以访问的数据以及方法。内部类会被认为是类本身的代码,所以外部类的...

2020-03-12 13:25:06 196

原创 2.61.匿名类

匿名类是用来创建接口或者抽象类的实例的 匿名类可以出现在任何有代码的地方 看例程:学习匿名类的使用 public class UseAnonymousClass { public static void main(String[] args) { Phone phone = new Phone( "手机001", "Phone001", 100, 1...

2020-03-12 13:19:29 143

原创 2.60.局部内部类

看例程:学习局部内部类 对比记忆:局部内部类可以被什么修饰,可以在哪里使用,可以对比局 部变量 public class Phone extends MerchandiseV2 { // 给Phone增加新的属性和方法 private double screenSize; private UnitSpec cpu; private UnitSpec memoryG...

2020-03-12 13:12:57 157

原创 2.59. 成员内部类

看例程:学习成员内部类语法 看例程:学习在外部创建成员内部类的对象的语法 对比记忆:成员内部类可以被什么修饰,可以在哪里使用,可以对比成员变量 public class UsePhoneMerchandise { public static void main(String[] args) { Phone phone = new Phone( "手机...

2020-03-12 13:06:12 129

原创 2.58.静态内部类

看例程:静态内部类的语法,了解其和外部类互相的可访问性 看例程:静态内部类在定义它的外部使用 对比记忆:静态内部类可以被什么修饰,可以在哪里使用,可以对比静态变量 看 Math 类源代码,学习静态内部类的一种曲线用途:实现单例模式 public class UsePhoneMerchandise { public static void main(String[] args) { ...

2020-03-12 12:02:41 179

原创 2.57.接口内的代码的更多内容

在 Java 8 中,接口中允许有静态方法,私有方法和带有缺省实现的抽象方法 看例程:接口中有方法,不代表是 Java 有多继承 看例程:理解接口方法里的 this 自引用 看例程:一个类不可以从两个接口中获得相同的缺省方法 看例程:接口中的静态方法 // >> TODO 有方法的接口,并不是多继承。接口不可以继承类,这一点就打破了 // >> TODO 同样,接口不可以声...

2020-03-12 11:57:39 146

原创 2.56.抽象类:有方法代码的接口

在 Java 8 中,接口中允许有缺省实现的抽象方法 看例程:不用抽象类,而是使用缺省方法的接口 // >> TODO 缺省的实现方法,用default修饰,可以有方法体 public interface ExpireDateMerchandise { // >> TODO 缺省的实现方法,用default修饰,可以有方法体 /** * 截止到当...

2020-03-12 11:52:06 147

原创 2.55.抽象类:接口和类的混合体

学习抽象类的定义和使用 学习抽象类的引用的使用 在 IDE 里看接口所有的实现类 public class UseAbsClass { public static void main(String[] args) { Date produceDate = new Date(); Date expireDate = new Date(produceDate...

2020-03-12 11:47:14 181

原创 2.54.接口:让商品类型更丰富

看例程:学习接口的定义 看例程:学习接口的实现和接口引用的使用 看例程:学习接口的继承 // >> TODO 接口的定义使用interface,而非class // >> TODO 接口中的方法,就是这个类型的规范,接口专注于规范,怎么实现这些规范,它不管 // >> TODO 接口无法被实例话,也就是不可以new一个接口的实例。 public interfac...

2020-03-12 11:36:36 377

原创 2.53.枚举 :定义商品的门类

看例程:使用枚举定义商品门类 看例程:枚举的使用 public class UseEnum { public static void main(String[] args) { // >> TODO 获取所有枚举,看看枚举实例有哪些方法 for (Category category : Category.values()) { ...

2020-03-12 11:29:57 257

原创 2.52.面向对象三要素:封装、继承和 多态

面向对象三要素:封装、继承和多态 封装解决了什么问题,带来了什么问题 继承解决了什么问题,带来了什么问题 多态解决了什么问题,带来了什么问题 ...

2020-03-12 11:26:46 132

原创 2.51.初探反射

使用反射 (reflection) 访问属性 使用反射访问方法 使用反射访问静态方法和属性 使用反射访问 private 的方法和属性 反射是什么 public class ReflectionAppMain { public static void main(String... args) throws NoSuchFieldException, IllegalAccessExcepti...

2020-03-12 11:19:32 218

原创 2.50.初探 Class 类

初探 Class 类 Class 类是代表类的类。每个Class类的实例,都代表了一个类 看例程:看看 Class 类里有什么 public class ClassOfClassAppMain { public static void main(String... args) throws NoSuchFieldException, NoSuchMethodException { ...

2020-03-12 11:16:34 136

原创 2.49.toString 方法

看例程:自动生成 toString 方法 看例程:调用 toString 方法的地方有很多 public class ToStringAppMain { public static void main(String[] args) { LittleSuperMarket superMarket = new LittleSuperMarket("大卖场", ...

2020-03-12 11:14:20 138

原创 2.48.hashCode 和 equals 方法

hashCode 和 equals 方法初探 hashCode 可以翻译为哈希码,或者散列码。应该是一个表示对象的特征值的 int 整数 equals 方法应该用来判断两个对象从逻辑上是否相等 看例程:hashCode 和 equals方法怎么写 看例程:使用equals 用来判断对象是否相等,而非 == String 类的 equals 方法 看例程:String 类的 equals 方法和 =...

2020-03-12 10:54:15 149

原创 2.47.万类之祖:Object 类

万类之祖:Object 类 所有的类,都间接或者直接的继承自 Object 类 Object 类中的方法 Object 类引用 public class TouchObject { public static void main(String[] args) { Object obj = new Object(); printObj(obj); ...

2020-03-12 10:49:59 162

原创 2.46.插曲:for 循环的另一种写法

看例程:学习 for 循环的另一种写法 public class LittleSuperMarketAppMain { public static void main(String[] args) { LittleSuperMarket superMarket = new LittleSuperMarket("大卖场", "世纪大道1号", 500,...

2020-03-12 10:36:30 165

原创 2.45.继承里的静态方法

l 看例程:继承里的静态方法 public class StaticMethodDoesNotBelieveOverride { public static void main(String[] args) { LittleSuperMarket superMarket = new LittleSuperMarket("大卖场", "世纪大道1号",...

2020-03-12 10:33:43 142

原创 2.44.final 修饰符

final 修饰符最见不得变化 final 修饰类:不可被继承 inal 修饰方法:不可被子类覆盖 final 修饰变量:不可被赋值。这个最难理解 public class MerchandiseTest { // TODO 之前重载的时候,参数是用的自定义类型。现在理解了父类和子类的引用赋值关系,重载又多了一层复杂性 public void testMerchandiseOv...

2020-03-12 10:21:16 124

原创 2.43.继承专属的访问控制:protected

继承专属的访问控制:protected 看例程:学习 protected 可见性 = default + 对子类可见 看例程:覆盖可以,但是不能让可见性更低 public class TestVizAppMain { public static void main(String[] args) { LittleSuperMarket superMarket = new Li...

2020-03-12 10:01:42 122

原创 2.42.instanceof 操作符

instanceof 操作符 看例程:学习 instanceof 操作符 public class InstanceOfTestAppMain { public static void main(String[] args) { int merchandiseCount = 600; LittleSuperMarket superMarket = new L...

2020-03-12 09:49:54 157

原创 2.41.多态里更多的语法点

多态里更多的语法点 静态多态:重载(Overload) 动态多态:覆盖(Override) 看例程:学习重载和覆盖的花式操作 勿忘初心:程序的执行就是找到要执行的代码,并且知道执行的代码能访问哪些数据,数据从哪里来。多态的核心问题就是:要调用哪个类的 哪个方法,这个方法用到的数据(this 引用)是谁 public class MerchandiseTest { // TODO 之前重载...

2020-03-12 09:44:45 156

原创 2.40.多态:到底调用的哪个方法?

多态:到底调用的哪个方法? 可以调用哪些方法,取决于引用类型。具体调用哪个方法,取决于实例所属的类是什么 看例程:学习覆盖的奥义 覆盖是多态里最重要的一种形式 从 this 自引用的角度,理解覆盖。 public class PolymorphismAppMainComplex { public static void main(String[] args) { Littl...

2020-03-12 09:34:41 886

原创 2.39.父类和子类的引用赋值关系

父类和子类的引用赋值关系 看例程:学习子类引用和父类引用的关系 父类引用可以指向子类对象,子类引用不可以指向父类的对象 可以进行强制类型转换,如果类型不对,会出错 可以调用的方法,是受引用类型决定的 public class LittleSuperMarketAppMain { public static void main(String[] args) { LittleS...

2020-03-12 09:27:10 209

原创 2.38.super :调用父类的构造方法

看例程:学习 super 的使用方法 public class UsePhoneExtendsMerchandise { public static void main(String[] args) { Phone ph = new Phone(); ph.describe(); // // Phone phone = new Phone( ...

2020-03-12 09:19:46 537

原创 2.37.super:和父类对象沟通的桥梁

super:和父类对象沟通的桥梁 子类对象里可以认为有一个特殊的父类的对象,这个父类对象和子类对象之间通过 super 关键字来沟通 看例程:学习 super 的用法 理解 super 是什么,不是什么 public class UsePhoneExtendsMerchandise { public static void main(String[] args) { Pho...

2020-03-11 17:54:53 142

原创 2.36.覆盖:子类想要一点不一样

覆盖:子类想要一点不一样 覆盖才是继承的精髓和终极奥义 看例程:学习覆盖 从覆盖的角度理解为什么使用方法读写属性,优于直接访问属性 问题:为了避免代码重复,在子类里使用父类的 buy 和 describe 方法。如何在子类里,调 用父类的方法? public class UsePhoneExtendsMerchandise { public static void main(String[...

2020-03-11 17:47:11 137

原创 2.35.子类对象里藏着一个父类对象

l 另一种解决问题的思路:组合 看例程:学习使用组合如何解决问题 l 继承和组合的区别 看例程:初步了解组合和继承的区别 public class UsePhoneExtendsMerchandise { public static void main(String[] args) { PhoneExtendsMerchandise phone = new PhoneEx...

2020-03-11 17:38:20 376

原创 2.34.继承:方便让商品增加新的类别

手机是商品,但不只是商品 手机类需要商品类所有的属性和方法,因为手机是商品,有价格,库存数量,进价售价等 但是手机也不只是商品,除了商品通用的属性和操作之外,手机还有自己这一类商品共有的属性,比如 CPU,内存,存储,品牌,操作系统,屏幕大小等描述信息 把商品类里的属性和方法都复制过来,然后再增加上手机自己的属性和方法。又是熟 悉的问题! 继承:问题迎刃而解 看例程:继承的语法和作用 • 子类继承...

2020-03-11 17:31:09 121

原创 2.33.String 类的好兄弟

StringBuilder 是一个非常方便的用来拼接和处理字符串的类,和 String 不同的是,它是可变的 看例程:学习 StringBuilder 的使用 public class LearnStringBuilder { public static void main(String[] args) { // TODO StringBuilder首先是可变的 ...

2020-03-11 17:22:30 128

原创 2.32.重新认识老朋友: main方法 和System 类

main 方法使用指南 main 方法也只是一个静态的,有 String[] 做参数的,没有返回值的方法而已。它的特殊性在于 Java 可以把 main 方作为程序入口 给 main 方法传递参数 自己试着调用 main 方法 System 类不简单 System 类中有很多和系统相关的方法。我们用的最多的就是 in 和 out 来读取和输出数据 看例程:System 里另一个最常用的,无可替代的...

2020-03-11 17:21:07 216

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除