
Java基础知识
Longtermevolution
人生不要太匆匆,不急,慢慢来吧
展开
-
java基础知识总结 - 导航
列出一个java基础知识的导航,边学习边记录,方便回顾复习。现在准备使用这个格式:https://www.liaoxuefeng.com/wiki/1252599548343744/1306580867874849序号 总目录 子目录1 子目录2 java概述 基础语法 数据类型 编...原创 2020-04-03 16:07:28 · 914 阅读 · 0 评论 -
java中的枚举类型 Enum
参考文章:https://zhuanlan.zhihu.com/p/512967401、枚举类型能实现枚举定义常量,并且可以定义常量的格式(即可以定义多个具有一定数据结构的变量); 自动对枚举的多个常量编号;比如:定义一个指令的枚举类,枚举7种指令,每个指令包含指令目标target、指令动作action。public enum CommandType { CPU_LOAD("cpu", "load"), DISK_FILL("disk", "fill"), .原创 2020-09-04 10:51:07 · 235 阅读 · 0 评论 -
关于hashset
参考文章:https://zhuanlan.zhihu.com/p/290212761、Set接口存放元素的无序性讨。Set接口下面有些接口是可以进行对元素排序存储的,比如:Set中对插入顺序做了保留的是LinkedHashSet,当对一个LinkedHashSet对象做for(:)遍历的时候,会按照插入顺序遍历元素。2、 HashSet、TreeSet的底层本质上是将HashMap、TreeMap进行了重用。...原创 2020-09-01 10:06:52 · 134 阅读 · 0 评论 -
http和websocket的区别
转:1.https://zhuanlan.zhihu.com/p/403814712.https://zhuanlan.zhihu.com/p/95622141原创 2020-08-20 15:24:38 · 183 阅读 · 0 评论 -
http和https的区别
转:https://blog.youkuaiyun.com/qq_38289815/article/details/80969419原创 2020-08-20 15:02:06 · 186 阅读 · 1 评论 -
java 多态 -- 三定义两方法
目录1、多态口诀 - 三定义两方法2、具体内容1、多态口诀 - 三定义两方法三个定义父类定义子类构建; 接口定义实现类构建; 抽象类定义实体类构建。两个方法方法重载; 方法重写。2、具体内容方法重载:一个类中重载方法。方法名相同,参数不同,功能不同。方法重写:子类重写父类方法,重写方法体。方法名、参数相同。功能不同。...原创 2020-08-14 16:35:04 · 249 阅读 · 0 评论 -
java反射的原理和意义
目录前言1、java反射的具体功能2、Class类、Class对象前言反射的关键:在运行时候就能动态地获悉(加载)未曾编译的类,实现java的动态性。基础:首先需要知道在java运行时,那些类是怎么可以被运用的呢?是因为JVM会对类的字节码文件进行类加载,形成类的相关信息(属性、方法、引用对象等)并且保存在相应的方法区,这个过程可以简称为“类编译”。即,java在运行时候可以使用的类大多数都是经过编译期的类编译的。问题:有时候,java程序在运行时候需要使用未曾在本地编译过的类,原创 2020-08-10 10:25:18 · 488 阅读 · 0 评论 -
java中的.class文件的生存周期是怎样的(即类加载到类释放的过程)
目录1、一个类的生命周期2、主动引用和被动引用3、什么时候类(.class)被释放?1、一个类的生命周期字节码文件(.calss文件)从被JVM开始执行到释放,需要经历如下过程:一个java类的完整的生命周期会经历加载、连接、初始化、使用、和卸载五个阶段,当然也有在加载或者连接之后没有被初始化就直接被使用的情况,如图所示:java的类加载后且当使用阶段完成之后,java类就进入了卸载阶段,也就是所谓的释放zhi。2、主动引用和被动引用被使用一般分为两种情况:.原创 2020-08-07 10:38:48 · 654 阅读 · 0 评论 -
java 中作为根节点
GC Roots根对象摘自《深入理解Java虚拟机》在Java语言中,可作为GC Root的对象包括以下几种:虚拟机栈(栈桢中本地变量表)中引用的对象 方法区中类静属性引用的对象 方法区中常量引用的对象 本地方法栈中JNI(即一般说的Navite方法)中引用的对象...原创 2020-08-06 21:59:37 · 422 阅读 · 0 评论 -
Java 一个对象什么时候被回收
在 Java 语言中,可作为 GC Roots 的对象包括下面几种:虚拟机栈(栈帧中的本地变量表)中引用的对象。 方法区中类静态属性引用的对象。 方法区中常量引用的对象。 本地方法栈中 JNI(即一般说的 Native 方法)引用的对象。...原创 2020-08-06 21:54:40 · 1653 阅读 · 0 评论 -
java 设计模式总结 - 简介
引言:在简历上写了熟悉常见设计模式,那总得会点儿常见的问题吧,????目录1、常见设计模式简介2、关于设计模式面试题的汇总1、常见设计模式简介菜鸟教程:https://www.runoob.com/design-pattern/factory-pattern.html2、关于设计模式面试题的汇总参考1:http://www.srcmini.com/33175.html...原创 2020-08-05 14:29:24 · 155 阅读 · 0 评论 -
从代码执行的角度理解JVM -- 各个部件及其之间的协作
参考1(这个相对完整,可以直接进去看详细),本文主要基于这篇文章进行个人的理解。目录前言:1、一段代码如何通过JVM在一台计算机上执行前言:首先需要知道JVM是一个虚拟机。而虚拟机呢,可以安装操作系统,然后通过操作系统的指令和底层硬件打交道。JVM是Java Virtual Machine(Java虚拟机)的缩写。既然是虚拟机,则需要建立在操作系统之上。JVM有很多种,目前被运用最广泛的为HOTSPOT,本文以HOTSPOT虚拟机来讲,所以接下来的JVM均为HOTSPOT。.原创 2020-08-02 16:13:11 · 236 阅读 · 0 评论 -
Redis中两种持久化机制RDB和AOF(面试常问,工作常用)
目录1、持久化流程2、RDB(Redis DataBase)3、AOF(Append Only File)1、持久化流程持久化一般来说就是指将数据写入磁盘永久保存(持久化 -- 写磁盘)。以下为持久化的主要流程:(1)客户发送数据。客户端向服务端发送写操作(数据在客户端的内存中)。(2)服务器接收数据。数据库服务端接收到写请求的数据(数据在服务端的内存中)。(3)服务器写数据(缓冲区)。服务端调用write这个系统调用,将数据往磁盘上写(数据在系统内存的缓冲区中)。(4)原创 2020-07-31 21:44:22 · 269 阅读 · 0 评论 -
Java中final、finally和finalize的区别
目录final - 修饰符(关键字)finally - 异常处理finalize - 方法名final - 修饰符(关键字)修饰类:类不能再派生。所以一个类不能同时被abstract和final声明; 修饰变量和方法:不能再被更改。如果是变量的话需要初始化初始值。finally - 异常处理finally是在异常处理时提供finally块来执行任何清除操作。不管有没有异常被抛出、捕获,finally块都会被执行。try块中的内容是在无异常时执行到结束。 catch.原创 2020-07-31 21:23:35 · 142 阅读 · 0 评论 -
HTTP get和post方法总结
目录HTTP(超文本传输协议(HTTP))能干啥HTTP常用两种请求方法:GET、POSTGET1、GET方法特性2、有关GET请求的其他注释3、注意POST1、有关POST请求的一些其他注释2、注意区别其他HTTP方法HTTP(超文本传输协议(HTTP))能干啥目的:保证客户机与服务器之间的通信。 工作方式:客户机与服务器之间的请求-应答协议。web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。举例:客户端(浏览器)向服务器原创 2020-07-30 18:11:32 · 465 阅读 · 0 评论 -
设计模式 - 装饰模式
目录引言示例代码总结引言装饰模式。顾名思义,装饰是什么?就是对某个东西进行修饰,从而使得某个东西具有更多的特性。对应在java中,装饰的东西常常是一个类,对其进行装饰的目的是为了让它具有更多的属性和方法。然而实现这个目的却需要一种合理的方式。一般的思路是什么呢?假设有一个接口Plant,该接口有一个实现类Tree。普通的树结的果子就是果子,但是有可能有些树结的果子是金子(。。。),比如摇钱树。实现树结出金子的方案有以下3种:1、修改实现类Tree的方法。直接修改方法原创 2020-07-24 14:47:20 · 204 阅读 · 0 评论 -
java中直接赋字符串和new String的区别
这个主要用来考察JVM中常量池、堆、方法区https://www.cnblogs.com/guozhenqiang/p/5633269.html原创 2020-07-21 18:02:36 · 136 阅读 · 0 评论 -
java List删除元素
目录1、正序遍历,调用List接口Remove()方法2、反序遍历,调用List接口Remove()方法3、使用迭代器Iterator(推荐)4、复制给新的List前言:java 中List删除元素主要有四种方式:正序遍历,调用List接口Remove()方法; 反序遍历,调用List接口Remove()方法; 使用迭代器Iterator(推荐); 复制给新的List参考文章:https://www.cnblogs.com/yanl55555/p/12541876.html原创 2020-07-21 17:44:18 · 4651 阅读 · 1 评论 -
RIP协议怎么解决的环路问题
目录问题产生解决问题产生场景:当A路由器一侧的X网络发生故障,则A路由器收到故障信息,并把X网络设置为不可达,等待更新周期来通知相邻的B路由器。但是,如果相邻的B路由器的更新周期先来了,则A路由器讲从B路由器那学习了到达X网络的路由,就是错误路由,因为此时的X网络已经损坏,而A路由器却在自己的路由表内增加了一条经过B路由器到达X网络的路由。然后A路由器还会继续把该错误路由通告给B路由器,B路由器更新路由表,认为到达X网络须经过A路由,然后继续通知相邻的路由器,至此路由环路形成,A原创 2020-07-20 18:33:42 · 3217 阅读 · 0 评论 -
详解synchronized与Lock的区别与使用
改天自己总结一下,0715Lock原理和两者之间区别参考文章https://blog.youkuaiyun.com/u012403290/article/details/64910926?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCo...原创 2020-07-15 17:41:13 · 258 阅读 · 0 评论 -
ConcurrentHashMap源码解析 1.8
目录1、介绍1)ConcurrentHashMap跟HashMap,HashTable的对比2)ConcurrentHashMap原理概览2、具体源码1)ConcurrentHashMap的扩容详解(着重看2) 同步机制3) 链表转换为红黑树的过程3、总结前言:ConcurrentHashMap是HashMap的线程安全版本,内部使用了数组+链表+红黑树的结构来存储数据,相对于同样线程安全的Hashtable来说,它在效率方面有很大的提升,因此多线程环境下更多的是使用C.原创 2020-07-15 16:48:36 · 181 阅读 · 0 评论 -
java集合框架
目录1、框架2、使用3、关于hashMap的问题4、关于ConcurrentHashMap的问题1、框架2、使用3、关于hashMap的问题参考之前的hashMap总结。4、关于ConcurrentHashMap的问题参考文章:ConcurrentHashMap源码分析...原创 2020-07-15 14:56:13 · 113 阅读 · 0 评论 -
Spring MVC 简介及工作流程
目录1、简介2、工作流程及原理3、相关组件说明4、疑问与思考1、简介SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架。使用了MVC架构模式的思想,将web层进行职责解耦,并管理应用所需对象的生命周期,为简化日常开发,提供了很大便利。SpringMVC提供了:总开关DispatcherServlet; 请求处理映射器(Handler Mapping) 处理适配器(Handler Adapter) 视图解析器(View原创 2020-07-15 11:08:51 · 211 阅读 · 0 评论 -
Spring - IoC
目录1、概念2、为什么要通过配置来做对象的建立及其依赖关系呢?3、怎么实现对象及其依赖关系的创建呢?4、控制反转IoC有啥好处?从今天开始,阅读资料,整理Spring框架的知识。Spring框架:截止目前Java最流行的框架,最主要的思想是控制反转(IoC, inversion of Control)和面向切面(AOP, Aspesct Oriented Programming).这一篇主要了解控制反转IoC。1、概念IoC本质是一个容器。Spring通过IoC这个容器,原创 2020-07-02 17:10:23 · 150 阅读 · 0 评论 -
迭代器遍历List、Map、Set
参考:https://www.cnblogs.com/hugos/p/Iterator.html原创 2020-06-05 14:12:03 · 138 阅读 · 0 评论 -
java基础 - 集合
目录一、集合的框架1、Set为什么是无序不可重复的?2、List为什么是有序可重复的?3、Map集合一、集合的框架关于这张图的几点:1、Set为什么是无序不可重复的?答:Set集合的主要特点是:存储无序、元素不重复。啥意思呢?可以理解为,向一个瓶子里面扔东西,这些东西没有记号标记它是第几个放进去的,但是有一点就是这个瓶子里面不会有重样的东西。细...原创 2020-04-22 18:24:45 · 196 阅读 · 0 评论 -
Java Integer类
大部分来自:http://c.biancheng.net/view/890.html目录1、Integer 类的构造方法2、Integer 类的常用方法3、例子Integer 类的常量1、Integer 类的构造方法Integer 类中的构造方法有以下两个:首先是构造一个新分配的Integer对象,然后表示的值不一样。Integer(int value):构造...原创 2020-04-20 14:45:43 · 248 阅读 · 0 评论 -
j每日基础 - java 设计模式导航(未完持续更新)
前言仅供个人学习回顾的方便,有不得当的地方,还请海涵,如有错误,及时修正。看到一句话,说的挺好的:软件设计模式只是一个引导,在实际的软件开发中,必须根据具体的需求来选择:对于简单的程序,可能写一个简单的算法要比引入某种设计模式更加容易; 对于大型项目开发或者框架设计,用设计模式来组织代码显然更好。框架图(图来自https://www.cnblogs.com/p...原创 2020-04-17 16:27:47 · 188 阅读 · 0 评论 -
每日java基础 - 单例模式
目录一、单例模式的定义和理解1、1单例模式及其单线程环境下的经典实现1、介绍一下类图2、单线程下单例模式的两种实现方式1、2多线程下的单例模式一、单例模式的定义和理解定义:某个类只有一个实例,并且提供一个全局访问点。(类 -- 一个实例 -- 一个全局访问点)类型:创建型模式理解:整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比...原创 2020-04-17 16:27:15 · 237 阅读 · 0 评论 -
java - 广度优先搜索 - 遍历树 - 持续更新
目录广度优先搜索算法(Breadth-First Search,BFS)1、递归实现BFS遍历树2、非递归实现BFS遍历树树的定义参见:https://blog.youkuaiyun.com/Longtermevolution/article/details/105395558广度优先搜索算法(Breadth-First Search,BFS)BFS是从根节点开始,沿着树的宽度遍历...原创 2020-04-09 11:40:46 · 301 阅读 · 1 评论 -
java实现-深度优先搜索
定义DFS的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标解,那就返回到上一个节点,然后从另一条路开始走到底。DFS适合此类题目:给定初始状态跟目标状态,要求判断从初始状态到目标状态是否有解。...原创 2020-04-09 11:35:16 · 5674 阅读 · 0 评论 -
Java Scanner类
目录1、读取字符串next():nextLine():2、读取int 或 float 类型的数据java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。参考文章:https://www.runoob.com/java/java-scanner-class.html基本格式:1、读取字符串可以使用n...原创 2020-04-08 10:39:36 · 137 阅读 · 0 评论 -
java集合 - list
目录一、集合定义二、java中的集合Collection2.1 list2.1.1 ArrayList:2.1.2 LinkedList2.1.3 ArrayList和LinkedList对比2.1.4 创建list2.1.5 遍历List2.1.6 List和Array(数组)转换一、集合定义集合:在Java中,如果一个Java对象可以在内部持有若干其...原创 2020-04-03 12:34:36 · 229 阅读 · 0 评论 -
java访问修饰符号 - 作用域
1、分类private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类) default (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。 protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。 public : 对所有类可见。使用对象:类、接口、变量、...原创 2020-04-02 15:41:45 · 230 阅读 · 0 评论 -
抽象类和接口总结
目录一、抽象类1、为啥需要抽象类?2、抽象类有什么特征?3、面向抽象类编程二、接口1、为啥需要接口?2、实现接口3、接口可以继承接口4、继承关系5、接口中的默认方法 - default抽象类和接口的对比一、抽象类本质上是定义接口规范:即规定高层类的接口,从而保证所有子类都有相同的接口实现,这样,多态就能发挥出威力。1、为啥需要抽象类?抽象...原创 2020-04-02 15:27:44 · 402 阅读 · 0 评论 -
hashMap总结
目录hashMap1、haspmap扩容机制2、hashmap为啥会有线程安全问题?3、hashMap、hashTable、ConcurrentHashMap对比?4、JDK1.7 和1.8 关于hashMap尾插hashMap1、haspmap扩容机制1、什么是扩容机制?当数据容量超过当前最大容量*loadfactor(loadfactor表示扩容因子)...原创 2020-03-27 11:47:07 · 284 阅读 · 0 评论 -
面经总结 - 持续更新
目录协议层次1、HTTP协议常见响应Linux操作1、启动过程具体的知识点是记不完的,知道框架,知道框架下具体知识的作用和意义,这样会让人更好的理解记忆。协议层次1、HTTP协议常见响应以下是我认为开发中会用到的客户端以及服务端的响应代码:面试中很容易遇到这个问题,那如果想不起来有点偏的代码意义,我觉得可以跟面试官解释说,你知道他是什么...原创 2020-03-13 17:11:39 · 490 阅读 · 0 评论 -
网络协议
目录TCP/IP连接机制 - 三次握手为什么不用两次?为什么不用四次?终止机制- 四次挥手为什么最后客户端还要等待 2*MSL的时间呢?为什么建立连接是三次握手,关闭连接确是四次挥手呢?如果已经建立了连接, 但是客户端突发故障了怎么办?UDPHTTP总结一下常见的网络协议,了解其含义和特有的知识点,力图形成一个知识框架,方便查阅和回顾。首先梳...原创 2020-03-13 18:38:35 · 305 阅读 · 0 评论 -
倒计时
倒计时10秒,每个1秒输出package com.pt.thread;import java.text.SimpleDateFormat;import java.util.Date;/** * 阻塞 * sleep * @author tyler * */public class Block { public static void main(String...原创 2020-02-23 12:02:57 · 171 阅读 · 0 评论 -
深入理解java中递归_持续更新
目录递归后语句执行情况在解决剑指offer中的36题,二叉搜索树与双向链表的时候,被一个问题困扰:递归后的语句究竟该怎么运行??于是找了一些文章来看,希望能够得到解释:(直奔主要问题)递归后语句执行情况1、https://www.cnblogs.com/yfz1552800131/p/5349678.html这篇文章有一个递归的经典例子,讲述的是:递归函数中,位于递归调...原创 2020-02-02 11:49:44 · 261 阅读 · 0 评论