![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础知识
文章平均质量分 90
对基础知识进行梳理,加深理解
緈諨の約錠
成功是留给有准备的人,努力了不一定成功,不努力一定失败!
展开
-
Java应用服务系统安全性,签名和验签浅析
签名和验签操作原创 2023-03-11 20:18:43 · 2574 阅读 · 0 评论 -
浅析对称加密与非对称加密算法
常见加密算法比较翻译 2023-03-11 20:10:16 · 1463 阅读 · 0 评论 -
如何预估通胀率?通过央行数据来统计一波
通胀率估算原创 2023-02-23 21:09:26 · 253 阅读 · 0 评论 -
如何优雅的获取maven下载失败的依赖目录
文章目录1 前言2 获取maven下载失败的依赖目录1 前言项目中很普遍使用maven进行项目的构建,但是使用maven时,由于网络不稳定,或者需要FQ等因素,导致部分jar可能下载失败,只能重新下载才能使项目正常启动。你有没有下载maven失败的困扰?重新Reload All Maven Project没有效果?实际上,maven在第一次下载依赖时,会创建一个目录,一旦网络不好下载失败,下次不会再次下载了,除非你找到失败的那的目录,删除后,才能重新下载。如何快速找到那个依赖报错了呢?不多唠叨了,见原创 2021-09-29 20:01:29 · 310 阅读 · 0 评论 -
ThreadLocal的内存泄露分析以及如何避免?
前言在分析ThreadLocal导致的内存泄露前,需要普及了解一下内存泄露、强引用与弱引用以及GC回收机制,这样才能更好的分析为什么ThreadLocal会导致内存泄露呢?更重要的是知道该如何避免这样情况发生,增强系统的健壮性。内存泄露内存泄露为程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光,广义并通俗的说,就是:不再会被使用的对象或者变量占用的内存不能被回收,就是内存泄露。强引用与弱引用强引用,使用最普遍的转载 2021-08-17 23:38:59 · 956 阅读 · 5 评论 -
HikariCP数据连接池基础介绍
1 什么是数据库连接池连接池是一种常用的技术,为什么需要连接池呢?这个需要从TCP说起。假如我们的服务器跟数据库没有部署在同一台机器,那么,服务器每次查询数据库都要先建立连接,一般都是TCP链接,建立连接就需要3次握手了,假设后台服务跟数据库的单程的访问时间需要10ms,那么光是建立连接就花了30ms,并且TCP还有慢启动的机制,实际上一次查询可能还不止1次TCP来回,查询效率就会大大降低。2 为什么需要连接池 为了解决上述问题,我们就需要维护一些长链接,这样就不用每次都去建立连接,毕竟建..转载 2021-08-15 22:49:14 · 1113 阅读 · 2 评论 -
Java常见的线程池有哪些?
1、什么是线程池java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建线程池多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。一个线程池包括以下四个基转载 2021-08-15 22:08:00 · 2279 阅读 · 3 评论 -
Spring框架中的单例bean是线程安全的吗?
结论: 不是线程安全的Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。Spring 的 bean 作用域(scope)类型 1、singleton:单例,默认作用域。 2、prototype:原型,每次创建一个新对象。 3、request:请求,每次Http请求创建一个新对象,适用于WebApplicationContext环境下。转载 2021-08-15 13:42:21 · 7358 阅读 · 0 评论 -
中高级Java程序员,你不得不掌握的基本功,挑战20k+
文章目录1 前言2 自我介绍3 Java SE3.1 Java访问控制修饰符3.2 Java中抽象类与接口有何区别?3.3 Java中super关键字与final关键字3.4 final修饰的对象,有几种初始化方式3.5 Java中方法的重载(Overload)与方法的覆盖(Override)3.6 Java基础知识总结,干货来啦3.7 Java基础面试题干货系列(一)3.8 Java中的String是不可变的,Why?3.9 Java反射基础入门,一篇就够啦3.10 面向对象与面向过程3.11 Java基原创 2021-08-12 23:17:02 · 65381 阅读 · 54 评论 -
MySQL的四种事务隔离级别
本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了.转载 2021-08-12 23:13:10 · 676 阅读 · 1 评论 -
HashMap、Hashtable、ConcurrentHashMap的区别和原理浅析
HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = olesize*2+1 计算index的方法:index = (hash & 0x7FFFFFFF) % tab.lengthHashMap底层数组+链表实现,可以存储null键和null值,线程不安全 初始size为16,扩容:new转载 2021-08-12 22:21:17 · 935 阅读 · 0 评论 -
前端调试,模拟数据利器之Mock Server使用教程来啦~
文章目录1 MockServer是什么2 为什么要使用MockServer3 MockServer的作用4 搭建MockServer服务1 MockServer是什么MockServer其实就是一个用来模拟http(https)请求响应结果数据的服务器。通过这个MockServer服务,我们可以极大地方便接口的调试。2 为什么要使用MockServer如今的业务系统模块越来越多,功能也越来越复杂。及时的与前端调试也迎来了一些小的挑战。假设有一个场景:新项目刚开始启动时,这时候后台部分的接口都没有原创 2020-08-16 20:17:54 · 13918 阅读 · 0 评论 -
HTTP请求状态码对照表
文章目录前言HTTP状态码分类HTTP状态码列表前言当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。HTTP状态码的英文为HTTP Status Code。下面是常见的HTTP状态码:200 - 请求成功301 - 资源(网页等)被永久转移到其它URL404 - 请求的资源(网页等)不存在500 - 内部服务器错误HTTP状态码分类HT转载 2020-07-05 10:16:43 · 2617 阅读 · 1 评论 -
史上最全的Java JDBC编程详细教程,你值得拥有~
package com.insist.day08.review;import java.io.BufferedReader;import java.io.InputStreamReader;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import原创 2020-06-07 16:49:13 · 4479 阅读 · 2 评论 -
Java中File类,你知道有哪些api方法吗?
423432原创 2020-06-06 16:55:41 · 2123 阅读 · 0 评论 -
面试官您好,请不要再问我Java中的io流
创作不易,如果觉得这篇文章对你有帮助,欢迎各位老铁点个赞呗,您的支持是我创作的最大动力!文章目录1 Java中流的定义2 Java中流的分类2.1 字节流和字符流2.2 输入流和输出流2.2.1 InputStream(字节输入流)2.2.2 OutputStream(字节输出流)2.2.3 Reader(字符输入流)2.2.4 Writer(字符输出流)3 文件流1 Java中流的定义流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络.原创 2020-06-06 07:52:01 · 912 阅读 · 1 评论 -
WebSocket的故事(一)—— WebSocket的由来
概述微信小程序、小游戏的火爆,都让WebSocket的应用变得无处不在。针对这个主题,笔者打算做一个系列博客,旨在由浅入深的介绍WebSocket以及在Springboot和JS中如何快速构建和使用WebSocket提供的能力。本系列计划包含如下几篇文章:第一篇,什么是WebSocket以及它的用途。第二篇,Spring中如何利用STOMP快速构建WebSocket广播式消息模式第三篇,Springboot中,如何利用WebSocket和STOMP快速构建点对点的消息模式(1)第四篇,Sprin转载 2020-06-01 22:30:24 · 1009 阅读 · 0 评论 -
WebSocket的故事(六)—— Springboot中,实现更灵活的WebSocket
概述WebSocket的故事系列计划分五大篇六章,旨在由浅入深的介绍WebSocket以及在Springboot中如何快速构建和使用WebSocket提供的能力。本系列计划包含如下几篇文章:第一篇,什么是WebSocket以及它的用途第二篇,Spring中如何利用STOMP快速构建WebSocket广播式消息模式第三篇,Springboot中,如何利用WebSocket和STOMP快速构建点对点的消息模式(1)第四篇,Springboot中,如何利用WebSocket和STOMP快速构建点对点的..转载 2020-06-01 22:35:04 · 500 阅读 · 0 评论 -
WebSocket的故事(五)—— Springboot中,实现网页聊天室之自定义消息代理
概述WebSocket的故事系列计划分五大篇六章,旨在由浅入深的介绍WebSocket以及在Springboot中如何快速构建和使用WebSocket提供的能力。本系列计划包含如下几篇文章:第一篇,什么是WebSocket以及它的用途第二篇,Spring中如何利用STOMP快速构建WebSocket广播式消息模式第三篇,Springboot中,如何利用WebSocket和STOMP快速构建点对点的消息模式(1)第四篇,Springboot中,如何利用WebSocket和STOMP快速构建点对点的消息转载 2020-06-01 22:34:19 · 675 阅读 · 0 评论 -
WebSocket 的故事(四)—— Spingboot 中,如何利用 WebSocket 和 STOMP 快速构建点对点的消息模式(2)
概述本文是WebSocket的故事系列第三篇第二节,将针对上篇的代码介绍,给出一个STOMP实现点对点消息的简单例子。WebSocket的故事系列计划分六大篇,旨在由浅入深的介绍WebSocket以及在Springboot中如何快速构建和使用WebSocket提供的能力。本系列计划包含如下几篇文章:第一篇,什么是WebSocket以及它的用途第二篇,Spring中如何利用STOMP快速构建WebSocket广播式消息模式第三篇,Springboot中,如何利用WebSocket和STOMP快速构转载 2020-06-01 22:32:50 · 559 阅读 · 0 评论 -
WebSocket的故事(三)—— Springboot中,如何利用WebSocket和STOMP快速构建点对点的消息模式(1)
概述本文是WebSocket的故事系列第三篇第一节,将逐步深入Spring源码进行介绍,本系列的干货也将陆续在后面的几篇文章中放出。WebSocket的故事系列计划分五大篇,旨在由浅入深的介绍WebSocket以及在Springboot中如何快速构建和使用WebSocket提供的能力。本系列计划包含如下几篇文章:第一篇,什么是WebSocket以及它的用途第二篇,Spring中如何利用STOMP快速构建WebSocket广播式消息模式第三篇,Springboot中,如何利用WebSocket和STO转载 2020-06-01 22:32:08 · 962 阅读 · 0 评论 -
WebSocket 的故事(二)—— Spring 中如何利用 STOMP 快速构建WebSocket 广播式消息模式
WebSocket 广播式消息模式概述本文是WebSocket的故事系列第二篇,WebSocket的故事系列计划分五篇,旨在由浅入深的介绍WebSocket以及在Springboot中如何快速构建和使用WebSocket提供的能力。本系列计划包含如下几篇文章:第一篇,什么是WebSocket以及它的用途第二篇,Spring中如何利用STOMP快速构建WebSocket广播式消息模式第三篇,Springboot中,如何利用WebSocket和STOMP快速构建点对点的消息模式(1)第四篇,Spri转载 2020-06-01 22:31:00 · 891 阅读 · 0 评论 -
Java中设计模式的七大基本原则,我跟面试官聊了两个小时
文章目录前言设计模式七大基本原则1.1 开闭原则(OCP)1.2 单一职能原则(SRP)1.3 里氏替换原则(LSP)1.4 依赖倒置(倒转)原则(DIP)1.5 接口隔离原则(ISP)1.6 合成/聚合复用原则(CARP)1.7 迪米特法则(LOD)前言设计模式定义:软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验...原创 2020-05-30 16:24:36 · 1694 阅读 · 0 评论 -
Java中的异常(Exception),史上最全的教程来啦~
创作不易,如果觉得这篇文章对你有帮助,欢迎各位老铁点个赞呗,您的支持是我创作的最大动力!文章目录1 前言2 什么是异常3 异常的分类3.1 异常的类图结构3.2 异常的分类4 异常的处理4.1 异常捕获处理4.1.1 try、catch和finally4.1.2 异常捕获处理4.2 throws抛出处理4.3 getMessage()和printStackTrace()5 异常的捕获顺序6 方法覆盖中的异常处理7 总结8 final、finally、finalize 的区别?9 谈谈你Java异常处理.原创 2020-05-24 14:06:20 · 21671 阅读 · 29 评论 -
Java基础面试题干货系列(三)
创作不易,如果觉得这篇文章对你有帮助,欢迎各位老铁点个赞呗,您的支持是我创作的最大动力!文章目录前言面试基础知识总结1 Java中访问控制修饰符有哪些,有何区别?2 两个对象值相同equals结果为true,可以有不同的 hashCode值?3 编写程序,从键盘上输入年月日,打印该日期对应这一年的第几天前言越来越感觉到基础知识的薄弱,所以,这里作一下总结,加深下自己对基础知识的理解。Java基础知识实在是太多了,这里打算持续更新,总结下常见的面试题和知识点。博主打算每期更新10个面试知识点,后续.原创 2020-05-23 17:57:22 · 1615 阅读 · 1 评论 -
Java编程思想之高内聚低耦合
文章目录1 前言2 低耦合耦合性定义耦合性分类3 高内聚高内聚定义耦合性分类4 示例5 总结1 前言编程的时候,经常要使得系统高内聚、低耦合,那么,我们口中的这些概念到底是什么?什么是高内聚低耦合呢?2 低耦合耦合性定义起因模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,所以就有了两个定性的度量标准,即耦合性和内聚性。定义:耦合性也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。使用白话来说,就是代码(程序)和代码(程序)之间的关联翻译 2020-05-18 22:56:16 · 3842 阅读 · 1 评论 -
Java中参数传递(值传递还是引用传递)
Java中的参数传递机制一直以来大家都争论不休,究竟是“传值”还是“传址(传引用)”,争论的双方各执一词,互不相让。不但“菜鸟”们一头雾水,一些“老鸟”也只知道结果却说不出所以然来。我相信看过下面的内容后,你就会明白一些。先看基本类型作为参数传递的例子:public class Test1 { public static void main(String[] args) { int n = 3; System.out.println("Before change, n = " + n).转载 2020-05-18 09:11:48 · 1985 阅读 · 0 评论 -
理解Java中的多态机制,一篇就够啦
创作不易,如果觉得这篇文章对你有帮助,欢迎各位老铁点个赞呗,您的支持是我创作的最大动力!文章目录Java中的多态1 多态是什么2 多态的语法格式3 满足多态的条件4 使用多态好处5 多态中的类型转换6 多态的实现方式7 多态简单使用案例8 多态分析Java中的多态1 多态是什么多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。用白话来说,就是多个对象调用同一个方法,得到不同的结果。2 多态的语法格式父类类名 引用名称 = new.原创 2020-05-18 00:01:11 · 3791 阅读 · 4 评论 -
Java基础面试题干货系列(二)
创作不易,如果觉得这篇文章对你有帮助,各位老铁点个赞呗,您的支持是我创作的最大动力!文章目录前言面试基础知识总结12345678910前言越来越感觉到基础知识的薄弱,所以,这里作一下总结,加深下自己对基础知识的理解。Java基础知识实在是太多了,这里打算持续更新,总结下常见的面试题和知识点。博主打算每期更新10个面试知识点,后续慢慢迭代更新。博主这里总结的目的在于,为童鞋们提供面试的参考知识点之外,博主也可以巩固自己的基础知识,工作几年的人都知道,如果稍微不留神,慢慢的,你的基础知识忘记的差不.原创 2020-05-17 20:05:02 · 1737 阅读 · 0 评论 -
面向对象与面向过程
文章目录前言介绍前言今天偶然发现,有一篇微博写的特别好,讲述了面向对象和面向过程的编程思想,这里转载记录下,以防止下次刷不到了。介绍java语言是一种面向对象的编程语言,为什么面向对象会成为主流呢?这是因为面向对象更符合我们人类的思维方式。面向对象在面向对象的编程语言中,关注点在于做一件事需要哪些对象的参与。比如我们用软件的思想如何去模拟一个抽烟的场景,我们会想到有这些对象的参与:香烟对象、打火机对象、会抽烟的人对象、允许抽烟的场所对象。然后我们用java语言将各个对象进行实现,然后再让他们转载 2020-05-17 18:08:29 · 1175 阅读 · 0 评论 -
ASCII码
参考原文链接:https://tool.oschina.net/https://tool.oschina.net/commons?type=4https://baike.baidu.com/item/ASCII/309296?fr=aladdinASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等.转载 2020-05-16 10:23:16 · 1336 阅读 · 0 评论 -
反射都不会,还敢说自己会Java?
文章目录一、反射机制1.1 框架1.2 什么是反射机制?1.3 反射的优点二、获取Class对象三、 Class对象的功能3.1 获取功能3.2 Field:成员变量3.2.1 测试的实体类3.2.2 测试getFields和getField(String name)方法3.2.3 测试 getDeclaredFields 和 getDeclaredField(String name)方法3.3 ...转载 2020-05-05 15:18:00 · 204 阅读 · 0 评论 -
Java反射基础入门,一篇就够啦
文章目录Java基础之反射1 前言2 反射的基本概念3 reflection的工作机制4 构造Class对象方式5 Java反射机制操作的基础套路5.1 Java中的类反射5.2 Java反射机制获取类中构造方法的信息6 Java反射的简单应用6.1 通过反射机制创建对象Java基础之反射1 前言你是否还在为不懂Java反射而苦恼?是否因为面试,不能熟练地回答反射相关的知识而感到无奈?是...原创 2020-05-04 16:47:36 · 2970 阅读 · 1 评论 -
Java中的String是不可变的,Why?
文章目录Java中的String为什么是不可变的什么是不可变对象?区分对象和对象的引用为什么String对象是不可变的?String对象真的不可变吗?Java中为什么String要设计成不可变的Java中的String为什么是不可变的什么是不可变对象?众所周知, 在Java中, String类对象是不可变的,那么,到底什么是不可变的对象呢?可以这样认为:如果一个对象,在它创建完成之后,不能...翻译 2020-05-02 22:36:09 · 2319 阅读 · 0 评论 -
Java基础面试题干货系列(一)
文章目录Java基础前言1 下面的代码创建了几个对象2 String对象是如何保证其对象的内容不可改变3 持续更新中。。。Java基础前言最近,感觉压力比较大,所以挑战下基础面试题,加深下自己对基础知识的理解。Java基础知识实在是太多了,这里打算持续更新,总结下常见的面试题。1 下面的代码创建了几个对象String str = new String("Hello");以上代码,实际...原创 2020-05-02 14:59:41 · 2242 阅读 · 0 评论 -
Java多线程之自定义线程池(ThreadPoolExecutor执行submit返回值Future)
一般使用线程池执行任务都是调用的execute方法,这个方法定义在Executor接口中:public interface Executor { void execute(Runnable command);}这个方法是没有返回值的,而且只接受Runnable。那么像得到线程的返回值怎嘛办呢?在ExecutorService接口中能找到这个方法:<T>...转载 2020-04-28 13:16:09 · 1391 阅读 · 0 评论 -
UML图使用详解
文章目录UML图使用总结UML图使用总结写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,希望尽自己的努力,做到更好,大家一起努力进步!如果有什么问题,欢迎大家一起探讨,代码如有问题,欢迎各位大神指正!给自己的梦想添加一双翅膀,让它可以在天空中自由自在的飞翔!...原创 2020-04-22 00:10:39 · 3246 阅读 · 0 评论 -
Java基础知识总结,干货来啦~
文章目录Java基础知识1.1 Java中修饰符的使用1.2 Java中方法的重载(Overload)与覆盖(Override)1.3 Java中super关键字与final关键字1.4 Java中抽象类与接口1.5 Java中的内部类1.6 Java中反射的使用1.7 Java中集合的使用前言经常忙于工作,一些Java基础知识忘得也差不多了,抽个时间,对Java的基础做一下回顾总结。我这里没...原创 2020-04-19 22:52:57 · 2302 阅读 · 0 评论 -
Java中方法的重载与方法的覆盖
文章目录Java中方法的重载(Overload)Java中方法的覆盖(Override)Java中方法的重载(Overload)项目中,有时候为了使代码更加的优雅,方法名为了统一好记,可以使用Java的重载方法。方法重载(Overload)的条件:方法重载只出现在同一个类中方法名称相同方法参数列表不同(参数类型、个数、顺序至少有一个不同)方法的返回类型可以不同,因为方法重载和返回类...原创 2020-04-19 22:50:36 · 2432 阅读 · 0 评论 -
Java中super关键字与final关键字
文章目录Java中super关键字Java中final关键字Java中super关键字super 可以理解为是指向自己父(超)类对象的一个指针,而这个超类指的是离自己最近的一个父类。super关键字的作用:调用父类的构造方法调用父类的成员方法注意:1、super只能应用在成员方法和构造方法中,不能应用在静态方法中(和this是一样的),如果在构造方法中使用super,必须放在方法...原创 2020-04-19 19:50:39 · 2585 阅读 · 0 评论