每日一问
文章平均质量分 76
技术问题
yu-Knight
雄关漫道真如铁,而今迈步从头越!
多年Android开发经验。
熟悉HTML、CSS、JS、JAVA、Kotlin、PHP等常用开发语言。
展开
-
每日一问:Java中抽象类与抽象方法
类用于描述现实生活中一类事物。类中有属性、方法等成员。父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有 意义,而方法主体则没有存在的意义了。某种情况下,父类只能知道子类应该具备一个怎样的方法,但是不能够明确知道如何实现该方法。只能在子类中才能确定如何去实现方法体。例如:所有几何图形都应该具备一个计算面积的方法。但是不同的几何图形计算面积的方式不同。我们把没有方法主体的方法称为抽象方法。Java语法规定,包含抽象方法 的类就是抽象类。定义格式:代码举例:原创 2022-06-29 10:40:12 · 492 阅读 · 0 评论 -
每日一问:Java常见异常以及异常产生的原因及使用原则
在 Java 中一个异常的产生,主要有如下三种原因:Java 通过面向对象的方法来处理异常。在一个方法的运行过程中,如果发生了异常,则这个方法会产生代表该异常的一个对象,并把它交给运行时的系统,运行时系统寻找相应的代码来处理这一异常。我们把生成异常对象,并把它提交给运行时系统的过程称为拋出(throw)异常。运行时系统在方法的调用栈中查找,直到找到能够处理该类型异常的对象,这一个过程称为捕获(catch)异常。Java 异常强制用户考虑程序的强健性和安全性。异常处理不应用来控制程序的正常流程,其主要作用是捕原创 2022-06-27 11:00:03 · 481 阅读 · 0 评论 -
每日一问:线程和进程的区别
总的来说线程就可以当做是进程里面的执行的单元,同时它也是这个进程里面的一个能够调度的实体。首先来说进程和线程两个全是基本单元,完全是为了操作系统运行程序而存在的。该类系统为了要实现应用程序的并发性处理,就必须要运用该基本单元。因此它们之间有相似处也有区别。线程和进程的区别可以表现为以下的几个因素:简单地讲,任何的一个程序都必须有且有一个以上的进程,而相对于一个进程而言也必须要有且有一个以上的线程。相对于进程而言,对线程进行划分的尺度一般要小很多,这就导致了多线程的一些程序能够出现更高的并发性。在执行进程的时原创 2022-06-24 10:08:19 · 111 阅读 · 0 评论 -
每日一问:Java中接口和抽象类的区别
接口的实现类可以有多个。而抽象类的子类,只能继承一个抽象类,继承多个抽象类就会报错。在 Java 语言中,一个类只能继承一个父类(单继承),但可以实现多个接口。接口中属性的访问控制符只能是 public。接口中的属性默认是 public static final 修饰的。抽象类中的属性访问控制符无限制,可为任意控制符。接口和抽象类都是用来定义对象的公共行为的,但二者有以下 7 点不同:...原创 2022-06-22 20:54:38 · 185 阅读 · 0 评论 -
每日一问:Java中==和equal有什么区别
equals()表示 判断2个变量或对象实例所指向的内存空间的值是否相同。equals()表示 对字符串的内容进行比较。equals() 表示值是否相同。== 表示 判断2个变量或对象实例是否指向同一个内存空间。== 表示 对内存地址进行比较。== 表示引用是否相同。...原创 2022-06-21 17:37:37 · 215 阅读 · 0 评论 -
每日一问:ArrayList和LinkedList的区别
ArrayList是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List,RandomAccess,Cloneable,java.io.Serializable这些接口。ArrayList继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。ArrayList实现了RandmoAccess接口,即提供了随机访问的功能。RandmoAccess是java中用来被List实现,为List提原创 2022-06-19 16:07:43 · 133 阅读 · 0 评论 -
每日一问:Java与Kotlin的单例实现
Singleton通过将构造方法限定为private避免了类在外部被实例化,在同一个虚拟机范围内,Singleton的唯一实例只能通过getInstance()方法访问(这里不考虑反射)。这种写法lazy loading很明显,但是是在多线程不能安全。为了确保线程安全,可以在getInstance方法上加同步锁这种写法能够在多线程中很好的工作,而且看起来它也具备很好的lazy loading,但是,遗憾的是,效率很低,99%情况下不需要同步。4.静态内部类这种方式也利用了classloder的机制原创 2022-06-18 11:01:24 · 358 阅读 · 0 评论 -
每日一问:简述Java中HashMap 和 HashTable
jdk1.7的HashMap是用:数组+链表jdk1.8的HashMap是用:数组+链表+红黑树HashMap是一个集合,键值对的集合,源码中每个节点用Node表示。Node是一个内部类,这里的key为键,value为值,next指向下一个元素,可以看出HashMap中的元素不是一个单纯的键值对,还包含下一个元素的引用。哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构,只要输入待查找的值即key,即可查找到其对应的值。哈希表其实就是数组的...原创 2022-06-17 10:03:49 · 549 阅读 · 0 评论 -
每日一问:简述Java 中栈与堆
JVM内存划分为:栈内存、堆内存、方法区内存;栈是一种后进先出的线性表数据结构,分为栈顶和栈底两端,仅允许在表的一端插入元素,这一端被称为栈顶,另外一端称之为栈底。栈,只有两种操作,分为入栈(压栈)和出栈(退栈);向栈中添加元素的操作叫做入栈,相反从栈中删除元素叫做出栈。栈帧:一个栈帧随着一个方法的调用开始而创建,这个方法调用完成而销毁。栈帧内存放者方法中的局部变量,操作数栈等数据。Java栈也称作虚拟机栈(Java Vitual Machine Stack),JVM栈只对栈帧进行存储,压栈和出栈操作。Ja原创 2022-06-15 15:52:10 · 241 阅读 · 0 评论