Java
文章平均质量分 76
Java从入门到大厂:SpringBoot、JVM、JDBC、JUC等等
程序员洲洲
计算机科班本硕、CSDN全栈领域优秀博主、华为云享专家、阿里云专家博主、全网12W+粉丝。现某公司后端开发工程师。擅长领域:产品测评、毕设辅导、项目开发、自媒体副业、Java/Go/C++/Python/AI等。商务合作/活动推广/产品测评推广等请站内私信/文章底部有联系Vx名片/bdizztt
展开
-
【Java+EasyExcel】使用 SpringBoot 实现 Excel 文件的导入(含示例代码)
【Java+EasyExcel】使用 SpringBoot 实现 Excel 文件的导入(含示例代码)原创 2024-06-10 16:27:56 · 12889 阅读 · 0 评论 -
【Java】SpringBoot 实现文件的上传与下载、日志记录、参数校验等(含代码示例)
【Java】SpringBoot 实现文件的上传与下载、日志记录、参数校验等(含代码示例)原创 2024-06-10 16:14:33 · 12078 阅读 · 0 评论 -
【Java】Java遍历Map方法合集
【Java】Java遍历Map方法合集原创 2024-06-02 18:09:20 · 11284 阅读 · 14 评论 -
【Java】一文看懂Thread 线程池的 7 种创建方式、任务队列及自定义线程池(代码示例)
【Java】一文看懂Thread 线程池的 7 种创建方式、任务队列及自定义线程池(代码示例)原创 2024-06-02 17:50:48 · 17399 阅读 · 1 评论 -
【SpringBoot】四种读取 Spring Boot 项目中 jar 包中的 resources 目录下的文件
【SpringBoot】四种读取 Spring Boot 项目中 jar 包中的 resources 目录下的文件原创 2024-06-02 17:15:32 · 14006 阅读 · 1 评论 -
Java如何读取resources目录下的文件路径(九种代码示例教程)
Java如何读取resources目录下的文件路径(九种代码示例教程)原创 2024-06-02 17:02:31 · 17777 阅读 · 1 评论 -
Java性能优化学习2:性能优化切入点(下)
性能优化的七个点性能优化分为,业务优化和技术优化。业务优化一般属于产品和管理的范畴,作为后端开发,一般应有技术优化。技术优化一般有七类技术手段。性能优化的重点是在照顾性能的前提下,达到资源利用的最优状态。4、资源冲突优化在操作系统中就有提到过共享资源会带来资源冲突。现实开发中的性能问题,和锁有关的是非常多的,比如说数据库的行级锁,表锁,java中的各种锁等等,在底层操作系统中,还有 CPU、操作系统的锁等等。对资源的竞争,会造成很严重的性能问题,所以在开发的时候,需要注意并发的问题,并发很有可能原创 2021-12-19 19:26:43 · 42888 阅读 · 0 评论 -
Java性能优化学习1:理论基础学习与分析
性能是什么性能:使用有限的资源在有限的时间内完成工作。最主要的衡量因素就是时间,所以很多衡量指标,都可以把时间作为横轴。加载缓慢的网站,会受到搜索排名算法的惩罚,从而导致网站排名下降。 因此加载的快慢是性能优化是否合理的一个非常直观的判断因素,但性能指标不仅仅包括单次请求的速度,它还包含更多因素。性能衡量指标1、性能指标:吞吐量QPS/TPS/HPS、响应速度2、响应时间:平均响应时间AVG、百分位数3、并发量4、秒开率5、正确性QPS 代表每秒查询的数量,TPS 代表每秒事务的数量,H原创 2021-11-22 00:21:11 · 42474 阅读 · 0 评论 -
Java性能优化学习2:性能优化切入点(上)
性能优化的七类技术手段性能优化分为,业务优化和技术优化。业务优化一般属于产品和管理的范畴,作为后端开发,一般应有技术优化。技术优化一般有七类技术手段。性能优化的重点是在照顾性能的前提下,达到资源利用的最优状态。1、复用优化写代码的时候,一般一个方法函数用的多的话,我们就会设置成公共的方法,这就是复用的意思,以后直接调用就可以了。那么复用的思想在优化中,可以使用为:缓冲和缓存。缓冲(Buffer),常见于对数据的暂存,然后批量传输或者写入。多使用顺序方式,用来缓解不同设备之间频繁地、缓慢地随机写原创 2021-12-12 23:39:57 · 40303 阅读 · 2 评论 -
面试学习:海量数据的数据结构思想与算法
处理海量数据问题的6类算法思想!分而治之(hash映射)+hashmap统计数量+堆排、快排、归并排序等海量日志数据,提取出某日访问百度次数最多的那个IP如一亿个Ip求Top 10,可先%1000将ip分到1000个小文件中去,并保证一种ip只出现在一个文件中,再对每个小文件中的ip进行hashmap计数统计并按数量排序,最后归并或者最小堆依次处理每个小文件的top10以得到最后的结果。分而治之/hash映射:针对数据太大,内存受限,只能是:把大文件化成(取模映射)小文件,即16字方针:大而原创 2021-12-05 22:18:10 · 40281 阅读 · 0 评论 -
面试题:海量数据去重、Top-k、BitMap问题整理
首先直接进入正题,40亿QQ号如何设计算法去重,相同的QQ号码仅保留一个,内存限制为1个G。(腾讯的QQ号都是4字节正整数,所以QQ号码的个数是43亿左右,理论值2^32-1个,又因为是无符号的,翻倍了一下,所以43亿左右)方法1:排序这估计也是最多人能够想到的解决方法,那就是排序,重复的QQ肯定会挨在一起,然后保留第一个,去重就行了。排序后的去重比较简单就不在这里赘述。但是这么做的问题显然很大,时间复杂大太高了,效率低下。方法2:hsahmaphashmap的意思:如果使用h原创 2021-11-25 10:43:41 · 45176 阅读 · 0 评论 -
Java面试题3:Java异常篇
1、finally 块中的代码什么时候被执⾏?答:在 Java 语⾔的异常处理中,finally 块的作⽤就是为了保证⽆论出现什么情况,finally 块⾥的代码⼀定会被执⾏。由于程序执⾏ return 就意味着结束对当前函数的调⽤并跳出这个函数体,因此任何语句要执⾏都只能在 return 前执⾏(除⾮碰到 exit 函数),因此 finally 块⾥的代码也是在 return 之前执⾏的。此外,如果 try-finally 或者 catch-finally 中都有 return,那么 fina.原创 2021-09-09 18:03:10 · 42348 阅读 · 0 评论 -
面试整理学习专题2:操作系统
1、并发和并行的理解?并行指两个或者多个事件同一时刻发生,并发是两个或者多个事件在同一时间间隔发生;并行是在不同实体上的多个事件,并发是在同一实体上的多个事件(如单核CPU轮转时间片)。2、同步、异步、阻塞、非阻塞的概念。同步:一个同步调用发出之后,调用者需要一直等待返回结果。有返回结果后,才能执行后续的操作。异步:当一个异步调用发出之后,调用者不需要立刻等待返回结果,实际处理这个调用的部件在完成之后,通过状态、回调来通知调用者。阻塞:调用结果返回前,线程会被挂起,即阻塞。非阻塞:即使调用结果原创 2021-10-27 17:22:46 · 42547 阅读 · 0 评论 -
Java面试题1:Java基础篇
1、什么是面向对象?面向对象和面向过程的区别?答:面向对象是一种万物皆对象的编程思想,任何物体都可以归为一类事物,而一个个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动的。区别:①编程思路不同:面向过程以实现功能的函数开发为主,面向对象是首先抽象出类、属性及其方法,然后通过实例化、执行方法来完成功能。②封装性:都具有封装性,但是面向过程是封装的是功能,而面向对象封装的是数据和功能。③面向对象有继承性和多态性,而面向过程没有。————————————————————————.原创 2021-09-06 22:31:57 · 42055 阅读 · 0 评论 -
Java面试题2:Java字符串篇
String字符串的介绍:String属于引用数据类型,由于被final修饰,所以String是不可变的,JVM使用字符串池来存储所有的字符串对象。1、字节和字符的区别?答:字节是存储容量的基本单位;字符是数字、字⺟、汉字以及其他语⾔的各种符号;1 字节 = 8 个⼆进制单位,⼀个字符由⼀个字节或多个字节的⼆进制单位组成。——————————————————————————————————2、java中String为什么要设计为不可变类?答:C++中string是可变类..原创 2021-09-09 00:35:05 · 42197 阅读 · 0 评论 -
Java集合学习3:Set集合-HashSet
Set无序、无下标、不可以重复元素方法:全部继承Collection的方法Set接口的使用Set迭代HashSet使用了哈希表。使用 HashCode计算元素 的存放位置。当 存入元素的哈希码相同时 ,会调用equals进行确认 ,如 结果为true,那么拒绝后者存入。存储结构:哈希表(数组+ 链表 +红黑树)可以理解成火车站窗口买票排队,每个人根据hashcode来计算,计算去哪个窗口,如果没有元素直接放入,如果有元素了,那么 比较equals,一样就放,不一样就弄 一个原创 2021-10-18 01:01:49 · 42212 阅读 · 0 评论 -
Java集合学习3:Set集合-TreeSet
HashSet回顾基于hashcode计算元素存放位置。当存入元素的哈希码相同时,会调用equals进行确认,如果为true,则拒绝后者存入。TreeSet(红黑树)基于排列 顺序实现,元素不重复实现了SortedSet接口,对集合元素自动排序。元素对象的类型必须实现Comparable接口,指定排序规则。通过 CompareTo方法去确定是否为 重复元素。红黑树二叉查找树TreeSet的使用存储结构是红黑树。第二个xyz是不可以加进来的。红黑树的遍历:现在如果原创 2021-10-18 23:33:13 · 42510 阅读 · 0 评论 -
Java集合学习5:Map-HashMap、Hashtable
说白了,Map就是 键值对,存储一对数据 。允许用null作为key或者value。Map接口使用map的遍历注意keySet()方法是得到的key的set形式的集合,所以要以set来接着。entrySet(),Entry是映射对,有key也有value。方法代码:Set<Map.entry<String,String>> entries = map.entrySet();for( Entry<String,String> entry :.原创 2021-10-19 01:00:24 · 42152 阅读 · 0 评论 -
Java集合学习1:Collection集合、List
什么是集合概念:对象的容器,定义了对多个对象进行操作的常用方法。可以实现数组的功能。和数组的区别数组长度固定,集合长度不固定数组可以存储基本类型和引用类型,集合只能存储引用类型进行集合接口的学习时候,多看JDK的API。里面有很多方法,可以自己研究。Collection体系集合iterator()是collection的元素上进行迭代的迭代器。Collection实践1、添加元素2、删除元素3、遍历元素4、判断首先创建一个集合,并添加元素。删除元素、与清空元素判原创 2021-10-17 17:42:58 · 39838 阅读 · 0 评论 -
Java集合学习完结:集合复习、Collections工具类
Colletions工具类定义了存取以外的集合常用方法排序用法:Collections.sort(list);二分查找:Collections.binarySearch(list,12); 返回负数就是没有找到。复制: Collections.copy(目标,src源);.但是需要注意,copy需要 目标和源集合大小一样。list转成数组list.toArray(new Integer[]);数组转成集合...原创 2021-10-19 01:10:59 · 39497 阅读 · 0 评论 -
Java集合学习2:泛型
泛型 Generic泛型类写一个泛型类语法:类名 T就代表数据类型的占位符 运行的时候要表示一种引用类型,不可以是实际类型,同时可以写多个占位符,用逗号隔开即可。使用泛型创建变量还可以添加方法作为方法的参数还可以使用泛型作为方法的返回值需要注意 的是不同泛型对象不能相互 复制。写一个泛型接口是不能使用泛型创建 静态常量的,即不能new这个泛型。由于接口是不能实例化的,所以需要写一个实现类。在实现接口的时候必须在使用的 时候必须写清楚什么类。联动泛型类和泛型原创 2021-10-18 00:12:13 · 39719 阅读 · 0 评论 -
JUC并发编程学习1:JUC概述、进程线程概述
什么是JUCJUC就是工具类,java.util.concurent的缩写。用来开发并发编程的工具包。JUC是一个处理线程的工具包,JDK1.5开始出现的。什么是线程、进程线程的状态线程状态的枚举类new 新建、runnable 准备就绪、blocked 阻塞、waiting 等待(不见不散)、timed_waiting 等待(过时不候)、terminated 终结wait和sleep串行、并发和并行就是可以理解成串这个字,要一步一步来。并行:多个任务同时执行。但是原创 2021-10-21 11:23:33 · 39880 阅读 · 0 评论 -
Java网络编程:UDP/TCP实现实时聊天、上传图片、下载资源等
网络编程实战ip地址的分类:1、ipv4、ipv6127.0.0.1:4个字节组成,0-255,42亿;30亿都在北美,亚洲就只有4亿2011年就用尽了。ipv6:2、公网ip、私网ip实践获得ip地址端口端口表示计算机上的一个程序的进程(大概可以这么理解)比如说一栋楼,是一个ip,每一户都是端口号。不同的进程有不同的端口号。TCP聊天实现TCP文件上传UDP对于UDP并不是很强调客户端或者服务端的概念,谁都可以做服务端客户端的。UDP聊天实现注意string是原创 2021-09-24 18:20:47 · 40296 阅读 · 0 评论 -
JVM学习1:程序计数器、栈
JVMJVM、JRE、JDK区别JVM的作用面试理解底层的实现原理:字节码等等中高级程序员的必备技能JVM学习路线程序计数器Program Counter Register程序计数器(寄存器)左边的是二进制字节码,这是跨平台的基础,都是jvm的指令。还必须经过解释器,变成机器码,然后交给了CPU进行处理。作用:程序计数器的作用就是:记住下一条jvm指令 的执行地址。等第一条指令在解释器解释完之后,3会放入到程序计数器中,解释器就会进去取,然后执行。就是记住下一条jvm指令的执原创 2021-09-17 19:03:36 · 40423 阅读 · 0 评论 -
Java设计模式学习2:行为模式
行为模式行为模式是注意各个类之间的相互作用,讲过职责划分清楚,使得我们的代码更加清晰规范。1.1策略模式下面设计的场景是,需要画一个图形,可选的策略就是用红色笔来画,还是绿色笔来画,或者蓝色笔来画。首先,先定义一个策略接口:public interface Strategy { public void draw(int radius, int x, int y);}然后定义具体的几个策略:public class RedPen implements Strategy { @O原创 2021-09-17 18:33:14 · 39903 阅读 · 0 评论 -
Java设计模式学习1:创建型与结构型
设计模式介绍首先要明白设计模式到底是什么,设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 Gang of Four (GoF) 的分类了,他们将设计模式分类为 23 种经典的模式,根据用途和具体情况我们又可以分为三大类,分别为创建型模式、结构型模式和行为型模式。设计模式重要原则...原创 2021-09-17 13:18:52 · 39123 阅读 · 0 评论 -
Android开发:使用Java对手机截图图片进行任意区域的颜色对比度处理操作
开发项目过程中,对于手机屏幕截图,需要对获取到的截图的任意部分进行区域颜色对比度的识别操作,由此判定任意指定区域是否满足某对比度基本标准,但是该功能在网上任何地方都没有找到过Java方面的代码,于是根据RGB转换测试的原理:即获取每个像素点的RGB,通过RGB对比度定义公式进行像素点的集合换取。通过上述思路,开发了一下核心功能代码。代码如下,可以配合注释理解。由于项目保密性原因,只摘取一部分核心逻辑代码。其实核心就是通过Java自带的库进行像素点的获取,然后通过数学公式进行处理。原创 2021-08-29 00:28:49 · 39164 阅读 · 1 评论