JAVA
flyingnet
编程圈小炮儿~~~
展开
-
IDEA批量修改变量快捷键
2.alt+F7(find usages):光标移至方法名,alt+F7,打开Find框,展示方法以及使用这些方法的地方3.Ctrl+F7(find usages in file):感觉同Ctrl+F(find...),但是,你会发现他可以同时查找多个单词,同时高亮显示用Ctrl+F的时候打开如下标志:通配符;然后自己加了个‘|’分隔符 ,达到了同样效果,所以原创 2022-05-07 12:49:31 · 1046 阅读 · 0 评论 -
git:修改.gitignore后生效
在使用git的时候我们有时候需要忽略一些文件或者文件夹。我们一般在仓库的根目录创建.gitignore文件在提交之前,修改.gitignore文件,添加需要忽略的文件。然后再做add commit push 等但是有时在使用过称中,需要对.gitignore文件进行再次的修改。这次我们需要清除一下缓存cache,才能是.gitignore 生效。具体做法:git rm -r --cached . #清除缓存git add . #重新trace filegit commit -m..转载 2022-01-26 20:37:54 · 7942 阅读 · 0 评论 -
intellij idea中快速抽取方法
问题:有时候一个方法里面嵌套了很多逻辑,想拆分为多个方法方便调用;或者一个方法复用性很高,这时,这个方法嵌套在局部方法里面肯定是不方便的,如何快速抽取出这个方法?public class Demo { private static void getInfo(Object obj) { Class<?> clazz = obj.getClass(); Method[] methods = clazz.getMethods(); for ...转载 2022-01-13 08:44:39 · 8230 阅读 · 0 评论 -
深入理解单例模式:静态内部类单例原理
本文主要介绍java的单例模式,以及详细剖析静态内部类之所以能够实现单例的原理。OK,废话不多说,进入正文。首先我们要先了解下单例的四大原则:1.构造私有。2.以静态方法或者枚举返回实例。3.确保实例只有一个,尤其是多线程环境。4.确保反序列换时不会重新构建对象。我们常用的单例模式有:饿汉模式、懒汉模式、双重锁懒汉模式、静态内部类模式、枚举模式,我们来逐一分析下这些模式的区别。1.饿汉模式:public class SingleTon{ private static ..转载 2021-03-11 16:57:40 · 510 阅读 · 0 评论 -
jvm进行Major GC的时候为什么会同时伴随Minor GC呢?
大家都知道在分代gc中,jvm会在青年代堆空间不足时触发Minor gc,在老年代堆空间不足时触发Full gc,但实际上,Full gc只是一个逻辑称呼,是同时进行Major gc和Minor gc的一个统称而已。那问题来了,为什么我们看不到只进行老年代堆内存回收而执行Major gc的情况呢?其实,jvm之所有这样是一种优化设计(其实也是一种妥协),目的是避免创建新生代引用老年代的跨代引用指针的Remember Set,同时,降低与之相关的Mutator写屏障开销。在空间和时间上都有很大的优化提原创 2020-12-09 15:04:10 · 686 阅读 · 5 评论 -
单例模式(防止反序列化恢复对象)
/** * 单例模式之防止利用反序列化恢复java对象 **/public class Singleton implements Serializable{ private static Singleton instance; private String name; private Singleton(String name){ System.out.println("调用有参数的构造器"); this.name = name; }.转载 2020-12-09 14:50:36 · 188 阅读 · 0 评论 -
十种GC收集器及原理(5)—G1
Garbage-First Collector(G1)是Oracle HotSpot Java虚拟机(JVM)6中引入的垃圾收集算法,自JDK 7 Update 4起受支持。它计划取代JVM 7中的并发标记清除收集器(CMS),并已实现。 Java 9中的默认设置。原创 2020-10-15 09:52:24 · 652 阅读 · 0 评论 -
十种GC收集器及原理(4)—CMS
CMS原创 2020-10-15 09:26:04 · 367 阅读 · 0 评论 -
为什么Java进程使用的内存(RSS)比Heap Size大?
Java进程使用的虚拟内存确实比Java Heap要大很多。JVM包括很多子系统:垃圾收集器、类加载系统、JIT编译器等等,这些子系统各自都需要一定数量的RAM才能正常工作。当一个Java进程运行时,也不仅仅是JVM在消耗RAM,很多本地库(Java类库中引用的本地库)可能需要分配原生内存,这些内存无法被JVM的Native Memory Tracking机制监控到。Java应用自身也可能通过DirectByteBuffers等类来使用堆外内存。那么,当一个Java进程运行时,有哪些部分在消耗内存呢转载 2020-09-09 15:58:05 · 3585 阅读 · 0 评论 -
Dubbo和SpringCloud的区别
最大区别:SpringCloud抛弃了Dubbo的RPC通信,采用的是基于HTTP的REST方式。严格来说,这两种方式各有优劣。虽然从一定程度上来说,后者牺牲了服务调用的性能,但也避免了上面提到的原生RPC带来的问题。而且REST相比RPC更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更加合适。品牌机与组装机的区别很明显,Spring Cloud的功能比DUBBO更加强大,涵盖面更广,而且作为Spring的拳头项目,它也能够与Spr...转载 2020-06-29 13:40:44 · 1590 阅读 · 0 评论 -
springboot与dubbo整合的三种方式
常用的方式有以下3种:1、导入dubbo-starter,在appication.properties配置属性,使用@Service暴露服务,使用@Refrence引用服务。 【注意:开启@EnableDubbo注解】2、保留dubbo xml配置文件,导入dubbo-starter,使用@ImportRecource导入dubbo的配置文件即可。 【如果想做到方...原创 2020-01-22 10:49:56 · 191 阅读 · 0 评论 -
springboot整合shiro实现系统访问控制
最近,因为工作关系,涉及到需要从零开始搭建一套应用系统开发框架。系统权限管控这块,我选择了shiro来实现。因为服务端集成框架已经确定使用springboot1.5,所以就需要将shiro进行整合。 首先,先介绍下项目技术栈如下: 前端:bootstrap3、jquery1.10 服务端:jdk8、springboot1.5、sprin...原创 2019-06-20 18:57:35 · 934 阅读 · 0 评论 -
Java8内存模型—永久代(PermGen)和元空间(Metaspace)
一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩展。当栈调用深度大于JVM所允许的范围,会抛...转载 2018-12-18 17:43:41 · 173 阅读 · 0 评论 -
拦截器(Interceptor)和过滤器(Filter)的执行顺序和区别
一、引言本来想记录一下关于用户登陆和登陆之后的权限管理、菜单管理的问题,想到解决这个问题用到Interceptor,但想到了Interceptor,就想到了Filter,于是就想说一下它们的执行顺序和区别。关于Interceptor解决权限和菜单管理的问题,在放在下一篇写吧,就酱紫。二、区别1、过滤器(Filter)首先说一下Filter的使用地方,我们在配置web.xml时,总会配置下...转载 2018-12-17 20:34:23 · 747 阅读 · 0 评论 -
SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍
@Controller//@ResponseBodypublic class HelloController { @RequestMapping(value="/hello",method= RequestMethod.GET) public String sayHello(){ return "hello"; }}如果直接使用@Contr...转载 2018-11-09 14:25:01 · 193 阅读 · 0 评论 -
Tomcat7 iframe URL中包含中文乱码的解决办法
昨天在开发前端程序的时候,需要在iframe的URL中携带一个参数包含中文,测试时发现乱码了。下面是乱码的效果:经过各种查阅,发现问题是这样引起的:Tomcat下默认的编码使用ISO8859-1,而我的页面指定了UTF8编码,这样造成了中文乱码。解决办法有2种:1.【推荐】修改Tomcat的server.xml文件,在如下位置增加 URIEncoding原创 2017-09-22 09:20:40 · 1596 阅读 · 0 评论 -
IntelliJ Idea 常用快捷键大全
转载自:http://blog.csdn.net/childhooders/article/details/4319679Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者转载 2017-10-28 16:05:12 · 253 阅读 · 0 评论 -
weblogic10.3部署J2EE项目时,引用JPA冲突异常的解决方法
最近在将项目从Tomcat 7部署到Weblogic 10.3时,出现了一个错误:Caused By: java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;经过分析、百度一下,发现了问原创 2017-10-14 11:26:44 · 1448 阅读 · 0 评论 -
什么是Intellij IDEA
原创 2017-10-23 19:36:55 · 4059 阅读 · 0 评论 -
weblogic10.3 启动报错 Unrecognized option: -jrockit Error: Could not create the Java Virtual Machine
今天在使用weblogic10.3+jdk7创建domain的时候,建好domain后启动报如下错误信息:Unrecognized option: -jrockitError: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Program will exit.启动原创 2017-11-28 11:43:42 · 20322 阅读 · 0 评论 -
weblogic10.3登录控制台报错Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandle解决办法
今天在自己电脑上安装了weblogic10.3.5+JDK7,安装和启动都成功了。但是,通过网页访问控制台时,输入正确的用户名和口令后,点击“登录”时,无法正常进入控制台。查看后台日志报错:Exception in thread "[ACTIVE] ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tun原创 2017-11-28 14:38:13 · 6548 阅读 · 0 评论 -
在java中使用spring整合cxf实现webservice
在java中实现webservice有两种常用的方式,一种是cxf,另一种是axis。这两种方式的区别大家可以自己在网上找找参考一下。cxf可以与spring进行整合,是一款不错的webservice产品。今天给大家讲解一下使用spring整合cxf实现webservice的方法。1 创建服务器端程序1.1 新建一个web工程1.1.1 工程环境所依赖的各软件的版本首先需要新建一个web工程,工程...转载 2018-04-02 16:38:14 · 345 阅读 · 0 评论 -
Protobuf协议的Java应用例子
Protobuf协议,全称:Protocol Buffer 它跟JSON,XML一样,是一个规定好的数据传播格式。不过,它的序列化和反序列化的效率太变态了……来看看几张图你就知道它有多变态。 Protobuf的Java实例一、 安装Protobuf去Protobuf的GitHub下载,解压。如果你是Windows环境,则还要下载多一个东西。protobuf-2.5.0-windows.zip。解压...转载 2018-04-10 17:38:01 · 1658 阅读 · 0 评论 -
Cas单点登录(整合shiro版本)
单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS框架:CAS(Central Authentication Service)是实现SSO单点登录的框架。逻辑关系图:(注:图为转载)分析:1.图中用户访问cas客户端;2.需要登录时,重定向到Cas-Server(Cas服务),其中service为Cas-Cli...转载 2018-05-25 10:54:28 · 4783 阅读 · 0 评论 -
微服务API版本控制
API版本控制常用实践URLhttp://example.com/v1/helloworldHEADER各大公司做法http://www.lexicalscope.com/blog/2012/03/12/how-are-rest-apis-versioned/Spring Boot实践API版本管理原理在SpringMVC中RequestMappingHandlerMapping是比较重要的一个角...转载 2018-05-25 10:58:12 · 7602 阅读 · 0 评论 -
JDK8堆默认比例
JDK8 默认的,新生代 ( Young ) 与老年代 ( Old ) 的比例的值为 1:2 ( 该值可以通过参数 –XX:NewRatio 来指定 ),即:新生代 ( Young ) = 1/3 的堆空间大小。老年代 ( Old ) = 2/3 的堆空间大小。其中,新生代 ( Young ) 被细分为 Eden 和 两个 Survivor 区域,这两个 Survivor 区域分别被命...转载 2018-08-09 19:38:10 · 8113 阅读 · 0 评论 -
Cannot assign requested address问题解决
TIME_WAIT过多及解决问题场景大量高并发日志传输,短连接,每次在传输一定数量的日志后,开始出现以下错误 Failed to establish a new connection: [Errno 99] Cannot assign requested address问题原因通过下述命令可以查看当前端口占用及分类 netstat -n | awk '/...转载 2018-09-17 22:25:57 · 11026 阅读 · 0 评论 -
Tomcat 7.0.81 URL参数包含大括号{}报错的解决办法
今天在Tomcat 7.0.81进行测试时,发现一个BUG,前台通过ajax访问后台controller时,无法进行页面跳转。Tomcat控制台报错,错误信息如下:信息: Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged a原创 2017-09-30 15:54:44 · 7461 阅读 · 0 评论