自定义博客皮肤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 145

原创 克隆 面试题

克隆 面试题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 167

原创 抽象类和接口 面试题

抽象类和接口 面试题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 267

原创 类与 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 291

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

数组和排序算法 面试题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 500

原创 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 234

原创 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 155

原创 字符串 面试题

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

2020-04-01 14:26:15 306

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

基本数据类型和包装类的 面试题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 300

原创 2.62.特殊类的总结

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

2020-03-12 13:25:06 113

原创 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 95

原创 2.60.局部内部类

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

2020-03-12 13:12:57 94

原创 2.59. 成员内部类

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

2020-03-12 13:06:12 76

原创 2.58.静态内部类

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

2020-03-12 12:02:41 84

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

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

2020-03-12 11:57:39 100

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

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

2020-03-12 11:52:06 89

原创 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 136

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

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

2020-03-12 11:36:36 310

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

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

2020-03-12 11:29:57 176

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

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

2020-03-12 11:26:46 98

原创 2.51.初探反射

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

2020-03-12 11:19:32 152

原创 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 93

原创 2.49.toString 方法

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

2020-03-12 11:14:20 94

原创 2.48.hashCode 和 equals 方法

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

2020-03-12 10:54:15 105

原创 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 109

原创 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 126

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

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

2020-03-12 10:33:43 98

原创 2.44.final 修饰符

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

2020-03-12 10:21:16 80

原创 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 84

原创 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 102

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

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

2020-03-12 09:44:45 98

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

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

2020-03-12 09:34:41 816

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

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

2020-03-12 09:27:10 148

原创 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 455

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

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

2020-03-11 17:54:53 104

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

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

2020-03-11 17:47:11 95

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

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

2020-03-11 17:38:20 323

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

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

2020-03-11 17:31:09 80

原创 2.33.String 类的好兄弟

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

2020-03-11 17:22:30 77

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

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

2020-03-11 17:21:07 143

空空如也

空空如也

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

TA关注的人

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