
基础知识
占位符号
不积跬步,无以至千里;不积小流,无以成江海。
展开
-
Java 中的super关键字
super关键字表示对某个类的父类的引用。一般而言,super有两种通用形式:第一种用来访问被子类的成员隐藏的父类成员;第二种则是可以调用父类的构造函数。接下来说一下两种使用形式的方法和规则。第一种:如子类和父类有同名的成员变量或方法,则父类的成员将会被覆盖,此时可用下面的方式来引用父类的成员:super.<成员变量名>super.<成员方法名>在Java语言中,用过继承...原创 2018-04-15 10:31:50 · 13587 阅读 · 1 评论 -
Java枚举类相关知识汇总
1.Java枚举的本质原理Java枚举的本质原理是通过普通类来实现的,只是编译器为我们做了加工处理,每个枚举类型编译后的字节码实质都是继承自java.lang.Enum的枚举类型同名普通类,每个枚举变量实质是一个与枚举类型同名普通类的静态常量对象,所有枚举常量都通过静态代码块进行初始化实例赋值。如:public enum Status { START("a"), ...原创 2018-08-19 10:23:04 · 331 阅读 · 0 评论 -
List接口与ArrayList、LinkedList、Vector类
1.List是集合列表接口,ArrayList和LinkedList都是List接口的实现类,表示一种有序的集合,其中的元素可以重复。2.ArrayList的动态扩容机制当ArrayList中增加一个新的对象时,Java会检查ArrayList确保现有的数组有足够的容量来存储这个新对象,如果没有足够容量就新建一个更大长度的数组,旧的数组使用Array.copyOf方法复制到新数组中,现有的...原创 2018-08-20 11:12:43 · 214 阅读 · 0 评论 -
Java 基础知识汇总系列(三)
1.Java创建对象的几种方式(1)使用new关键字(调用构造方法);(2)使用Class类的newInstance方法(调用构造方法);(3)使用Constructor类的newInstance方法(调用构造方法);(4)使用clone方法(不调用构造方法);(5)使用对象反序列化方法(不调用构造方法);2.抽象类和接口的区别抽象类:抽象类不能创建实例对象;含...原创 2018-08-20 10:45:51 · 139 阅读 · 0 评论 -
List、Map、Set、Queue的区别与关系
List、Set、Queue 都继承自 Collection 接口,而 Map 则不是(继承自 Object),所以容器类有两个根接口,分别是 Collection 和 Map,Collection 表示单个元素的集合,Map 表示键值对的集合。List 的主要特点就是有序性和元素可空性,他维护了元素的特定顺序,其主要实现类有 ArrayList 和 LinkList。ArrayList 底层...原创 2018-08-20 15:59:58 · 5867 阅读 · 0 评论 -
Java类加载初始化顺序
示例如下:public class Example { public static void main(String[] args) { Child c = new Child(); }}class Base { static { System.out.println("基类静态代码块"); } { ...原创 2019-03-12 14:39:37 · 217 阅读 · 0 评论 -
Java内部类知识点汇总
1.Java常见内部类及其特征静态内部类,成员内部类,方法内部类,匿名内部类静态内部类:静态内部类是定义在另一个类内部的用static修饰class的类,静态内部类不需要依赖外部类实例,且无法使用其外部类的非static属性或方法。成员内部类:成员内部类是定义在外部类中的类,是最普通的内部类,可以看作是外部类的成员,可以无条件访问外部类的所有成员属性和成员方法(包括privat...原创 2018-08-19 09:26:32 · 629 阅读 · 0 评论 -
Java自动装箱与自动拆箱
1.什么是自动装箱与自动拆箱自动装箱是指Java将基本数据类型转换为对应的引用数据类型,如将int转换为Integer类型;反之将引用数据类型转换为基本数据类型的操作叫自动拆箱。因为这里的拆箱与装箱都不是Java不是人为的,所以加上自动二字。Integer a = 1; //自动装箱int b = a; //自动拆箱2.自动拆箱与自动装箱的实现过...原创 2018-08-13 22:12:25 · 380 阅读 · 0 评论 -
Java基础知识汇总系列(一)
1..数据类型2.基本数据类型有8种,分别是boolean、byte、short、int、long、float、double、char。3.Java是面向对象的语言,但基本数据类型不是对象,但考虑到其在编程中使用的频率极高,所以将基本数据类型设计为非对象类型,将其存储在栈中,使其存取速度要快于存放在堆中的对应包装类的实例对象。4.所有的基本数据类型都使用了final修饰,因此无法继...原创 2018-08-13 21:21:13 · 272 阅读 · 0 评论 -
Java动态加载类
在讲解动态加载类之前呢,我们先弄清楚为什么要动态加载类,静态加载不行吗?我们可以看下面的实例:我在文件夹里写了Office.java 类和 Word.java类,如下:Office.javaclass Office{ public static void main(String[] args){ if(args[0].equals("Word")){ Word w = new Word...原创 2018-04-21 09:45:29 · 12038 阅读 · 4 评论 -
软件开发模型介绍(一)
1.增量模型增量模型又称为渐增模型,把待开发的软件系统模块化,将每个模块作为一个增量组件,分批次地分析、设计、编码和测试这些组件,开发人员不需要一次性的把整个软件产品提交给用户,而是可以分批次地进行提交。增量模型的特点:1.将待开发的软件系统模块化,分批次的提交软件产品,用户可以及时了解到软件项目的进展。2.以组件为单位进行开发降低了软件开发的风险,一个开发周期内的错误不会影响到整个系统。3.开发...原创 2018-06-15 23:15:12 · 1348 阅读 · 0 评论 -
HTTP Session和Cookie工作原理
session的工作原理 术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。 session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。有时候我们可以看到这样的话“在...转载 2018-06-23 09:19:29 · 232 阅读 · 0 评论 -
软件开发模型介绍(二)
1.螺旋模型螺旋模型兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控,引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止。该模型很大程度上是一种风险驱动的方法体系,因为在每次迭代前,都必须先进行风险评估,适合大型的昂贵的系统级的软件应用。图中的四个象限代表了四个活动:1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;2)风险分析:分析评估所选方案,考虑如何...原创 2018-06-17 23:55:19 · 552 阅读 · 0 评论 -
Linux目录结构说明
/sbin:该目录是系统中最主要的可执行文件的存放位置。该目录包含着所有的标准命令和应用程序,一般用户和超级用户都会使用其中的命令,如ls,su,mount等。/dev:该目录包含了Linux系统中使用的所有外部设备,实际上是访问这些外部设备的端口。用户可以访问这些外部设备,与访问一个文件或目录没有区别。/bin:该目录下存放的是系统启动时要用到的程序,当用grub引导Linux时,会用到这里的一...原创 2018-06-30 22:35:05 · 254 阅读 · 0 评论 -
Java集合部分知识
集合中的接口与类之间的关系如下图所示:其中蓝色标注的为接口,红色标注的为类。具体如下:1.Set接口表示的集合不能包含重复的元素;2.HashSet:元素存放在Hash表中,元素数量较大时,访问效率比线性列表快;3.TreeSet:采用有序树存储集合中的元素,元素按照升序排序;4.LinkedHashSet:采用Hash表和链表结合的结构存储元素,既能保证元素的顺序,存...原创 2018-07-23 20:26:56 · 276 阅读 · 0 评论 -
Java基础知识汇总系列(二)
1.String,StringBuffer,StringBuilder三者的区别String是字符串常量,内容创建后不可变,每一次修改内容,都会在内存中new一个对象出来,然后指向这个新的对象;StringBuffer和StringBuilder是字符串变量,内容创建后可以变化;在使用StringBuffer和StringBuilder时可以适当考虑一下初始化大小,通过减少扩容次数来提高代码运...原创 2018-08-16 20:06:45 · 218 阅读 · 0 评论 -
浅见equals()与hashCode()之间的关系
1.Java对于equals()方法和hashCode()方法的规定如果两个对象equals()方法相等则它们的hashCode返回值一定要相同,如果两个对象的hashCode返回值相同,但它们的equals()方法不一定相等。两个对象的hashCode()返回值相等不能判断这两个对象是相等的,但两个对象的hashcode()返回值不相等则可以判定两个对象一定不相等。2.hashCod...原创 2018-08-18 10:43:21 · 14841 阅读 · 0 评论 -
Java异常相关知识点归纳
1.Java中异常的种类Throwable是所有异常的父类,有两个直接子类Error和Exception。Error表示系统错误,通常不能预期和恢复(如JVM崩溃,内存不足等),除退出运行外没有其他方法,是由Java虚拟机抛出的。Exception又分为被检查型异常和运行时异常(不受检查的异常)2.被检查异常与运行时异常之间的区别被检查的异常应该用try-catch块代码处理或...原创 2018-08-18 11:18:58 · 1141 阅读 · 0 评论 -
Java中sleep和wait的区别,锁池与等待池的区别,notify和notifyAll的区别
sleep() 方法使当前线程进入停滞状态(阻塞当前线程),让出 CUP 的使用,目的是不让当前线程独自霸占该进程所获的 CPU 资源。该方法是 Thread 类的静态方法,当在一个 synchronized 块中调用 sleep() 方法时,线程虽然休眠了,但是其占用的锁并没有被释放;当 sleep() 休眠时间期满后,该线程不一定会立即执行,因为其它线程可能正在运行而且没有被调度为放弃执行,除...原创 2018-09-25 20:19:09 · 865 阅读 · 0 评论