
Java学习笔记
文章平均质量分 75
在学习的过程将自己的感悟记录下来
田野里的稻草人
一位Java开发实习生,期待与你共同进步!
展开
-
websocket
文章目录什么是websocket?HTTP与WebSocket的关系快速入门SpringBoot+WebSocket 实时监控异常消息什么是websocket?WebSocket 协议是基于 TCP 的一种新的网络协议。它实现了客户端与服务器之间的全双工通信,既然是全双工,就说明了服务器可以主动发送信息给客户端。为什么不使用 HTTP 协议呢?这是因为HTTP是单工通信,通信只能由客户端发起,客户端请求一下,服务器处理一下,于是 websocket 应运而生。WebSocket 相比普通原创 2022-04-16 15:53:51 · 1807 阅读 · 1 评论 -
JAVA8新特性--集合流操作Stream
JAVA8新特性–集合流操作StreamJava 8 引入,位于java.util.stream包中,与 java.io 包里的输入输出流 InputStream 和 OutputStream 是不同的概念。Stream API 借助 Lambda 表达式,可以提高编程效率和程序可读性。什么是 Stream?Stream(流)是一个来自数据源的元素队列并支持聚合操作元素是特定类型的对象,形成一个队列。 Java中的Stream并不会存储元素,而是按需计算。数据源 流的来源。 可以是集合,数组,原创 2022-02-26 10:40:12 · 2124 阅读 · 1 评论 -
关闭依赖jar包日志
关闭依赖jar包日志在有的时候,我们会频繁的更换依赖,对依赖中的某些日志是不需要输出的,这个时候我们该怎么做呢。下面我就来说下我的以个解决方案。比如管理jar包中DefaultConnection中logger日志;只需要上一句配置即可。2 在logback.xml中加上如下配置即可。<logger name=" packname" level="OFF"/>packname一般是包名,但也可能是其他的名字,这个取决于java代码中写的名字 <logger name="or原创 2021-12-21 22:07:22 · 1823 阅读 · 0 评论 -
初步认识log4j2与使用
log4j2的使用原创 2021-12-09 23:24:09 · 721 阅读 · 0 评论 -
浅谈日志框架中的日志门面与slf4j与Logback
文章目录1、日志门面2. SLF4J的使用2.1 SLF4J入门2.2 绑定日志的实现(Binding)2.3 桥接旧的日志框架(Bridging)2.4 SLF4J原理解析3. Logback的使用3.1 logback入门1、日志门面当我们的系统变的更加复杂的时候,我们的日志就容易发生混乱。随着系统开发的进行,可能会更新不同的日志框架,造成当前系统中存在不同的日志依赖,让我们难以统一的管理和控制。就算我们强制要求所有的模块使用相同的日志框架,系统中也难以避免使用其他类似spring,myba原创 2021-12-01 23:23:13 · 422 阅读 · 0 评论 -
T和Class<T>以及Class<?>的理解
T和Class以及Class<?>的理解转载 2021-11-25 23:32:07 · 97 阅读 · 0 评论 -
Java中POJO、VO、DTO、PO、Entity、domain的区别
Java中POJO、VO、DTO、PO、Entity的区别在看一些实际的项目的源码的时候,我们会发现POJO、VO、DTO、PO、Entity、domain的区别,那它们分别是什么呢,与我们学习Java时遇到的POJO有什么不同呢。下面就来简单的谈谈一下我对它们的一个理解。1、POJO(Plain Ordinary Java Object):即无规则简单Java对象,就是一个我们最常见的普通Java对象,这个概念是被大家叫出来的,它具有一些属性,然后提供对应的getter和setter。即不与数据库打交原创 2021-11-25 23:31:02 · 4869 阅读 · 0 评论 -
Serif和Sans-serif字体的区别
文章目录Serif和Sans-serif字体的区别Serif和Sans Serif的一般比较Serif和Sans-serif字体的区别在西方国家罗马字母阵营中,字体分为两大种类:Sans Serif和Serif,打字机体虽然也属于Sans Serif,但由于是等宽字体,所以另外独立出Monospace这一种类,例如在Web中,表示代码时常常要使用等宽字体。Serif的意思是,在字的笔划开始及结束的地方有额外的装饰,而且笔划的粗细会因直横的不同而有不同。相反的,Sans Serif则没有这些额外的装饰,原创 2021-11-24 23:27:48 · 7142 阅读 · 0 评论 -
初次认识日志
日志的学习1.日志的概念1.1 日志文件1.1.1 调试日志1.1.2 系统日志2. JAVA日志框架问题:2.1 为什么要用日志框架2.2 现有的日志框架3. JUL 学习3.1 JUL入门3.1.1 架构介绍3.1.2 入门案例3.2 日志的级别3.3 Logger之间的父子关系3.4 日志的配置文件3.5 日志原理解析4. LOG4J4.1 Log4j入门1.日志的概念1.1 日志文件日志文件是用于记录系统操作事件的文件集合,可分为事件日志和消息日志。具有处理历史数据、诊断问题的追踪以及原创 2021-11-21 21:11:27 · 935 阅读 · 0 评论 -
Putty的使用
文章目录PuTTY 创建 SSH 会话连接PuTTY 修改保存设置PuTTY 会话保持时间PuTTY 复制粘贴文本PuTTY 窗口内容长度PuTTY 保存登录用户名PuTTY 使用私钥登录PuTTY 删除会话配置信息PuTTY 官方下载地址PuTTY 创建 SSH 会话连接运行 putty.exe,在程序界面内输入服务器 IP 地址和端口(22 是 SSH 默认端口),选中 SSH 连接类型,设置连接会话名称及点击保存,然后点击 Open 按钮开始连接登录。首次连接会提示服务器指纹,选择是或否转载 2021-11-08 22:48:32 · 6144 阅读 · 0 评论 -
创建和销毁对象
Effective创建和销毁对象1.用静态工厂方法代替构造器创建和销毁对象1.用静态工厂方法代替构造器原创 2021-11-06 20:08:53 · 281 阅读 · 0 评论 -
初识异常结构
异常异常:是在运行时期发生的不正常情况。在java中用类的形式对不正常情况进行了描述和封装对象。描述不正常的情况的类,就称为异常类。以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问题处理代码分离。提高阅读性.其实异常就是java通过面向对象的思想将问题封装成了对象.用异常类对其进行描述。不同的问题用不同的类进行具体的描述。 比如角标越界。空指针等等问题很多,意味着描述的类也很多,将其共性进行向上抽取,形成了异常体系。最终问题(不正常情况)就分成了两大类。Throwable:原创 2021-10-22 22:29:55 · 135 阅读 · 0 评论 -
Java中length,length(),size()区别
Java中length,length(),size()区别length属性:用于获取数组长度。eg:int ar[] = new int{1,2,3}/*** 数组用length属性取得长度*/int lenAr = ar.length;//此处lenAr=3System.out.println("Arr length:"+lenAr);length()方法:用于获取字符串长度。String str = "Hello World Java";/*** 字符串用l原创 2021-10-22 20:10:41 · 171 阅读 · 0 评论 -
JVM的三种常见的垃圾收集算法
文章目录JAVA堆内存组成JVM中三种常见的垃圾收集算法?标记-清除算法?复制算法?标记整理算法?JAVA堆内存组成堆大小=新生代+老年代。如果是Jav a8则没有Permanent Generation。其中新生代(Young)被分为Eden和S0 (from)和S1(to)。默认比例是:Edem : from: to=8 : 1 : 1JVM中三种常见的垃圾收集算法?标记-清除算法(Mark_ Sweep)复制算法(Copying)标记-压缩算法(Mark-Compact)标记-原创 2021-10-16 19:29:31 · 292 阅读 · 0 评论 -
内存溢出(OutOfMemoryError)与栈溢出(StackOverflowError)
文章目录Java中OutOfMemoryError(内存溢出)的情况及解决办法OutOfMemoryError(内存溢出)的情况OutOfMemoryError: PermGen spaceOutOfMemoryError: Java heap space如何实现一个堆内存溢出?空间什么情况下会抛出OutO fMemoryError?StackOverflowError(栈溢出)Java中OutOfMemoryError(内存溢出)的情况及解决办法除了程序计数器外,虚拟机内存其他运行时区域都会发原创 2021-10-16 13:31:14 · 2744 阅读 · 0 评论 -
JVM内存结构图
文章目录class字节码的10个主要组成部分:JVM内存结构图:程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池?class字节码的10个主要组成部分:MagicNumber、Version、Constant_ pool、Access flag、This_ class、Super_ class、Interfaces、Fields、Methods、AttributesJVM内存结构图:程序计数器属于线程私有内存。占用一块非常小的空间,它的作用可以看作是当前线程所执行的字节码的行原创 2021-10-16 10:41:05 · 330 阅读 · 0 评论 -
冒泡排序算法
文章目录冒泡排序1 、概念2、实现冒泡排序本文是结合了泡泡老师的关于冒泡排序的文章总结的。原文章链接冒泡排序1 、概念冒泡排序(Bubble Sort),是计算机科学领域中较简单的一种排序算法。它重复地走访需要进行排序的元素,依次比较两个相邻的元素,如果元素的顺序(如从大到小、首字母从A到Z)错误就把元素的位置互换。走访元素是重复进行的,直到没有任何相邻位置上的元素需要交换位置,排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料原创 2021-10-15 17:13:46 · 314 阅读 · 0 评论 -
synchronized与Lock
文章目录什么是synchronized?synchronized包括哪些jvm重要的指令?synchronized关键字用法?synchronized锁的是什么?volatile关键字waitnotifynotify/notifyAllLock接口什么是synchronized?synchronized关键字可以实现一个简单的策略来防止线程干扰和内存一致性错误,如果一个对象是对多个线程可见的,那么对该对象的所有读写都将通过同步的方式来进行。synchronized包括哪些jvm重要的指令?mo原创 2021-10-13 09:44:44 · 162 阅读 · 0 评论 -
IO模型的分类
文章目录IO模型有几种?阻塞IO(blocking IO)非阻塞I/O (nonblocking IO)I/O多路复用模型(IO multiplexing)信号驱动I/O模型异步I/O(asynchronous IO)IO模型有几种?阻塞IO、非阻塞IO、多路复用IO、信号驱动IO以及异步IO。阻塞IO(blocking IO)应用程序调用一个IO函数,导致应用程序阻塞,如果数据已经准备好,从内核拷贝到用户空间,否则一直等待下去。一个典型的读操作流程大致如下图,当用户进程调用recvfrom原创 2021-10-08 21:37:05 · 161 阅读 · 0 评论 -
HashMap的底层原理
文章目录HashMap概述HashMap的实现原理HashMap的底层实现原理?HashMap 和 HashTable 的区别HashMap操作注意事项以及优化?HashMap概述HashMap 是 Map 接口的实现,HashMap 允许空的 key-value 键值对,HashMap 被认为是 Hashtable 的增强版,HashMap 是一个非线程安全的容器,如果想构造线程安全的 Map 考虑使用 ConcurrentHashMap。HashMap 是无序的,因为 HashMap 无法保原创 2021-10-07 16:08:14 · 654 阅读 · 0 评论 -
HashMap及其他的Hash类
HashMap 和 HashTable 的区别相同点HashMap 和 HashTable 都是基于哈希表实现的,其内部每个元素都是 key-value 键值对,HashMap 和 HashTable 都实现了 Map、Cloneable、Serializable 接口。不同点父类不同:HashMap 继承了 AbstractMap 类,而 HashTable 继承了 Dictionary 类空值不同: HashMap 允许空的 key 和 value 值,HashTable原创 2021-10-07 15:42:11 · 225 阅读 · 0 评论 -
深拷贝和浅拷贝的区别是什么?
深拷贝和浅拷贝的区别是什么?1、浅拷贝(1)、定义被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。即对象的浅拷贝会对“主"对象进行拷贝,但不会复制主对象里面的对象。"里面的对象”会在原来的 对象和它的副本之间共享。简而言之,浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象(2)、实例结果分析:两个引用student1和student2指向不同的两个对象,但是两个引用student1和student2中的两个teacher引用指向的是同一个原创 2021-10-06 14:52:20 · 3482 阅读 · 0 评论 -
学习过程中收集到的面试题小汇总
学习过程中收集到的面试题小汇总:IoC和DI自动装配IoC和DI在平时的java应用开发中,我们要实现某一个功能或者说是完成某个业务逻辑时可能需要多个对象来协作完成,在没有使用Spring的时候,每个对象在需要使用他的合作对象时,自己均要使用像new object() 这样的语法来将合作对象创建出来,这个合作对象是由自己主动创建出来的,创建合作对象的主动权在自己手上,自己需要哪个合作对象,就主动去创建,创建合作对象的主动权和创建时机是由自己把控的,而这样就会使得对象间的耦合度高了。A对象需原创 2021-09-26 21:57:00 · 84 阅读 · 0 评论 -
Java--API
文章目录内部类1. 概述2. 特点3.成员内部类4.局部内部类API1.API的概念2.==和equals的区别3.StringBuilder和StringBuffer的区别4.自动装箱和自动拆箱5.BigDecimal内部类1. 概述如果一个类存在的意义就是为指定的另一个类,可以把这个类放入另一个类的内部。就是把类定义在类的内部的情况就可以形成内部类的形式。A类中又定义了B类,B类就是内部类,B类可以当做A类的一个成员看待:2. 特点内部类可以直接访问外部类中的成员,包括私有成员外原创 2021-09-17 11:18:35 · 85 阅读 · 0 评论 -
异常、抽象类与接口
文章目录异常1 概述2 catch 和 throws3 程序错误分为三种:4 throws 与 throw 的区别abstract 抽象类特点:abstract注意事项接口( Interface )特点:使用总结:异常1 概述异常是一些用来封装错误信息的对象它由异常的类型、提示信息、报错的行号提示三部分组成2 catch 和 throws异常处理只有两种方式: catch 和 throws,所以必须二选一由于Java语法本身的特点,需要开发者事先考虑异常如何处理,也就是我们常说的:“未雨绸原创 2021-09-16 21:33:18 · 133 阅读 · 0 评论 -
static与fianl
文章目录static1、概念2 、特点3、注意事项4、成员变量和静态变量的区别?5、static静态调用关系静态代码块1、格式2、 三种代码块的比较final1、 概念2、 特点static1、概念是java中的一个关键字;用于修饰成员(成员变量和成员方法)2 、特点可以修饰成员变量与成员方法随着类的加载而加载,优先于对象加载只加载一次,就会一直存在,不再开辟新空间, 直到类消失才一起消失静态资源也叫做类资源,全局唯一,被全局所有对象共享可以直接被类名调用静态只能调用静态,非静态原创 2021-09-16 20:41:14 · 118 阅读 · 0 评论 -
Java复习(一)
文章目录算术运算符:自增自减运算符辩析:a=a++内存的划分:逻辑运算符变量方法(也称函数)1、方法的重载2、方法重写Override3、重载(Overload) 和重写(Override) 的区别。重载的方法能否根据返回类型进行区分?break与continue 的区别数组类与对象1、对象在内存中的存储2、对象的创建过程OOP1、 构造方法2、 构造代码块与局部代码块1、构造代码块2、局部代码块3、执行顺序4、this关键字与super关键字thissuperthis与super的区别3、 创建对象的流程原创 2021-09-14 19:18:02 · 124 阅读 · 0 评论 -
类与对象、封装
1. 面向对象概念面向过程强调的是过程(动作)C语言面向对象强调的是对象(实体)C++/ Java/C#面向对象的特点:1. 面向对象就是一种常见的思想。符合人们的思考习惯。2. 面向对象的出现,将复杂的问题简单化。3. 面向对象的出现,让曾经在过程中的执行者,变成了对象中的指挥者。2. 类与对象之间的关系用java语言对现实生活中的事物进行描述。通过类的形式来体现的。2.1 怎么描述呢?对于事物描述通常只关注两方面。 一个是属性,一个是行为。只要原创 2021-07-08 19:26:41 · 298 阅读 · 0 评论 -
初识JAVA中的数组
1、数组的定义概念同一种类型数据的集合。其实数组就是一个容器。数组的好处可以自动给数组中的元素从0开始编号,方便操作这些元素。****格式1:元素类型[ ] 数组名 = new 元素类型 [元素个数或数组长度];示例: int[] arr = new int[5] ;格式2:元素类型[] 数组名= new 元素类型 [] {元素,元素,…} ;int [ ] arr = new int [] { 3,5原创 2021-06-30 23:32:06 · 167 阅读 · 0 评论 -
正则表达式
正则表达式含义:正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。在开发中使用的字符:...原创 2021-06-30 23:25:14 · 77 阅读 · 0 评论 -
初识数据结构--简单的键盘输入和输出
Java基础1.关键字在java语言中已经被赋予特定意义的一些单词。关键字不能被用作标识符。特殊关键字:java中有部分虽没有强调其是关键字,但也不许使用Test.java不能使用,否则无法使用JUnit的Testnative 即 JNI,Java平台有个用户和本地C代码进行互操作的API,称为Java Native Interface (Java本地接口)strictfp,即 strict float point (精确浮点)transient当串行化某个对象时,如果该对象的某原创 2021-06-24 14:59:20 · 1074 阅读 · 0 评论 -
如何生成文档注释
Java文档注释Java 支持三种注释方式。前两种分别是 // 和 /* */,第三种被称作说明注释,它以 /**、 开始,以 */结束。说明注释允许你在程序中嵌入关于程序的信息。你可以使用 javadoc 工具软件来生成信息,并输出到HTML文件中。说明注释,使你更加方便的记录你的程序信息。第一步:借助javadoc工具查找文档注释:第二步:将文档注释存储在一个文件夹中:...原创 2021-06-28 13:06:21 · 355 阅读 · 0 评论 -
初识Java函数
函数2.7.1函数的定义什么是函数?函数就是定义在类中的具有特定功能的一段独立小程序。函数也称为方法。函数的格式: 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...) { 执行语句; return返回值; } 返回值类型函数运行后的结果的数据类型参数类型是形式参数的数据类型。形式参数是一个变量,用于存储调用函数时传递给函数的实际参数。实际参数传递给形式参数的具体数值ret原创 2021-06-27 17:09:49 · 124 阅读 · 0 评论 -
程序流程控制
程序流程控制1判断结构if 语句 1. if(条件表达式) { 执行语句: } 2. if(条件表达式) { 执行语句: } else { 执行语句: } 3.if(条件表达式) { 执行语句: } else if(条件表达式) { 执行语句: } ...... else { 执行语句: }【三元运算符就是if-else语句的简写。*何时使用简化?*当if-eles运算后,有一个具体的值,就可以原创 2021-06-27 16:43:52 · 77 阅读 · 0 评论