自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 全面理解jvm

解决性能调优,优化内存空间,防止服务崩掉的问题。同时是java的工作环境, 一些基于java开发的语言Scale , Jpython都可以运行在java虚拟机上。了解下计算器底层01和易经的关系。

2024-02-03 00:05:05 233 1

原创 Gateway网关路由以及predicates用法(项目中使用场景)

Gateway网关路由以及predicates用法(项目中使用场景)

2023-08-19 18:44:22 1665

原创 SpringBoot项目配置明文密码泄露问题的处理方式

SpringBoot项目配置明文密码泄露问题的处理方式

2022-12-02 06:18:06 463 1

原创 idea的忽略文件

忽略文件

2022-06-30 10:43:23 872

原创 枚举的应用

枚举

2022-06-29 15:31:11 167

原创 java连接ftp和sftp的区别(最详细)

java连接ftp和sftp

2022-06-10 10:26:30 3615

原创 字节流的转换和应用

如果是pdf下载的字节保存文件,这种情况需要做文件的传输和流的转换://更新pdf文件File file = new File("test.pdf");FileOutputStream fileOutputStream = new FileOutputStream(file);fileOutputStream.write(bytes);fileOutputStream.close();//绝对路径为./test.pdffile.delete();......

2022-04-13 10:22:38 281

原创 maven引入lib下jar包的方式

pom引入包和打包方式

2022-04-11 21:01:00 5447

原创 JAVA POI实现Word填充(DOC)

填充word

2022-03-09 14:22:31 5799

原创 排查linux上服务停的原因

思路?linux服务器上java进程突然消失的原因但是进程还在1.看下home下会不会有内存溢出什么的文件导致的服务假停现象,2.查看进程是否监听,linux如何查询端口是否使用各种思路。。接口访问不了,但是呢jar包的进程还是存在的ps -ef|grep XX.jar是有的啊?http://xx.xx.xx/api/接口名称 报404服务假停,可能是内存过大,日志超出限制,有个home的目录,我们看下这个目录下有啥内存溢出或者相关的文件可以跟踪,继续排查中。。难定位但是有挑

2022-02-24 17:48:14 2593

原创 redis缓存清理

     Redis缓存清理1.访问redis根目录 cd /usr/local/redis-2.8.192.登录redis:redis-cli -h 127.0.0.1 -p 63793.查看所有key值:keys *4.删除指定索引的值:del key5.清空整个 Redis 服务器的数据:flushall6.清空当前库中的所有 key:flushdb应用场景比如一些系统登录权限配置的,每次都要查询数据库。可以配置在redis先查询redis,如果没有则新建一个redis

2022-02-21 11:50:07 1810

原创 Spring源码之IOC加载流程

