![](https://img-blog.csdnimg.cn/direct/57c69476ddb4413b8dc47430e8992b7f.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
咖啡巨兽
Java相关文章
厨子老林
一个后端开发工程师,对搜索引擎、数据库内核、分布式系统领域感兴趣!
展开
-
java使用IO流进行文件复制&性能比较
java使用IO流进行文件复制&性能比较原创 2022-09-17 17:25:39 · 224 阅读 · 0 评论 -
Java实现简单的RPC框架
Java实现简单的RPC框架一、RPC简介RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议。它允许像调用本地服务一样调用远程服务。它可以有不同的实现方式。如RMI(远程方法调用)、Hessian、Http invoker等。另外,RPC是与语言无关的。...转载 2020-12-12 18:02:14 · 602 阅读 · 0 评论 -
写Go时需要注意的点
Java程序员转Go需要注意的点(持续更新中)printf数据格式化%vtype关键字自定义类型go可以执行 f1, f2 = f2, f1+f2const模拟枚举函数外只能声明变量,不可赋值&取地址,*取地址对应值a类型转b类型,b(a)int(3.14)会报错,常量不能转函数作为参数传递函数可返回多个值,且可以是函数函数名首字母大写,则包外可见不支持重载,同包内函数也不能同名(内置init函数除外)gcflags进行逃逸分析,优化性能++和–只能当成语句使用,不能赋原创 2023-05-08 01:08:41 · 551 阅读 · 0 评论 -
SecurityContextHolder.getContext()获取不到Security上下文数据?
在使用 MODE_INHERITABLETHREADLOCAL 安全策略时,您需要小心处理多线程环境下的安全性问题,以避免出现数据竞争、死锁等问题。同时,这种模式可能会对应用程序的性能产生一定的影响,因为它需要通过序列化和反序列化来传递安全上下文信息。因此,在使用 MODE_INHERITABLETHREADLOCAL 安全策略时需要小心,确保在必要的情况下使用它,以避免性能问题。我的项目中出现这个问题是由于使用了异步线程(如下),导致Security上下文无法从主线程传递到异步线程中。原创 2023-05-08 02:14:54 · 1801 阅读 · 3 评论 -
Maven中resources标签的使用
Maven中resources标签的使用,注意事项原创 2022-11-03 15:22:21 · 2243 阅读 · 0 评论 -
什么是字符编码与字符集
字符编码计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码 。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码 。比如说,按照A规则存储,同样按照A规则解析,那么就能显示正确的文本符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。编码:字符(能看懂的)–字节(看不懂的)解码:字节(看不懂的)–>字符(能看懂的)字符编码Character Encodi原创 2020-11-20 10:06:03 · 342 阅读 · 0 评论 -
用Junit工具包和Debug功能进行Java调试与优化
Java调试与优化文章目录Java调试与优化一、Junit的使用二、Debug一、Junit的使用第一步:创建一个lib文件夹,把Junit.jar文件放进去第二步:鼠标放在lib文件夹上,然后右击选中Add as Library,把它添加为Library第三步:使用案例:在src编写一个类Demopublic class Demo { public void haha() { System.out.println("haha"); } publi原创 2020-11-25 12:45:22 · 360 阅读 · 2 评论 -
JSON解析器之Gson、FastJson、Jackson
文章目录Java对象与JSON相互转换1.Gson解析器(谷歌)2. FastJson解析器(阿里)3. JackSon解析器Java对象与JSON相互转换JSON解析器:常见的解析器:Jsonlib,Gson,fastjson,jackson1.Gson解析器(谷歌)最好使用最新jar包(百度搜索Gson然后去GitHub上找,或者Maven上也有)1. JSON转为Java对象1.引入JAR包2.在需要转换Java对象的位置, 编写如下代码:对象 = new Gson().from原创 2020-11-26 03:09:49 · 440 阅读 · 0 评论 -
如何用Gradle搭建SpringBoot开发环境&Gradle构建项目很慢的问题?
如何用Gradle搭建SpringBoot开发环境?并且让让第一次下载搭建速度飞起呢?第一步: gradle官网下载需要的版本并解压到不包含中文路径的目录。点此处下载:官网下载地址点击complete下载。第二步: 配置环境变量然后打开cmd,输入gradle -v,如果能显示版本信息及为成功配置环境变量。第三步: 打开gradle安装目录下单init.d文件夹,在里面新建一个init.gradle的配置文件。并在init.gradle文件里写入一下阿里云的镜像allprojects {原创 2021-03-23 23:31:52 · 763 阅读 · 0 评论 -
Maven相关问题
Maven相关问题1. 编译时出现Failed to execute goal org.springframework.boot:spring-boot-maven-plugin?原因1:该包POM里加了maven-compiler-plugin插件,又没有Main方法入口。2. 项目运行时出现Unable to find main class?解决办法一:检查Maven的依赖关系解决办法二:检查该类是否存在存在同路径名的类,如下...原创 2022-04-07 18:46:10 · 345 阅读 · 0 评论 -
报错【java.sql.SQLException: Value ‘0000-00-00 00:00:00‘ can not be represented】的解决办法?
问题描述在MySQL数据库中定义了timestamp字段的数据,并且默认初始值为0000-00-00 00:00:00 ,在Java程序中访问该数据时就出现了错误。解决办法方式一:将年月日改为不为0的数据,例如1970-1-1 00:00:00。方式二:mysql连接的时候添加zeroDateTimeBehavior=convertToNull例如:jdbc:mysql://localhost/test?zeroDateTimeBehavior=convertToNull...原创 2021-01-22 19:14:22 · 264 阅读 · 1 评论 -
配置了多个Filter过滤器,它们的执行顺序是怎么样的?
配置多个过滤器一、执行顺序:如果有两个过滤器:过滤器1和过滤器21. request请求1. 过滤器12. 过滤器22. 访问目标资源3. 资源执行3. response响应4. 过滤器25. 过滤器1二、过滤器先后顺序问题:1.注解配置:按照类名的字符串比较规则比较,值小的先执行如: AFilter 和 BFilter,AFilter就先执行了。2.web.xml配置: 谁定义在上边,谁先执行...原创 2020-12-31 14:57:59 · 5841 阅读 · 0 评论 -
<%= %>JSP表达式和${ }EL表达式取值的区别?
在JSP页面中,有两种常用的便捷取值方式:<%= %>${ }示例:<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %原创 2020-12-28 18:00:20 · 961 阅读 · 1 评论 -
在idea上运行了了javaweb项目,Tomcat的webapps里找不到项目怎么回事?
一、问题描述在IDEA中编写了一个JavaWeb项目,能正常运行,但是在去Tomcat的的webapps目录下找不到项目。二、原因IDEA使用Tomcat部署项目后并不会把编译后的项目复制到Tomcat的webapps目录下,但是它会把编译好的项目路径告诉Tomcat,让Tomcat来找到这个项目。其它的项目,比如 Tomcat的主页项目ROOT 是打不开的,因为IDEA 只让Tomcat运行了一个项目。三、解决方案第一步:打开 File > Project Structure > A原创 2020-12-24 10:42:39 · 3246 阅读 · 0 评论 -
JavaWeb开发注意事项
1、使用EL表达式时,取的如果是Bean对象,想要用它get方法,是使用如下方式:${user.username}2、Filter默认的拦截方式(dispatcherTypes)是REQUEST,所以内部的forword转发不会拦截。原创 2021-01-03 17:12:58 · 259 阅读 · 2 评论 -
用IDEA在进行web开发时,在jsp页面中设置的背景图不显示?
一、问题描述使用IDEA欲编写一个JSP登陆页面,并为登陆页面加入背景图,编写好后发现背景图不显示,如下图所示。设置背景样式:效果:可以看到上面的截图里背景图是没有展现出来的二、思考过程一开始以为是图片路径不对,于是把img图片包放入了WEB-INF里,发现路径还是不对。于是上网查找解决方案,在网上查询了很久,它们说的问题都是路径不对的问题,它们都是用的eclipse,工程结构也是略有不同的,只好放弃再想办法。在该路径和百度都不能解决后,我就在web文件夹里创建了一个html文件,在里原创 2021-01-02 19:18:44 · 8597 阅读 · 6 评论 -
RabbitMQ的安装
第一步: 安装需要的一些环境yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC unixODBC-devel httpd python-simplejson yum -y install pythonyum -y install ncurses-develyum -y install xmlto yum install python-simplejson第二步: 安装erlan原创 2021-04-16 22:07:05 · 81 阅读 · 0 评论 -
JDBC连接MySQL、阿里Druid连接池的使用教程
JDBC一、概念1.什么是JDBC?JDBC全称是Java数据库连接(Java DataBase Connectivity),它是一套用于执行SQL语句的JavaAPI。应用程序可以通过这套API连接到关系型数据库,并使用SQL语句来完成对数据库中数据的查询、更新、新增和删除的操作。二、使用步骤1. 引入jar文件.2. 加载数据库驱动 (JavaSE项目中可以省略 , JavaWeb项目必须编写此步骤)Class.forName("com.mysql.jdbc.Driver");3. 通过原创 2020-12-21 21:43:10 · 1784 阅读 · 1 评论 -
什么是乐观锁与悲观锁、乐观锁的缺点
数据库中的乐观锁和悲观锁用来解决什么问题?用来解决不可重复读和幻读的。原创 2020-12-16 23:36:33 · 753 阅读 · 0 评论 -
线程中sleep()方法和wait()方法有什么区别?
线程中sleep方法和wait方法有什么区别?1.原理不同。sleep()方法是来自Thread类的静态方法,是线程用来控制自身流程的,它会使某个线程阻塞一段时间,等计时时间一到,此线程就会自动“苏醒”。而wait()方法是来自Object类的方法,用于线程间的通信,它也可以使线程阻塞,不过要等其他线程调用了notify()或者notifyAll()方法该线程才能苏醒。2.对锁处理机制不同。sleep()方法的主要作用是让线程暂停一段时间,并不会释放掉自己持有的锁,而调用wait()方法的线程,会释放原创 2020-11-27 16:20:49 · 1151 阅读 · 0 评论 -
try-with-resources引起的Socket关闭,产生java.net.SocketException: Socket is closed?
try-with-resources是什么?它是jdk1.7之后出现的一直新的try-catch异常捕获操作,目的就是简化操作,实现资源的自动关流。示例代码 try(FileReader fr = new FileReader("E:\\c.txt")){ int c = fr.read(); System.out.println((char)c); }catch (IOException e){ e.pr原创 2020-11-24 17:06:09 · 791 阅读 · 0 评论 -
用JavaSeverSocket和Socket实现的TCP服务器-客户端卡死的问题?
** 在写一个简单的服务器-客户端Demo时,想使用效率更高的缓存字节流来接收从Socket获取的字节流,结果发现出了服务器和客户端卡死的问题**【一开始是的思路是,缓存流用到了缓存机制,我没用flush刷新,是不是因为这样卡死在缓存里了。(思路错误,因为我是输入用的缓存流,输出根本用缓存流)】tip1:如果本例中,在客户端发送完信息后,就调用os.close()把输入流关闭,是客户端是会报错java.net.SocketException: Socket is closed的,因为- 如果此Sco原创 2020-11-24 16:20:34 · 1190 阅读 · 0 评论 -
HashMap是如何存值和取值的?
HashMap的put方法存值过程图图片来源自网络1. HashMap存值过程(put方法)第一步:当往调用put方法向HashMap里增加一个键值对时,会先调用键的hashcode方法,来得到一个hashcode值,然后根据这个值来计算出这个键值对在map中数组对应的下标,及定位到HashMap中的具体的某一个桶。第二步:判断这个桶是否为空,如果是,直接把对象存到数组里,存储结束;如果不是,转到第三步第三步:判断已存在对象的key的equals方法,跟需要添加的对象的key对比,是否为tru原创 2020-11-19 15:59:58 · 3216 阅读 · 0 评论 -
TreeMap以及TreeSet的键能不能为null?Comparator比较器怎么使用?
1. TreeMap的键可以为null吗?为什么?答:一般来说TreeMap的键是不能为空的。因为在执行put方法存值时,会首先判断是否存在比较器,如果创建TreeMap实例时没有传入Comparator比较器,那么程序会对键进行判断,判断它是否为空,如果为空,就会抛出空指针异常。如果我们有特殊需求,是可以自己实现Comparator接口,并重写compare方法去处理掉比较对象为空的情况,这样做也是可以实现在TreeMap中存入一个空值的键的。注意:TreeSet的底层是用TreeMap实现,即将Tr原创 2020-11-19 15:50:25 · 2156 阅读 · 2 评论 -
删除Set集合元素时抛出ConcurrentModificationException异常?
遍历Set集合的几种方法:用foreach遍历用Iterator迭代器遍历用toArray方法转成数组再遍历(不推荐)删除Set集合中某一个元素:错误的操作示范:public static void main(String[] args) { Set<String> set= new Set<>(); set.add("Java"); set.add("C++"); set.add("Python"); // 1. 错误示范①——在foreach循环里删除原创 2020-11-19 12:26:46 · 548 阅读 · 2 评论 -
Hash表和HashMap是什么?为什么HashMap转换阀值是8、默认散列因子是0.75?
4.1 Hash表与HashMap4.1.1 Hash表结构图4.1.2 概述Hash表(散列表):是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。HashMap:是Java原创 2020-11-16 16:24:08 · 460 阅读 · 0 评论 -
XML、JSON
文章目录XML:一、概念:1. 功能2. xml与html的区别二、语法格式1. XML文档声明2. 标记(元素 / 标签 / 节点)3. 一个XML文档中,必须有且仅有一个根标记4. 标记可以嵌套,但是不允许交叉5. 标记的层级称呼(子标记,父标记,兄弟标记,后代标记,祖先标记)6. 标记名称允许重复7. 标记除了开始和结束,还有属性8. 注释9. CDATA区域10. 命名空间三、面试题四、解析1. DOM4J解析XML2. 文档对象 Document3. 元素对象 Element4. 实例5. DOM原创 2020-11-26 03:14:53 · 295 阅读 · 0 评论 -
Java多线程学习
学习Java多线程,这一篇就够了,从理论到原理,再到demo。有问题请在评论区留言,看到了会为你解答。(不要超纲哦)文章目录一、并发与并行二、 线程与进程三、线程3.1 多线程原理3.2 Thread类3.3 创建线程方式二3.4 Thread类和Runnable的区别3.5 匿名内部类方式实现线程的创建3.6 创建线程的方式三四、线程安全4.1 线程安全4.2 线程同步4.3 同步代码块4.4 同步方法4.5 Lock锁4.6 乐观锁与悲观锁4.7 死锁问题五、等待唤醒机制5.1 线程间通信5.2 等原创 2020-11-23 16:48:00 · 364 阅读 · 0 评论 -
Java的IO常用类
IO类一、File类1.1概述File类:java中IO包中的唯一的一个与文件本身操作有关的类,利用这个File类,我们可以创建文件或者文件夹,修改文件或者文件的名称等操作。1.2操作构造器:File(File parent, String child)根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。File(String parent,原创 2020-11-20 10:10:25 · 1683 阅读 · 0 评论 -
Java中常用的集合工具类
Java常用集合工具类一、Java中类集结构图Map大佬是和Collection一个元老级别的,不是List、set一级的1.1 Collection接口Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下:public boolean add(E e): 把给定的对象添加到当前集合中 。public void clear() :清空集合中所有的元素。public boole原创 2020-11-19 19:43:36 · 1149 阅读 · 4 评论 -
Java基础知识整理回顾
01-Java面向对象第一节:环境搭建本节涉及知识点:Java的发展史Java体系特点Java特性JVM与GCJDK与JRE环境变量自动关机程序代码分类1.1 Java的发展及其特点 **发展:**Java的前身是Oak语言,它是由SUN公司的“Green”小组对C++进行改造,去除了C++复杂的指针和内存管理,并结合嵌入式系统的实时性要求,从1991年开始,历时一年,在1992年时开发出了这种名为Oak的语言,并在1994年大火之后更名为了Java。在1996年1月,S..原创 2020-11-01 21:50:45 · 180 阅读 · 1 评论