
Java
文章平均质量分 69
张=小红=
这个作者很懒,什么都没留下…
展开
-
HashMap攻略要点
HashMap攻略要点本文以JDK1.8为基础,JDK1.7仅做简略提及。HashMap的底层结构和原理?JDK 1.7 中 HashMap 的底层数据结构是数组 + 链表,使用 Entry 类存储 Key 和 Value;JDK 1.8 中 HashMap 的底层数据结构是数组 + 链表/红黑树,使用 Node 类存储 Key 和 Value。如何解决哈希冲突?因为哈希冲突是不可避免的,很有可能两个元素计算得出的 index 是相同的,那么如何解决哈希冲突呢?拉链法。也就是把 hash 后值相原创 2021-08-11 00:02:45 · 347 阅读 · 0 评论 -
Servlet详细解析
首先先说一下为什么要学Servlet。起因是在学习Spring MVC的时候,了解到Servlet是其核心,对其原理不了解将会对学习Spring MVC造成障碍,因此决定书写这篇文章用来学习。1、什么是ServletServlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类原创 2021-05-22 13:35:33 · 614 阅读 · 1 评论 -
Java中IO流使用
1. 常用文件操作创建文件public void create01(){ //1.根据路径构建一个File对象(最常用) String filePath = "d:\\news1.txt"; File file = new File(filePath); try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); }}publi原创 2021-05-03 15:46:15 · 117 阅读 · 1 评论 -
Java手动装箱和自动装箱解析
1. 装箱拆箱的基本介绍Java中本身具有八种基本数据类型,他们分别是:基本数据类型包装类booleanBooleancharCharacterbyteByteshortShortintIntegerlongLongfloatFloatdoubleDouble上面的表格我们可以注意到,八种基本数据类型对应都有自己的包装类。那么,什么是包装类呢?由于基本数据类型本身并不是一个类,执行一些常用操作的时候往往需要编写方法完成原创 2021-04-17 21:03:35 · 813 阅读 · 0 评论 -
HashSet扩容机制讲解
1. HashSet当我们 new 一个 HashSet 的时候,查看其源码,会发现一件很有意思的事情:HashSet 的底层竟然是 HashMap !private transient HashMap<E,Object> map;public HashSet() { map = new HashMap<>();//new 一个 HashMap对象}public HashSet(int initialCapacity) { map = new Hash原创 2021-04-12 00:17:30 · 2484 阅读 · 3 评论 -
List接口实现子类的扩容机制讲解
本文选取 List 接口实现子类中最常用的三个类 ArrayList、Vector 和 LinkedList 进行讲解1. ArrayList1.1 扩容机制ArrayList 中维护了一个Object类型的数组 elementData,该数组用于存放数据transient Object[] elementData;当 ArrayList 创建对象时,如果使用的是无参构造器,则初始 elementData 容量为0。第一次添加元素到数组中,则扩容 elementData为10。如果需要再原创 2021-04-11 14:35:04 · 229 阅读 · 0 评论 -
Java中的抽象类和抽象方法
1. 基础介绍当父类的一些方法不能确定时,可以用 abstract 关键字来修饰该方法,这个方法就是抽象方法。用 abstract 来修饰该类就是抽象类,抽象类的作用是设计者设计好后,让子类继承并实现抽象类。抽象类,是考官比较爱问的知识点,在框架和设计模式使用较多。2. 抽象类使用细节抽象类不能被实例化;抽象类中不一定包含 abstract 方法,也就是说,抽象类可以没有 abstract 方法;如果一个类中包含 abstract 方法,则该类必须声明为抽象类;abstract原创 2021-04-04 23:43:29 · 448 阅读 · 1 评论 -
Java中的关键字static和final
1. static 关键字1.1 类变量类变量也叫静态变量/静态属性,是该类的所有对象共享的变量,任何一个该类的对象去访问它的时候,取到的都是相同的值;同样,任何一个该类的对象去修改它的时候,修改的也是同一个变量。简单来说,就是共享变量。class A{ public static int num = 10;// 类变量/静态变量/静态属性}类变量的一些特性:类变量可以通过 类名.类变量名(推荐) 或者 对象名.类变量名 来访问;类变量是该类的所有对象共享的,而实例变量(非类变量原创 2021-04-04 17:06:27 · 242 阅读 · 0 评论 -
Java四种内部类详解
1. 内部类基本介绍一个类的内部又完整地嵌套了另一个类结构,我们称这个被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。内部类作为类的第五大成员(五大成员为:属性、方法、构造器、代码块、内部类),内部类的最大特点是可以直接访问外部类的私有属性,并且可以体现类与类之间的包含关系。2. 内部类的分类如果定义类在局部位置(方法中/代码块):(1)局部内部类(2)匿名内部类定义在成员位置:(1)成员内部类(2)静态内部类下面我们根据内部类定义位置进行详细介原创 2021-03-30 22:07:05 · 192 阅读 · 0 评论 -
Java接口一文解析
Java接口1.接口介绍接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合。接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口有助于我们统一规范。在接口中指定统一的方法名和属性名,让类实现方法,能规范化代码,减少不统一的方法头带来的损耗。public interface UsbInterface {//接口,用于指定规范 //规定接口的相关方法 public void start(); public原创 2021-03-30 14:01:52 · 176 阅读 · 0 评论 -
Java中==和equals的区别
1.比较运算符==(1)== 既可以判断基本类型,也可以判断引用类型(2)判断基本类型如果 == 两边都是基本类型时,则判断两个基本类型的值是否相等。基本类型包括byte,short,int,long,float,double,char以及booleanpublic class equals_ { public static void main(String[] args) { double n1 = 10.0; double n2 = 20.0;原创 2021-03-28 00:08:54 · 88 阅读 · 1 评论 -
计算机基础——进制转换(基本功)
1.前言进制转换是计算机基础中十分基础的一环。学好进制转换对我们操作位运算符,熟悉编程背后的内存地址有着重要作用。下面我们分成几个部分分层次介绍进制转换,由易到难,让读者更能体会到进制转换背后的原理。2.进制介绍在计算机中,为了区别不同进制,通常用前缀和后缀来区分数值的进制。进制英文范围前缀后缀二进制Binary0-10B(或0b)B八进制Octal0-70O(或0)O十进制Decimal0-9无D十六进制Hexadecimal原创 2021-03-26 00:04:58 · 2386 阅读 · 0 评论 -
多态的应用实际举例
多态的应用1.多态数组:数组的定义类型为父类类型,里面保存的实际元素类型为子类类型2.多态参数:方法定义的形参类型为父类类型,实参允许为子类类型public class Homework13 { public static void main(String[] args) { Student student = new Student("小明", '男', 15, "00023102"); student.printInfo(); System原创 2021-03-25 14:48:07 · 1029 阅读 · 0 评论 -
Java多态详细解析
1.多态基本介绍首先我们要搞清楚几个基本问题,什么是多态?多态是用来干什么的?多态现实意义是什么?(1)什么是多态?同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。(2)多态是用来干什么的?封装、继承、多态是面向对象编程的三大特性。我们知道,封装可以隐藏实现细节,使得代码可以模块化;继承可以扩展已经编写好的代码类。他们的主要目的都是为了——代码重用。而多态除了解决代码复用性问题之外,还可以解决项目中紧耦合的问题(模块之间关系太紧密,存在相互调用。),提高程序的可扩展性原创 2021-03-22 23:47:34 · 240 阅读 · 0 评论 -
Java访问控制修饰符
1.基本介绍Java提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围):公开级别:用public修饰,对外公开受保护级别:用protected修饰,对子类和同一个包中的类公开默认级别:没有修饰符号,向同一个包的类公开私有级别:用private修饰,只有类本身可以访问,不对外公开2. 四种访问控制修饰符的访问范围访问级别访问控制修饰符同类同包子类不同包公开public√√√√受保护protected√√√×默原创 2021-03-22 00:35:24 · 800 阅读 · 0 评论 -
八皇后(Java实现)
1.问题介绍八皇后问题是一个古老而著名的问题,是回溯算法和递归调用的典型案例。八皇后难题是要将八个皇后(Queen)放在棋盘上,任何两个皇后都不能互相攻击(即没有任意两个皇后是在同一行、同一列或者同一条对角线上),问一共有多少种摆法。2.思路分析第一个皇后先放在第一行第一列第二个皇后放在第二行第一列,然后判断能否在该位置放皇后,如果不可以,则继续放下一列,直至找到一个合适的位置继续放置第三个皇后,还是第一列、第二列…直到第8个皇后也能放在一个不能相互攻击的位置,就找到了一个正确解。当得到一个正原创 2021-03-17 11:29:16 · 2708 阅读 · 0 评论 -
Java基本特性
Java基本特性1. Java 和 C++的区别?我知道很多人没学过 C++,但是面试官就是没事喜欢拿咱们 Java 和 C++ 比呀!没办法!!!就算没学过 C++,也要记下来!都是面向对象的语言,都支持封装、继承和多态Java 不提供指针来直接访问内存,程序内存更加安全Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。Java 有自动内存管理垃圾回收机制(GC),不需要程序员手动释放无用内存在 C 语言中,字符串或字符数组最后都会有一个原创 2021-02-19 20:20:24 · 162 阅读 · 0 评论