
java
文章平均质量分 80
佐佑时代
这个作者很懒,什么都没留下…
展开
-
几个不错的CSS可视化工具,看到就是赚到
大家好,今天给大家推荐几个可以快速生成 CSS 片段的工具,效率 UP !这个网站为 或 生成对应UI,它也可以自定义, 等。它可以为我们生成多个分层阴影,一种非常酷的效果,也可以从曲线中自定义颜色。Clippy 是一个 CSS clip-atch 属性绘制工具,它可以轻松绘制不同的几可形状的。它通过操作 生成很 awesome 形状,我们可以在项目中尽情的使用的,通过微调来达到我们想要的形状。为 CSS 动画生成。如果你的项目经常需要使用渐变,那么,你会爱上这......原创 2022-06-13 21:38:55 · 1778 阅读 · 1 评论 -
MySQL一张表存储数据的最大量是多少?
MySQL本身并没有对单表最大记录数进行限制,这个数值取决于你的操作系统对单个文件的限制本身。业界流传是500万行。超过500万行就要考虑分表分库了。阿里巴巴《Java 开发手册》提出单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。一个简单的 test通过循环给表中插入数据,记录插入条数,并输出到控制台。结果:经过一晚上的运行,早晨发现已经插入了两百多万条数据, ...原创 2022-06-13 21:39:43 · 8763 阅读 · 1 评论 -
面试MySQL连环问,帮你迎刃而解
前言MySQL在面试中经常被问到,本文总结了面试中的经典问题。1. 数据库三大范式是什么?第一范式:每个列都不可以再拆分。第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。在设计数据库结构的时候,要尽量遵守三范式,如果不遵守,必须有足够的理由。比如性能。事实上我们经常会为了性能而妥协数据库的设计。2. mysql有关权限的......原创 2022-06-13 21:40:45 · 194 阅读 · 0 评论 -
面试HashMap夺命连问
HashMap的底层数据结构是什么?在JDK1.7中和JDK1.8中有所区别:在JDK1.7中,由”数组+链表“组成,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的。在JDK1.8中,有“数组+链表+红黑树”组成。当链表过长,则会严重影响HashMap的性能,红黑树搜索时间复杂度是O(logn),而链表是O(n)。因此,JDK1.8对数据结构做了进一步的优化,引入了红黑树,链表和红黑树在达到一定条件会进行转换:.........原创 2022-06-13 21:40:27 · 211 阅读 · 0 评论 -
Maven教程,满满干货
① 一个项目就是一个工程如果项目非常庞大,就不适合使用package来划分模块,最好是每一个模块对应一个工程,利于分工协作。借助于maven就可以将一个项目拆分成多个工程② 项目中使用jar包,需要“复制”、“粘贴”项目的lib中同样的jar包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作。借助于maven,可以将jar包保存在“仓库”中,不管在哪个项目只要使用引用即可就行。③ jar包......原创 2022-06-13 21:41:03 · 208 阅读 · 0 评论 -
别再写 main 方法测试了,用这种方法测试更专业。
在日常开发中,我们对一些代码的调用或者工具的使用会存在多种选择方式,在不确定他们性能的时候,我们首先想要做的就是去测量它。大多数时候,我们会简单的采用多次计数的方式来测量,来看这个方法的总耗时。但是,如果熟悉JVM类加载机制的话,应该知道JVM默认的执行模式是JIT编译与解释混合执行。JVM通过热点代码统计分析,识别高频方法的调用、循环体、公共模块等,基于JIT动态编译技术,会将热点代码转换成机器码,......原创 2022-06-13 21:41:21 · 206 阅读 · 0 评论 -
Java类加载器
类的加载过程 JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize),链接又分为三个步骤,如下图所示:1) 装载:查找并加载类的二进制数据;2)链接:验证:确保被加载类的正确性;准备:为类的静态变量分配内存,并将其初始化为默认值;解析:把类中的符号引用转换为直接引用;3)初始化:为类的静态变量赋予正确的初始值;那为什么我要有验证这一步骤呢?首先如果由编译器生成的class文件,它肯定是符合JVM字节码格式的,但是万一有高手自己写一个class文件,让JVM加载并原创 2022-06-13 21:42:09 · 301 阅读 · 0 评论 -
SpringBoot实现人脸识别功能
前言去年在公司参与了一个某某机场建设智能机场的一个项目,人脸登机是其中的一个功能模块,当时只是写了后台的接口,调用人脸识别设备的api,给闸机回传数据信号,以保障该功能的正常使用。当时因为项目进度紧张,手里还有其他项目赶进度,也就没时间去分享这个功能的实现。前几天刷脸进公司大楼的时候,突然想起来应该写一个功能类似的demo分享个人的一些小小的经验。在当时项目中刷脸的设备终端是采购某某AI公司,当然咱们在demo里面也不可能买一台那东西来瞎搞,于是乎就拿系统刷脸登录来练练手,人脸识别解决方案就用百度云的吧,当原创 2022-06-09 00:47:23 · 776 阅读 · 1 评论 -
Java中双冒号 :: 是什么意思?面试问到该怎么答?
一:简洁方法引用分为三种,方法引用通过一对双冒号:: 来表示,方法引用是一种函数式接口的另一种书写方式静态方法引用,通过类名::静态方法名, 如 Integer::parseInt实例方法引用,通过实例对象::实例方法,如 str::substring构造方法引用,通过类名::new, 如 User::new通过方法引用,可以将方法的引用赋值给一个变量,通过赋值给Function,说明方法引用也是一种函数式接口的书写方式,Lambda表达式也是一种函数式接口,Lambd......原创 2022-06-09 00:47:48 · 741 阅读 · 0 评论 -
Spring BeanUtils 和 Apache BeanUtils,用哪个?
前言对象拷贝什么是浅拷贝和深拷贝BeanUtilsapache 的 BeanUtilsspring的 BeanUtils小结在我们实际项目开发过程中,我们经常需要将不同的两个对象实例进行属性复制,从而基于源对象的属性信息进行后续操作,而不改变源对象的属性信息,比如DTO数据传输对象和数据对象DO,我们需要将DO对象进行属性复制到DTO,但是对象格式又不一样,所以我们需要编写映射代码将对象中的属性值从一种类型转换成另一种类型。这种转换最原始的方式就是手动编写.........原创 2022-06-09 00:47:31 · 818 阅读 · 0 评论 -
Lombok的巨大隐患,你还在用它吗?
Lombok是一个很不错的Java库,它可以让你在少写代码的同时耍耍酷,简单的几个注解,就可以干掉一大片模板代码。但是,所有的源代码很多时候是用来阅读的,只有很少的时间是用来执行的(你可以细品这句话)。一年以前,我和大多数人都认为Lombok的出现会让Java的编码体验会更好,并极力的在我的团队中推荐使用Lo......原创 2022-06-09 00:47:59 · 1290 阅读 · 0 评论 -
Gradle比起Maven怎么样?
相信使用Java的同学都用过Maven,这是一个非常经典好用的项目构建工具。但是如果你经常使用Maven,可能会发现Maven有一些地方用的让人不太舒服:1. Maven的配置文件是XML格式的,假如你的项目依赖的包比较多,那么XML文件就会变得非常非常长;2. XML文件不太灵活,假如你需要在构建过程中添加一些自定义逻辑,搞起来非常麻烦;3. Maven非常的稳定,但是相对的就是对新版java支持不足,哪怕就是为了编译......原创 2022-06-09 00:48:33 · 2181 阅读 · 0 评论 -
SpringBoot注解大全,干货满满
springboot的所有注解原创 2022-06-06 22:08:53 · 298 阅读 · 0 评论 -
在 IntelliJ IDEA 中这样使用 Git,贼方便!
Git是目前流行的分布式版本管理系统。它拥有两套版本库,本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响。也因此其近乎所有的操作都是本地执行,所以在断网的情况下任然可以提交代码,切换分支。Git又使用了SHA-1哈希算法确保了在文件传输时变得不完整、磁盘损坏导致数据丢失时能立即察觉到。Git的基本工作流程:git clone:将远程的Master分支代码克隆到本地仓库git checkou...原创 2022-06-06 22:09:49 · 217 阅读 · 0 评论 -
经常使用Maven,那么你有考虑过这几个问题吗?
在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见。Maven的仓库管理、依赖管理、继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个多模块的项目足以让你头疼,依赖冲突就会让你不知所措,甚至搞不清楚项目是如何运行起来的.....OK,博主就曾经被Maven“伤害”过,那么该专题的目的就是:彻底搞定Maven!回想一下,当你新到一家公司,安装完JDK后就会安装配置Maven(MAVEN_HOME、path),很大可能性你需要修改settings原创 2022-06-06 22:10:15 · 117 阅读 · 0 评论 -
spring中的注解,你会多少?
@Controller标识一个该类是Spring MVC controller处理器,用来创建处理http请求的对象.@RestControllerSpring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。@Service用于标注业务层组件,说白了就是加入你有一个用注解的方式把这个类注入到spring配置中@Autowired用原创 2022-06-06 22:10:54 · 154 阅读 · 0 评论 -
谈谈你对SpringAOP的了解?
众所周知,一旦提到AOP,相信大家都是条件反射的想到JDK代理和CGLib代理,没错,这两个代理都是在运行时内存中临时生成代理类,故而又称作运行时增强——动态代理。世间万物都不是绝对的,既然有动态代理,那么,是否有想过:是不是存在静态代理呢?其实,除了运行时织入切面的方式外,我们还有一种途径进行切面织入,它可以在类加载期通过字节码转换,进而将目标织入切入点(目标类),这种方式就是LTW,即静态代理(静待代理也被称作编译时增强,后面会有相关代码样例)。LTW在Java5的时候就被引入了,想要了解其原理,先要了原创 2022-06-06 22:11:07 · 257 阅读 · 0 评论 -
for循环里面不建议使用String++,你知道为什么吗?
都说 StringBuilder 在处理字符串拼接上效率要强于 String,但有时候我们的理解可能会存在一定的偏差。最近我在测试数据导入效率的时候就发现我以前对 StringBuilder 的部分理解是错误的。后来我通过实践测试 + 找原理 的方式搞清楚了这块的逻辑。现在将过程分享给大家我们的代码在循环中拼接字符串一般有两种情况第一种就是每次循环将对象中的几个字段拼接成一个新字段,再赋值给对象第二种操作是在循环外创建一个字符串对象,每次循环向该字符串拼接新的内容。循环结束后得...原创 2022-06-07 12:23:14 · 514 阅读 · 0 评论 -
@Value注解特性
在日常开发中,经常会遇到需要在配置文件中,存储 List 或是 这种类型的数据。Spring 原生是支持这种数据类型的,以配置 类型为例,对于 文件配置如下:test: list: - aaa - bbb - ccc对于 文件配置如下所示:test.list[0]=aaatest.list[1]=bbbtest.list[2]=ccc当我们想要在程序中使用时候,想当然的使用 注解去读取这个值,就像下面这种写法一样:@Value("${test.list}")pri原创 2022-06-07 12:23:30 · 266 阅读 · 0 评论 -
String类型长度最多是多少?有限制吗?
话说Java中String是有长度限制的,听到这里很多人不禁要问,String还有长度限制?是的有,而且在JVM编译中还有规范,而且有的家人们在面试的时候也遇到了。本人就遇到过面试的时候问这个的,而且在之前开发的中也真实地遇到过这个String长度限制的场景(将某固定文件转码成Base64的形式用字符串存储,在运行时需要的时候在转回来,当时文件比较大),那这个规范限制到底是怎么样的,咱们话不多说先䁖䁖去。首先要知道String的长度限制我们就需要知道String是怎么存储字符串的,String其实是使用的一原创 2022-06-07 12:23:43 · 6976 阅读 · 0 评论 -
IDEA的StopCoding插件,好用到爆
当初年少懵懂,那年夏天填志愿选专业,父母听其他长辈说选择计算机专业好。从那以后,我的身上就有了计院深深的烙印。从寝室到机房,从机房到图书馆,C、C++、Java、只要是想写点自己感兴趣的东西,一坐就是几个小时,但那时年轻,起身,收拾,一路小跑会女神,轻轻松松。现在工作了,毫无意外的做着开发的工作,长时间久坐。写代码一忙起来就忘了起来活动一下,也不怎么喝水。经常等到忙完了就感觉腰和腿不舒服。直到今年的体检报告一下来,才幡然醒悟:没有一个好身体,就不能好好打工,让老板过上他自己想要的生活了.试过用手机提醒自己,原创 2022-06-07 12:24:26 · 832 阅读 · 0 评论 -
哪种编程语言难学?哪种易学?
事实上,问一个程序员最容易学习的语言,就像问一个人他们最喜欢的冰淇淋。每个人都有自己的偏好,永远没有真正的正确答案。正如开发者和教育家 Marek Zaluski 曾经说的那样,"编程语言是由程序员创造的,为程序员服务"。这几乎就像一个只有少数人知道的内幕秘密,可能会使得那些刚进入软件工程领域的人感到畏惧。但另一方面,不掌握流行的编程语言...原创 2022-06-07 12:24:59 · 164 阅读 · 0 评论 -
全栈工程师就无敌吗?真的能做到个人即团队吗?
全栈,不一定是全能,更多的是一种领域内的全域实践。它具体的思路是,从立体的角度看待技术与产品,突破自身视野的限制,洞察事物的本质从而为实际产品、技术架构、服务开发提供更有力准确的依据。也就是说,我们作为一个开发人,首先就得、每个人、都需要这样的思路和想法。从真正的业务和全局角度出发,足够立体的看待自己在领域内的位置,更好的推动项目的实现。力往正确的方向使用。也就是说,全栈最重要的还是全局意识,全栈并不一定是全能。而是要保持谦...原创 2022-06-09 00:49:10 · 573 阅读 · 0 评论 -
Java中判空写法
先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示在这种情况下,有如下代码这种写法,在user为null时,是有可能报NullPointerException异常的。为了解决这个问题,于是采用下面的写法这种写法是比较丑陋的,为了避免上述丑陋的写法,让丑陋的设计变得优雅。JAVA8提供了Optional类来优化这种写法,接下来的正文部分进行详细说明# API介绍先介绍一下API,与其他...原创 2022-06-09 00:49:50 · 529 阅读 · 0 评论 -
连接数据库为什么非常耗资源?
开发应用程序久了,总想刨根问底,尤其对一些有公共答案的问题。大家都能解释,但是追根究底,都解释不清。凡是都有为什么,而且用数字说明问题是最直观的。本文主要想探究一下连接数据库的细节,尤其是在Web应用中要使用数据库来连接池,以免每次发送一次请求就重新建立一次连接。对于这个问题,答案都是一致的,建立数据库连接很耗时,但是这个耗时是都多少呢,又是分别在哪些方面产生的耗时呢?本文以连接MySQL数据库为例,因为MySQL数据库是开源的,其通信协议是公开的,所以我们能够详细分析建立连接的整个过程。在本文中,消耗资源原创 2022-06-11 22:48:57 · 185 阅读 · 0 评论 -
即将被淘汰的编程语言,慎重选择!
每个编码的人都有自己喜欢的语言。拥有一种首选语言有很多原因,但是,我们的语言有时会变得很单调,它不再由制造它的公司维护,或者人们出于某种无法解释的原因放弃使用它。但是,也有的编程语言例外,比如C语言,它就经受住了时间的考验,在许多情况下仍然是最流行的编程语言。编程语言都有自己的生命周期,对某些语言来说,属于它们的时代似乎已经结束了,今天,我们就来盘下一下目前前景最黯淡的5种语言:1. Visual Basic .NETMicrosoft Visual Basic.NET 是 Microsoft Visual原创 2022-06-11 22:50:21 · 1568 阅读 · 0 评论 -
Date类和LocalDate类的使用
Java中有一个特殊的用来表示时间点的类Date,还有一个以日历表示法表示日期的类LocalDate,相比于其他类我们使用较少,但日期时间的使用之处还是很多的,我们也需要熟练掌握这两个类。Date类Date类表示一个时间点,如:"December 31,2020,23:59:59 GMT"与大多数类相同,Date类的创建使用new关键字即可如果我们不使用new关键字,像这样这样只是定义了一个对象变量deadLine,它可以引用Date类型的对象,所以一定要认识到,deadLine不是一个对象,原创 2022-06-11 22:50:34 · 2062 阅读 · 0 评论 -
什么是更改器方法?什么是访问器方法?
什么是更改器方法,什么是访问器方法?更改器方法:调用方法后对象的状态会发生改变访问器方法:调用方法后对象状态不发生变化区别在于是否只访问对象而不改变对象状态。访问器方法:以LocalDate为例。调用LocalDate的plusDays方法:调用这个方法后,nowDate表示的日期还是不会变,会生成一个距离nowDate表示日期500天后的新LocalDate对象,然后把这个对象赋给newDate,原来的nowDate实际上没有发生任何改变,他表示的日期还是没有变。同样的,String类的toUppe原创 2022-06-11 22:51:02 · 1413 阅读 · 0 评论 -
如何保证Controller 的并发安全?
单例模式(Singleton)是程序设计中一种非常重要的设计模式,设计模式也是Java面试重点考察的一个方面。面试经常会问到的一个问题是:SpringMVC中的Controller是单例还是多例,很多同学可能会想当然认为Controller是多例,其实不然。Tomcat官网截图根据Tomcat官网中的介绍,对于一个浏览器请求,tomcat会指定一个处理线程,或是在线程池中选取空闲的,或者新建一个线程。Each incoming request requires a thread for the durati原创 2022-06-12 21:15:58 · 275 阅读 · 0 评论 -
Java中的大数是什么?怎么用?
概念极少数特殊情况下,我们会感觉整数和浮点数的精度都不能满足我们的要求,这个时候我们需要使用到两个特殊的类:BigInteger和BigDecimal。这两个类对数据的精度处理很强大,可以处理任意包含长度数字序列的数值。BigInteger可以实现任意精度的整数运算,BigDecimal可以实现任意精度的浮点数运算。使用静态的valueOf方法可以将普通的数值转化为大数类型:对于一些相当大的数,可以使用一个带字符串参数的构造器:大数类还有一些常量:BigInteger.ZERO, BigInte原创 2022-06-11 22:52:14 · 828 阅读 · 0 评论 -
Java提供的输入与输出方法,什么是Scanner,你都了解了吗?
输入与输出读取输入输出我们最常用的是System.out.println,它能将输出打印到“标准输出流”(即控制台)中,那么输入呢?相对System.out的,我们可以使用System.in来读取“标准输入流”,但是使用步骤相对于输出较为复杂一点。我们首先要构建一个与“标准输入流”System.in关联的Scanner对象(Scanner类定义在java.util包中)。像这样构造好Scanner对象之后,我们就可以使用Scanner类的各种方法进行输入操作了。nextLine方法表示将读取一行输入:原创 2022-06-12 21:16:12 · 747 阅读 · 0 评论 -
字符串对象:String,StringBulilder,StringBuffer
String从概念上来说就是Unicode字符序列,且Java没有内置的字符串类型,而是在Java类库中提供了一个预定义类String,每个用双引号括起来的字符串都是String类的一个实例。子串String类提供了一个substring可以从一个较大的字符串提取出一个子串,例如:substring的第一个参数是复制的起始位置(最小是0),第二个参数是复制的截止位置,复制长度为第二个参数减第一个参数得到的值。拼接1. Java允许使用+号拼接字符串2. 当将一个字符串与一个非字符串的值进行拼接时,..原创 2022-06-12 21:16:31 · 226 阅读 · 0 评论 -
for 与 foreach(增强for循环) 的区别到底有多大,你了解多少?
for循环和foreach循环区别在哪?我们以一个问题为例:在foreach当中能不能删除list里面的元素?那for呢?接下来我们来探讨一下是否能够如此。首先,我们一一段代码为例:遍历后结果如下:结果毫无疑问。我们再来看看编译后的源码(idea自带,在target包里打开你的类源码文件即可):可见,遍历数组使用的是原始for循环,集合的话使用的是Iterator迭代器。哦的k!接下来我们来删除元素:使用for循环:结果:显然成功!使用foreach:结果:显然木有原创 2022-06-12 21:17:27 · 1091 阅读 · 1 评论 -
用好这个资源网站,不会前端也能独立地做出高级感十足的网页
小编在学校学习时,确定了自己的未来路线是走后端开发,当时想自己做个网页练手。何苦前端知识不够完备,只是略微了解,因此小编在网上查找有没有其他办法,于是小编找到了这个非常牛掰的前端资源网站——CodePen。CodePen的使用非常简单,基本上我们只需要复制粘贴里面自己想要的资源代码到自己的编译器上就行了,然后加几行代码将CSS和JavaScript文件导入到HTML中即可(别告诉我你是后端程序员,所以不会这种操作,这算是很基础了,不是借口哦)CodePen可以使用GitHub账号登录,里面展示了当前比较火的原创 2022-06-13 21:42:27 · 819 阅读 · 1 评论