根据源码步骤整理出来的Spring加载流程,从AnnotationConfigApplicationContext开始public AnnotationConfigApplicationContext(Class<?>... componentClasses) { //加载初始化文件 this(); //注册配置类 register(componentClasses); //IOC容器刷新接口 refresh();}具体的步骤见流程图:创..

2022-02-16 23:37:56 270

原创 程序员的修炼之路(突破)

讲个笑话简单,真的换行,还是挺困难的。我大学毕业开始做程序员,之后做项目经理,再是项目总监,现在是咨询顾问,在IT行业摸爬滚打十几年,也是个IT老兵了。基于我的经历和体会,讲一下程序员如何转行,以及相关的利弊。IT程序员这个工作,对于刚大学毕业的同学,还是很具吸引力的,起步薪资相对较高,后续薪资提升也快,所以很受欢迎。但是,程序员工作太累,不断地加班,再加班,996......如果以为程序员仅仅是加班太累,那就大错特错了!加班不是程序员的全部。不断加班的同时,还要不断的学习,这比加班还要难!

2022-01-27 15:16:10 559

原创 http和https连接下载

给一个可以下载的http地址和https地址,分别用不同的方式来下载,https需要SSL证书,另外呢,http和https如何转换? 不要用https来访问http 解决了蛮久的,最后发现是网络原因,外网连接不上,所以联调的时候,用内网和外网分别请求,先排除网络原因.(为啥没想到断开网络用外网连接请求呢?感觉思路啊,还是得多训练这种思维和处理问题的方式)/** * 获取网络图片流 * * @param url * @return */public static byte[] get.

2022-01-24 16:22:17 18195 1

原创 从源码分析Spring的容器加载过程

加载的过程我画了一个流程图方便理解,从读取配置文件一直到生成Bean的一个过程:

2022-01-23 08:20:02 497

原创 FreeMarker填充技术

Freemark填充技术的实现

2022-01-21 08:44:15 1268

原创 自定义校验工具类的开发

我发现了个问题,在前后端联调的时候,定义的参数不规范,没有进行校验。导致两方沟通,哪些字段必传,另外会写很多 if(fieldA = null) { 提示} if(fieldB= null) { 提示} 这样的方法下面我写一个工具类解决这个问题 1.在校验的方法上写上注解import javax.validation.constraints.NotBlank;import java.util.List;@Data@ApiModel(value = "SysPriceDTO对象", ...

2021-10-27 10:20:09 170

原创 jdk1.8新特性

一、引言  jdk1.8出来已经一段时间了,现在1.9也已经出来了,但是很多公司(我们公司也一样)不太愿意升级到高版本的jdk,主要是有老的项目要维护,还有升级的话配套的框架也要升级,要考虑的细节事情太多。  前段时间去面试,问到了jdk1.8的新特性,博主答得不是很好,今天抽了一段时间把这些都总结一下。二、新特性  1、default关键字  在java里面,我们通常都是认为接口里面是只能有抽象方法,不能有任何方法的实现的,那么在jdk1.8里面打破了这个规定,引入了新的关键字defa

2021-01-05 20:13:59 146

原创 jdk1.8之Stream

在Java1.8之前还没有stream流式算法的时候,我们要是在一个放有多个User对象的list集合中,将每个User对象的主键ID取出,组合成一个新的集合,首先想到的肯定是遍历,如下: List<Long> userIdList = new ArrayList<>(); for (User user: list) { userIdList.add(user.id); } 或者在1.8有了lambda表达式以后,我们会这样写:.

2021-01-03 00:40:13 509

原创 2020年高级程序员必备面试题

JDKjdk1.8版本后的新特性有哪些?如何避免空指针异常?DubboDubbo是什么?Dubbo 和 Spring Cloud 有什么区别?dubbo都支持什么协议,推荐用哪种?Dubbo需要 Web 容器吗?Dubbo内置了哪几种服务容器?Dubbo里面有哪几种节点角色?Dubbo的服务注册与发现的流程图是怎样的?Dubbo默认使用什么注册中心,还有别的选择吗?Dubbo有哪几种配置方式?Dubbo 核心的配置有哪些?Dubbo启动时如果依赖的服务不可用会怎样?Dub

2020-12-24 20:13:25 608 1

原创 volatile,synchronized,lock的区别

1、概述在研究并发程序时,我们需要了解java中关键字volatile和synchronized关键字的使用以及lock类的用法。首先,了解下java的内存模型:(1)每个线程都有自己的本地内存空间(java栈中的帧)。线程执行时,先把变量从内存读到线程自己的本地内存空间,然后对变量进行操作。(2)对该变量操作完成后,在某个时间再把变量刷新回主内存。那么我们再了解下锁提供的...

2019-10-17 13:26:19 265

原创 数据库分库分表

垂直拆分垂直分表也就是“大表拆小表”,基于列字段进行的。一般是表中的字段较多,将不常用的, 数据较大,长度较长(比如text类型字段)的拆分到“扩展表“。 一般是针对那种几百列的大表,也避免查询时,数据量太大造成的“跨页”问题。垂直分库垂直分库针对的是一个系统中的不同业务进行拆分,比如用户User一个库,商品Producet一个库,订单Order一个库。 切分后,要放在多个服务器上...

2019-08-26 16:25:55 124

原创 Excutors框架运用

Executors是一个工厂类,可以方便的创建各种类型Executor或线程池:newSingleThreadExecutor():创建一个Executor,顺序执行一个任务队列,每次只能执行一个任务。newFixedThreadPool(nThreads):创建一个有固定数目线程的线程池,每次最多执行nThreads个任务,如果任务多于nThreads,多于的线程置于等待队列中...

2019-08-22 07:50:46 267

原创 创建启动线程的两种方法

方式一:继承Thread类;步骤:1)定义一个类 A继承于java.lang.Thread类;2)在A类中覆盖Thread类中的run方法;3)在run方法中编写需要执行的操作------run方法里的线程执行体;4)在main方法(线程)中,创建线程对象,并启动线程。创建线程类对象:A类 a = new A类( );...

2019-08-22 00:11:44 596

转载 SpringBoot之集成Redis NoSql数据库

本篇文章只是简单的介绍一下SpringBoot集成Redis的使用(不包括Redis集群的使用),算是一篇入门文章吧。下面我们进入正题。前期准备我们现在pom.xml中引入redis的配置:[html] view plain copy&lt;dependency&gt;      &lt;groupId&gt;org.springframework.data&lt;/groupId&gt;    ...

2018-05-23 14:01:00 159

原创 java8新特性

