java基础
Deniece2017
这个作者很懒,什么都没留下…
展开
-
多态的实现条件
多态分为编译时多态和运行时多态。其中编辑时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的函数,通过编辑之后会变成两个不同的函数,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是我们所说的多态性。Java实现多态有三个必要条件:继承、重写、向上转型。继承:在多态中必须存在有继承关系的子类和父类。重写:子类对父类中某些方法进行重新定义...转载 2019-02-19 14:00:27 · 2267 阅读 · 0 评论 -
Java 最常见 200+ 面试题全解析:面试必备
序言在本篇文章开始之前,我想先来回答一个问题:我为什么要写这样一篇关于面试的文章?原因有三个:第一,我想为每一个为梦想时刻准备着的“有心人”,尽一份自己的力量,提供一份高度精华的 Java 面试清单;第二,目前市面上的面试题不是答案不准确就是内容覆盖面太窄,所以提供一份经典而又准确的面试题是非常有必要的;第三,本文会对部分面试题提供详细解读和代码案例,让读者知其然并知其所以然,从而学到更多的知...转载 2019-06-24 22:18:34 · 139 阅读 · 0 评论 -
CountDownLatch的原理
上一篇通过研究ReentrantLock分析了AQS的独占功能,本文将通过同样是AQS子类的CountDownLatch分析AQS的共享功能。有了前文研究独占功能的基础,再研究共享锁就简单多了。出处:https://www.jianshu.com/p/7c7a5df5bda6?ref=myreadCountDownLatch的使用CountDownLatch是同步工具类之一,可以指定一...转载 2019-06-25 06:14:34 · 77 阅读 · 0 评论 -
二叉树浅析
目录1、树 树的常用术语 2、二叉树 3、查找节点 4、插入节点 5、遍历树 6、查找最大值和最小值 7、删除节点 ①、删除没有子节点的节点 ②、删除有一个子节点的节点 ③、删除有两个子节点的节点 ④、删除有必要吗? 8、二叉树的效率 9、用数组表示树 10、完整的BinaryTree代码 11、哈夫曼(Huffman)编码...转载 2019-03-28 17:21:41 · 168 阅读 · 0 评论 -
常见Java基础笔试/面试之五
基础篇基本功面向对象特征封装,继承,多态和抽象 封装 封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改 变它内部的数据。在 Java 当中,有 3 种修饰符: public, private 和 protected。每一种修饰符 给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。 下面列出了使用封装的一些好处: 通过隐藏对象的...转载 2019-03-08 09:29:58 · 188 阅读 · 0 评论 -
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
阅读前提:本文分析的是源码,所以至少读者要熟悉它们的接口使用,同时,对于并发,读者至少要知道 CAS、ReentrantLock、UNSAFE 操作这几个基本的知识,文中不会对这些知识进行介绍。Java8 用到了红黑树,不过本文不会进行展开,感兴趣的读者请自行查找相关资料。Java7 HashMapHashMap 是最简单的,一来我们非常熟悉,二来就是它不支持并发操作,所以源码也非常简单。...转载 2019-03-04 17:23:03 · 96 阅读 · 0 评论 -
WEB项目从浏览器发起交易响应缓慢,简述从哪些方面入手分析
1、查看网络的ping值 ,网络使用情况(主查,服务器到核心交换机的ping 值,当前客户端和核心交换机的ping 值,小于1正常,大于10说明你核心交换机有大负载)。2、查看服务器CPU占用率(主查,服务器的CPU占用率,大于80%说明服务器CPU并发不够)3、查看服务器的内存(内存空闲小于10%时,完全靠硬盘的读写来支撑,肯定慢,这种情况下硬盘寿命也短)4、查看你的数据库占用率(占...转载 2019-02-26 10:10:01 · 1200 阅读 · 0 评论 -
get和post的区别
POST和GET都是向服务器提交数据,并且都会从服务器获取数据。区别:1、传送方式:get通过地址栏传输,post通过报文传输。2、传送长度:get参数有长度限制(受限于url长度),而post无限制3、GET和POST还有一个重大区别,简单的说:GET产生一个TCP数据包;POST产生两个TCP数据包长的说:对于GET方式的请求,浏览器会把http header和da...转载 2019-03-01 16:53:14 · 145 阅读 · 0 评论 -
JVM加载Class的原理机制
在面试java工程师的时候,这道题经常被问到,故需特别注意。 Java中的所有类,都需要由类加载器装载到JVM中才能运行。类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中。在写程序的时候,我们几乎不需要关心类的加载,因为这些都是隐式装载的,除非我们有特殊的用法,像是反射,就需要显式的加载所需要的类。 Java类的加载是动态的,它并不会一次性将所有...转载 2019-02-25 18:13:51 · 733 阅读 · 0 评论 -
转发和重定向的区别
转发:request.getRequestDispatcher("success.jsp").forward(request,response);重定向response.sendRedirect("success.jsp");1.转发在服务器端完成的;重定向是在客户端完成的★2.转发的速度快;重定向速度慢3.转发的是同一次请求;重定向是两次不同请求★4.转发不会执行转发后的代码;重...转载 2019-02-25 16:41:11 · 68 阅读 · 0 评论 -
Http长连接和短连接的区别
1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。 IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠地传递数据包,使得网络上接收端收到发送端所发出的所有包,并且顺序与发送顺序一致。TCP协议是可靠的、面向连接的。2. 如何理解HTTP协议是无状态的...转载 2019-02-25 15:09:44 · 3302 阅读 · 0 评论 -
Java技术之AQS详解
AQS是AbstractQueuedSynchronizer的简称。AQS提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架,如下图所示。AQS为一系列同步器依赖于一个单独的原子变量(state)的同步器提供了一个非常有用的基础。子类们必须定义改变state变量的protected方法,这些方法定义了state是如何被获取或释放的。鉴于此,本类中的其他方法执行所有的排队和阻塞机制。子类...转载 2019-07-05 14:45:20 · 126 阅读 · 0 评论