![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
「已注销」
这个作者很懒,什么都没留下…
展开
-
java-最大不重复字符串长度
描述给定一字符串,求其中最大不重复子串长度。exp:input:"",output:0input:"aaa",output:1input:"abcbabc",output:3代码public class Fun { public static int maxLenthNoRepeat(String str){ if(str==null || str.isEmpty原创 2017-03-18 06:59:00 · 1295 阅读 · 0 评论 -
Maven学习笔记
一 Maven1、简介2、安装二 Maven的简单使用1、一些约定使用Archetype生成项目骨架2、坐标(Coordinate)3、依赖(Dependency)依赖配置依赖范围传递性依赖依赖调解原则4、仓库本地仓库中央仓库私服三 Maven的生命周期和插件1、生命周期clean生命周期default生命周期site生命周期使用命...原创 2018-04-05 15:09:09 · 323 阅读 · 0 评论 -
Mybatis大于小于符号的替换
在Mybatis中,把一部分查询的语句分离到了xml文件中,因此在使用的时候不可以使用影响xml格式的一些符号,比如> <之类的符号,因此要使用这些符号的替换符号。对照表如下: 符号 替换符号 > &gt; >= &gt;= < &lt; <= &lt;=...原创 2018-05-18 08:36:13 · 2012 阅读 · 0 评论 -
redis和redis在java中的使用
Redis 简介Redis 优势Redis与其他key-value存储有什么不同Redis下载Redis 安装(Linux)下载编译这里有的坑启动会遇到的一些问题1、第一个提示somaxconn这个值为128太小了,这个值是系统的网络连接队列大小,而redis的TCP backlog设置的值为511,因此受限,所以修改下系统的值2、overcommit_memory设...原创 2018-05-18 19:12:14 · 502 阅读 · 0 评论 -
SpringBoot配置文件的替换
使用spring.profiles.active在工作中,测试或上线的时候一定会遇到的问题就是修改配置。一般来说都有如下几种配置可用:dev(开发环境),test(测试环境),pro(生产|线上环境)。这时候,我们就需要去注释掉配置文件中的所有配置,再解开需要的配置。这时候,就可以通过spring.profiles.active的配置来解决这个问题。application.proper...原创 2018-08-06 20:43:26 · 1433 阅读 · 0 评论 -
JVM的内存和GC
内存栈内存(虚拟机栈和本地方法栈)每个线程存有一个虚拟机栈,方法调用会生成一个栈帧,压入虚拟机栈。StackOverFlowError异常若单个线程请求的栈深度大于虚拟机允许的深度,则会抛出StackOverflowError(栈溢出错误)。可以通过无限递归来模拟,优化方式可以增大栈内存大小,以此来增加每个栈可以容纳的栈帧数量。栈区内存溢出不同于StackOverflowError,O...原创 2018-10-16 11:24:27 · 315 阅读 · 0 评论 -
一篇文章读懂java迭代器
概述迭代器,提供了在不了解集合内部实现方法的时候遍历集合的能力。可以将容器内部实现与遍历操作隔离、解耦。使用迭代器实现一个简单集合通过自定义一个简单集合,并在对其使用迭代器进行遍历,达到掌握迭代器的目的。集合描述一个简单的集合,规则如下1、只能存放三个字符串2、若插入第四个数据,则覆盖第一个位置。实现接口描述Iterable接口描述如果想用foreach对集合遍历,则必须...原创 2019-04-24 08:07:58 · 132 阅读 · 1 评论 -
java并发编程的艺术 - 第一章笔记
线程上下文CPU通过调度算法(常用时间片轮转)来切换线程,线程上下文则是在切换过程中,用来保存线程的执行状态,可以理解为当前执行线程的快照。线程和速度为什么多线程会快串行变为并发执行cpu的运算速度远远大于io速度,可以将部分io阻塞的时间用于计算其他任务什么时候多线程不会快计算密集型任务,如果cpu一直保持高负荷,即使多线程也不会加快运算速度,而且会因为频繁切换上下文带来额外...原创 2019-08-01 19:54:09 · 111 阅读 · 0 评论 -
java并发编程的艺术 - 第二章笔记
术语描述memory barries(内存屏障)处理器指定,实现对内存操作的顺序限定cache line(缓冲行)缓存中的最小存储单位,需要使用多个主内存周期(存储周期?)atomic operations(原子操作)不可中断的操作cache line fill (缓存行填充)处理器读取整个缓存行到适当的缓存cache hit(缓存命中)处理器...原创 2019-08-01 19:56:30 · 146 阅读 · 0 评论 -
java并发编程的艺术 -(扩展:CPU缓存一致性)
cache的由来和带来的问题cpu在摩尔定律的指导下,处理能力远远大于内存和硬盘的读写能力。就像用内存来解决硬盘的IO瓶颈一样,cache则是被用来处理cpu于内存之间的读写瓶颈。cache的工作原理基于局部性原理(解释如下):时间局部性:如果某个数据被访问,那么不久将来它很可能再次被访问。空间局部性:如果某个数据被访问,那么与它相邻的数据也可能被访问。三级缓存由于CPU的运算速度超...原创 2019-08-01 19:59:06 · 133 阅读 · 0 评论 -
java并发编程的艺术 - 第三章笔记
java内存模型java内存模型的抽象结构JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(Main Memory)中,每个线程都有一个私有的本地内存(Local Memory),本地内存中存储了该线程以读/写共享变量的副本。ps:本地内存是JMM的一个抽象概念,并不真实存在。它涵盖了缓存、写缓冲区、寄存器以及其他的硬件和编译器优化。[外链图片转存失败(img-J5w...原创 2019-08-31 17:47:00 · 640 阅读 · 0 评论 -
SpringCloud:配置中心(spring cloud config)
在分布式的微服务架构中,服务数量会越来越多,而每个服务实例都会有一个或几个配置文件(yml,properties,json…)。而这些文件,分布在系统的各个角落,管理起来特别麻烦,因此出现了一些可以集中管理配置的组件。这里的spring cloud config就是...原创 2018-03-27 16:29:06 · 426 阅读 · 0 评论 -
Java动态代理(JDK和Cglib)
动态代理代理模式,是为其他对象提供一个代理来控制对某个真实对象的访问。代理类负责对调用的消息进行处理和转发,以及在委托类执行后的一些后续操作的处理。代理类似一个演员的经纪人,负责对所有的活动进行筛选和过滤,并且将消息转发给该演员,在演员演出后,负责做一些收尾工作。动态代理,它在静态代理的基础上又迈进了一步。可以动态的创建代理,并且动态的处理对所代理方法的调用。动态代理则分为以下两种: -...原创 2018-03-27 12:57:21 · 401 阅读 · 0 评论 -
SpringBoot(二)——使用Mysql和JPA
之前一篇博客写了如何搭建一个简单的SpringBoot程序,搭建好了之后,就已经有了一个简单的WEB程序。不过这是一个没有数据源的程序,就相当与一本没有内容的书,这里就通过一个简单的Mysql数据库和JPA来完成一些基本的CIUD操作。添加需要的依赖项 <!-- JPA依赖 --> <dependency> <groupId>org.springframework.bo原创 2017-11-27 19:22:51 · 3715 阅读 · 0 评论 -
@Controller和@RestController的区别
@Controller和@RestController的区别和使用时机原创 2017-12-04 16:41:13 · 1070 阅读 · 0 评论 -
编写一个JPA测试用例
JPA测试用例,验证JPA和mysql配置的正确性。原创 2017-11-28 09:07:36 · 1703 阅读 · 0 评论 -
JAVA的多态性
多态是面向对象语言中,抽象和继承之后的第三种基本特性,多态依赖于数据抽象和继承。原创 2017-12-26 09:48:43 · 203 阅读 · 0 评论 -
“Usage of API documented as @since 1.8+”报错的解决办法
“Usage of API documented as @since 1.8+”报错的解决办法原创 2018-01-04 09:45:34 · 40592 阅读 · 5 评论 -
SpringBoot(三)——使用Thymeleaf模板
一 特点二 使用1 配置2新建模板文件3新建Controller4启动项目并且访问thymeleaf是一种和FreeMarker类似,在后台生成UI的JAVA模板引擎,可以替代JSP。同时thymeleaf也是SpringBoot推荐的解决方案,在这里先不讨论优劣,只是简单介绍一下它的特点和简单的使用。一 特点允许定义多种类型模板 HTMLXMLTEXTJAVASCRIPTCS原创 2018-01-05 10:10:07 · 958 阅读 · 0 评论 -
JAVA的BIO/NIO学习总结
BIO(阻塞IO)线程阻塞,因此如果没有优化,一个服务端只能为一个客户端服务。阻塞点:等待连接时 ServerSocket.accept()IO操作阻塞 inputStream.read()多线程IO业务处理代码交给其他线程单独处理,也就是将IO阻塞放到其他线程中,将is.read()阻塞交给其他线程。 1. 缺点:线程占用太多,一个线程只能处理一个IO事件。线...原创 2018-03-14 21:36:17 · 163 阅读 · 0 评论 -
LeetCode[16]: 3Sum Closest
题目描述Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have e...原创 2018-03-10 10:59:08 · 161 阅读 · 0 评论 -
算法——有序数组中值
题目描述有两个已排序数组A、B,各自大小分别为m,n。找到两个已排序数组的中值。解题思路将整个集合分为两个等长的子集,使一边的值总是大于另一边。这道题,可以将A、B看作一个整体,然后划分为左右两部分L和R,并且满足max(L)<=min(R)max(L)<=min(R) max(L)max(L)max(L) max(L) 当总个数(m+n)为偶数时,结果为:max(...原创 2018-03-06 09:13:21 · 510 阅读 · 0 评论 -
使用SpringAOP
面向切面编程应用场景SpringAOPSpringAOP使用示例原理问题及注意事项1、区分业务逻辑代码和非业务逻辑代码,不要将业务逻辑代码放在AOP中,不然会导致业务功能不清晰。2、不能代理内部方法调用,内部调用会使用this关键字,而不是生成的代理类。3、不能代理private、final、static方法。面向切面编程Aspect Ori...原创 2018-02-02 15:39:23 · 874 阅读 · 0 评论 -
java并发编程的艺术-第四章笔记
线程简介什么是线程现代操作系统调度的最小单元轻量级进程线程的状态NEW: 初始状态,线程被构建,但是还没有调用start()方法RUNNABLE: 运行状态,Java线程将操作系统的就绪和运行两种状态,笼统的称做“运行中“BLOCKED: 阻塞状态,表示线程阻塞于锁WAITING: 等待状态,表示线程进入等待状态,进入该状态表示当前线程需要等待其他线程做出一些特定动作(通知或...原创 2019-09-07 18:54:12 · 589 阅读 · 0 评论