使用Stream基本步骤1. 创建Stream;2. 转换Stream,每次转换原有Stream对象不改变,返回一个新的Stream对象(**可以有多次转换**);3. 对Stream进行聚合(Reduce)操作,获取想要的结果;List&lt;String&gt; list = Arrays.asList("aa", "bb", "cc", "a", "b", "c",&

2018-05-18 15:46:19 128

转载 二叉树算法

http://www.cnblogs.com/eniac12/p/5329396.html#s1

2018-05-14 19:20:50 192

转载 触发器创建和使用

1.触发器的定义触发器的定义如下图。它与存储过程的区别在于触发器是被动调用的 ,即在满足特定事件的情况下被执行,而存储过程是在使用操作语句时主动进行调用。触发器大致分为两种:DDL触发器和DML触发器,相对应的具体定义如下。2.创建触发器2.1创建INSERT触发器INSERT触发器是DML触发器的一种,其语法格式如下。以AdventureWorks2012中的Sales.Currency表为例,...

2018-05-14 13:43:12 18068

转载 探析Spring AOP(一):Spring AOP的概念和使用

一、AOP的核心概念AOP(Aspect Oriented Programming),是面向切面编程的技术。AOP基于IoC基础,是对OOP的有益补充,流行的AOP框架有Sping AOP、AspectJAOP技术它利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为”Aspect”,即切面。所谓”切面”,简单说就是那些与业务无关,却为...

2018-05-13 15:53:09 263

原创 数据库设计和优化

函数应用:select * from employee order by deptid desc,salary asc  【排序】select a.ename,a.salary,a.deptid  from emp a,    (select deptd,avg(salary) avgsal from emp group by deptid ) b  where a.deptid=b.deptid...

2018-05-06 21:08:40 269

原创 java线程通讯

正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。本文涉及到的知识点:thread.join(), object.wait(), object.notify(), CountdownLatch, CyclicBarrier, FutureTask, Callable 等。下面我从几个例子作为切入点来讲解下 Java ...

2018-05-05 17:35:05 138

转载 classLoader类加载器如何加载class

ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。理解ClassLoader的加载机制,也有利于我们编写出更高效的代码。ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去,程序就可以正确运行了。但是,jvm启动的时候,并不会一次性加载所有的class文件,而是根据需要去动态加载。想想也是的,一次性加载那么多j...

2018-05-05 11:54:35 4412 3

转载 线程同步和通讯

线程同步什么是线程同步?当使用多个线程来访问同一个数据时,非常容易出现线程安全问题(比如多个线程都在操作同一数据导致数据不一致),所以我们用同步机制来解决这些问题。实现同步机制有两个方法:1。同步代码块:synchronized(同一个数据){} 同一个数据:就是N条线程同时访问一个数据。2。同步方法:public synchronized 数据返回类型 方法名(){}就是使用 synchroni...

2018-05-03 20:45:24 327 2

原创 JAVA细节

1.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,j...

2018-05-03 17:02:26 205

原创 scala模式匹配,隐式转换

模式匹配: 一个模式匹配包含了一系列备选项,每个都开始于关键字 case   def main(args: Array[String]) {       print(1);   }   //模式匹配   def fun(x:Int):String = x match{     case 1 =&gt; "one"     case 2 =&gt; "two"     case _ =&gt; "m...

2018-05-03 15:39:13 194

原创 Scala基础

Scala基础 Scala 定义 :val msg:String = "hello"  条件判断:  val m = if(i&gt;200) 100 else 0 定义数组:Val arr = Array(1,2,3);object while1 {   def main(arrgs:Array[String]){      //循环      val str = Array("hoodoop"...

2018-05-03 10:08:56 166

原创 Scala函数式编程(笔记)

http://www.runoob.com/scala/scala-closures.html  教程 函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法方法的定义:def add(x:Int,y:Int) = {x+y}方法名add 参数列表 返回Int类型add: (x: Int, y: Int)IntUnit代表没有返回值类型 def SayHi():Unit = {   ...

2018-05-02 12:47:49 173

原创 Netty应用

Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 Maven方便版本管理,引入netty依赖就可以把 netty jar包下载 io 目录下了不用每次导入jar包   先写服务端:class NettyServer {    def bind(host:String,port:Int)...

2018-05-02 12:46:59 139

转载 Spring Cloud

Spring Cloud是什么?Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,springcloud就是这些微服务的大管家,采用了微服...

2018-05-02 12:45:55 157

转载 spring redis

http://www.ityouknow.com/spring-bootredis介绍Redis是目前业界使用最广泛的内存数据存储。相比memcached,Redis支持更丰富的数据结构,例如hashes, lists, sets等,同时支持数据持久化。除此之外,Redis还提供一些类数据库的特性,比如事务,HA,主从库。可以说Redis兼具了缓存系统和数据库的一些特性,因此有着丰富的应用场景。本...

2018-05-02 12:45:24 137

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除