JAVA
文章平均质量分 71
周易宅
每天进步百分之一!
展开
-
JVisualVM监控jvm
1.在java的bin目录下面找到jvisualvm打开既可2.启动后会自动检测运行的java进程3.点击监视可以查看对应的CPU(这里CPU是值JVM的虚拟机)4.使用jstatd远程链接centos:下面展示一些 内联代码片。cd /usr/lib/jdk1.8jre/lib/management/ (根据自己的目录来定 )cp jmxremote.password.template jmxremote.passwordchmod 644 jmxremote.passwo.原创 2022-04-19 16:02:06 · 1995 阅读 · 0 评论 -
Java 内存模型
本文主要介绍模型产生的问题背景,解决的问题,处理思路,相关实现规则,环环相扣,希望大家看完后能对 Java 内存模型体系产生一个相对清晰的理解,知其然知其所以然。一、内存模型产生背景在介绍 Java 内存模型之前,我们先了解一下物理计算机中的并发问题,理解这些问题可以搞清楚内存模型产生的背景。物理机遇到的并发问题与虚拟机中的情况有不少相似之处,物理机的解决方案对虚拟机的实现有相当的参考意义。1.物理机的并发问题硬件的效率问题计算机处理器处理绝大多数运行任务都不可能只靠处理器“计算”就原创 2021-07-15 17:10:59 · 148 阅读 · 0 评论 -
02、SpringBoot2.3.X源码编译之Gradle
需要使用gradle进行编译Spring的可以参考。研读编译脚本和网上文章经过测试现在可以编译下载的所有Spring版本源码。写出来给大家共享,主要关注2点就可以解决编译问题。0、下载源码和gradle地址https://github.com/spring-projects/spring-frameworkhttps://services.gradle.org/distributions/1、下载源地址修改这个网上很多就不详细叙述,有个关键点要说一下,就是要覆盖所有的gra.原创 2021-02-01 16:27:34 · 7168 阅读 · 6 评论 -
01、Spring5源码编译之Gradle
需要Spring的gradle进行编译的可以参考。研读编译脚本和网上文章经过尝试现在可以编译下载的所有Spring版本源码,写出来给大家共享。主要关注2点就可以解决编译问题。0、下载源码和gradle地址https://github.com/spring-projects/spring-frameworkhttps://services.gradle.org/distributions/1、下载源地址修改这个网上很多就不详细叙述,有个关键点要说一下,就是要覆盖所有的grad.原创 2021-02-01 13:12:28 · 2088 阅读 · 0 评论 -
Java类加载机制
我们知道,我们写的java文件是不能直接运行的,我们可以在IDEA中右键文件名点击运行,这中间其实掺杂了一系列的复杂处理过程。这篇文章,我们只讨论我们的代码在运行之前的一个环节,叫做类的加载。按照我写文章的常规惯例,先给出这篇文章的大致结构;首先,认识类加载机制,然后,详细介绍类加载的过程。最后,介绍了类加载器,还有双亲委派原则。废话不多说,直接来看吧。一、什么是类的加载在介绍类的加载机制之前,先来看看,类的加载机制在整个java程序运行期间处于一个什么环节,下面使用一张图来表示:.原创 2020-12-04 11:37:56 · 253 阅读 · 0 评论 -
同一个JVM中使用不同jar包下完全相同的类
背景:在引入第三方jar包以后,偶尔会遇到不同jar包中的类冲突。这里所说的冲突,是指类的包名和类型完全相同(有的时候希望同时使用相同类的不同版本)。参考地址:https://baijiahao.baidu.com/s?id=1636309817155065432&wfr=spider&for=pc处理思路:见上图,使用原生的类加载是实现不了这个功能的,需要使用自定义类加载器,分别从不同jar中或者目录加载class文件,然后进行实例化,最后使用反射来调用(因Class动态变化,原创 2020-12-04 11:32:48 · 2099 阅读 · 0 评论 -
内网开发,Maven本地仓库中存在jar,但idea显示jar包不存在问题解决
介绍一下背景,项目要迁移进坑人的离线的内网开发,将在同事那编译通过的代码和maven仓库拷进内网,打算编译通过之后再上传私服,结果配好maven之后,本地库中的部分jar包显示没有引入,如下面的波浪线想到可能是idea提示的不正确,直接编译吧,结果编译失败,主要错误信息如下[ERROR] Failed to execute goal on project zeus-common-redis: Could not resolve dependencies for project com.hsjry原创 2020-09-10 17:08:13 · 4601 阅读 · 1 评论 -
webstorm启动不自动打开上次项目
1.打开File > Setting(快捷键:Ctrl+Alt+S)2.打开Appearance & Behavior - System Setting去掉Reopen last project on startup 勾选原创 2020-07-24 10:14:06 · 1385 阅读 · 1 评论 -
IntelliJ Idea解决Could not autowire. No beans of type found的错误提示
1.问题描述 在Idea的spring工程里,经常会遇到Could not autowire. No beans of 'xxxx' type found的错误提示。但程序的编译和运行都是没有问题的,这个错误提示并不会产生影响。但红色的错误提示在有些有强迫症的程序员眼里,多多少少有些不太舒服。2. 原因 原因可能有两个,第一个是IntellijIDEA本身工具的问题。第二个便是我们导入@Service包的时候导入包错误造成的 第一种原因,spring auto s...翻译 2020-05-14 18:16:27 · 1157 阅读 · 0 评论 -
eclipse快捷键大全
快速修正 Ctrl1+1全局 删除 Delete全局 上下文信息 Alt+?Alt+Shift+?Ctrl+Shift+SpaceJava编辑器 显示工具提示描述 F2Java编辑器 选择封装元素 Alt+Shift+↑Java编辑器 选择上一个元素 Alt+Shift+←Java编辑器 选择下一个元素 Alt+Shift+→文本编辑器 增量查找 Ctrl+J文本编转载 2008-09-24 21:05:00 · 766 阅读 · 0 评论 -
Java和Eclipse中加载本地库研究
最近在做的工作要用到本地方法,需要在Java中加载不少动态链接库(以下为方便延用Windows平台下的简写dll,但并不局限于Windows)。刚刚把程序跑通,赶紧把一些心得写出来,mark。也希望对大家的类似工作有所帮助首先,应当明确,dll有两类:(1)Java所依赖的dll和,(2)dll所依赖的dll。正是由于第(2)种dll的存在,才导致了java中加载dll的复杂性大大增加,许多说转载 2008-07-23 18:19:00 · 1377 阅读 · 0 评论 -
jasper在JSP中导出pdf和xls
环境配置1 正确安装配置java的jdk2 将ireport放到c:/ireport 3 将ant放到c:/ant(我用的是bea的ant路径是D:/bea/weblogic81/server/ant) 4 将jasperreports-1.2.0.jar 放置到当前classpath中(没有加,我使用的Ireport/lib下已经存在了)5 将ite转载 2008-10-27 09:55:00 · 4534 阅读 · 0 评论 -
SystemWideSaltSource
SystemWideSaltSource会采用一个静态字符串表示密码私钥(salt),所有用户的密码处理都会采用这一私钥。同未启用密码私钥相比,SystemWideSaltSource更为安全,因为它使得密码的破解变得更困难。默认时,它会采用“密码{密码私钥}”形式加密密码。转载 2011-11-17 11:47:05 · 665 阅读 · 0 评论 -
<context-param>的作用
的作用:web.xml的配置中配置作用1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: 和 2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文.3.容器将转化为键值对,并交给ServletContext.4.容器创建中的类实例,即创建监听.5.在转载 2011-11-22 09:12:53 · 656 阅读 · 0 评论 -
Hessian远程调用及序列化协议
demo中客户端和服务端的hessian版本都是4.0.7,下面是客户端向服务器端发送的hessian调用及序列化参数的二进制数据,这些数据作为Http Post请求的数据部分传递给了服务器端。Java代码 99 2 0 109 0 3 115 97 121 77 116 0 20 104 101 115 115 105 97 110 46 84 114 97 100转载 2011-11-23 10:27:44 · 1331 阅读 · 0 评论 -
Hessian轻量级二进制远程调用框架
Hessian是一个轻量级的二进制远程调用框架,官方文档地址,它主要包括Hessian远程调用协议、Hessian序列化协议以及客户端服务端代理等几部分,关于Hessian协议可以看下另外一篇文章Hessian远程调用及序列化协议。Hessian远程调用框架构建在Http协议之上,下面是示意图。 下面这个图是一次远程调用的过程 其中步骤3、4、5、6是核心过程,转载 2011-11-23 10:26:46 · 859 阅读 · 0 评论 -
java中堆(heap)和堆栈(stack)有什么区别
stack 和 heep 都是内存的一部分stack 空间小,速度比较快, 用来放对象的引用heap 大,一般所有创建的对象都放在这里。栈(stack):是一个先进后出的数据结构,通常用于保存方法(函数)中的参数,局部变量.在java中,所有基本类型和引用类型都在栈中存储.栈中数据的生存空间一般在当前scopes内(就是由{...}括起来的区域).堆(heap):是一个可动转载 2012-10-13 22:15:26 · 552 阅读 · 0 评论 -
Java内存模型
(原本准备把内存模型单独放到某一篇文章的某个章节里面讲解,后来查阅了国外很多文档才发现其实JVM内存模型的内容还蛮多的,所以直接作为一个章节的基础知识来讲解,可能该章节概念的东西比较多。一个开发Java的开发者,一旦了解了JVM内存模型就能够更加深入地了解该语言的语言特性,可能这个章节更多的是概念,没有太多代码实例,所以希望读者谅解,有什么笔误来Email告知:silentbalanceyh@12转载 2012-10-13 22:26:01 · 2263 阅读 · 0 评论 -
在eclipse中打开文件所在的目录
eclipse中默认是不能直接打开文件所在的目录的,需要在文件中右键--》properties--》location,复制到资源管理器中才能打开文件所在的目录。这种方法很麻烦。这里介绍一种在eclipse中直接打开文件所在目录的方法。展开如下菜单:Run ---- External Tools ---- External Tools Configurations转载 2014-11-17 21:23:27 · 692 阅读 · 0 评论 -
Java性能优化
一、JVM内存模型多核时代的到来,基于高速缓存的存储交互很好的解决了处理器与内存之间的矛盾,也引入了新的问题:缓存一致性问题。在多处理器系统中,每个处理器有自己的高速缓存,而他们又共享同一块内存(下文成主存,main memory 主要内存),当多个处理器运算都涉及到同一块内存区域的时候,就有可能发生缓存不一致的现象。为了解决这一问题,需要各个处理器运行时都遵循一些协议,在运行时需要将这些协...转载 2018-11-08 23:11:52 · 639 阅读 · 0 评论 -
java中spi机制解读
关于spi机制大部分人都很陌生,因为我们在开发过程中很少用到,但是实际上这个机制从我们接触java开始就跟我们如影随形。有些人认为使用java很简单,都是调用第三方依赖包,然后结合自己的业务逻辑就可以了,这个机制就是跟第三方有关。一、概念SPI 的全名为 Service Provider Interface,目的hi提供接口,让第三方(服务厂商或扩展框架开发者)提供自定义实现的服务功能。例...转载 2018-11-23 14:05:12 · 412 阅读 · 0 评论 -
如何在spring中配置定时任务(job)
一、在web.xml文件中进行如下配置: contextConfigLocation /WEB-INF/classes/applicationContext-*.xml 那么需要在工程下创建一个以applicationContext- 为开头的xml文件eg:applicationContext-jobconfig.xml转载 2008-01-11 20:14:00 · 9917 阅读 · 1 评论 -
公钥密码技术讲义
公钥密码技术讲义1.问题的引入1.1攻击类型根据攻击的不同方式,攻击被分为被动攻击和主动攻击。 图表1消息的正常传送 被动攻击 获得正在传送的信息。其特点是:偷听或监视传送。攻击的手段是:泄露消息内容和通信量分析。(绘图说明) 主动攻击 主动攻击主要涉及到数据流的修改或创建错误流。攻击手段是:伪装、重转载 2009-06-04 17:38:00 · 3448 阅读 · 0 评论 -
文件编码问题集锦
[原创文章,转载请保留或注明出处:http://www.regexlab.com/zh/encoding.htm]摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的内容涵盖了“中文问题”,“乱码问题”。引言“字符与编码”是一个被经常讨转载 2009-06-11 16:57:00 · 1055 阅读 · 0 评论 -
Jikes 研究虚拟机(RVM)四 当前状态
当前状态实现所有的 Java 语言功能所要求的核心功能就是全部工作,但有待于完成。一些更深奥的线程功能 ― 暂挂、恢复、时间等待等等 ― 还有待于实现。负载平衡算法还处在在初步阶段。还未提供对最终化、弱引用和类验证的支持。快速编译器接近完成。优化编译器的基础框架和它的一些级别 1 的优化已经完成并运行。更高级的优化正在开发之中。联机测量和控制器子系统处在设计阶段。Jalape�o 对 Ja转载 2008-06-15 21:12:00 · 806 阅读 · 0 评论 -
Jikes 研究虚拟机(RVM)三 动态优化编译器
动态优化编译器我们希望 Java 应用程序的计算部分只涉及 Java 源代码的一小部分。Jalape�o 的优化编译器致力于高效地编译这些字节码。优化编译器是 动态的:它在应用程序运行时编译方法。将来,优化编译器也将是 自适应的:它将在计算密集的方法上被自动调用。优化编译器的目标是在给定的编译时间预算内生成所选定方法的尽可能好的代码。此外,它的优化必须在正确地保护异常、垃圾回收和线程的 Jav转载 2008-06-15 21:08:00 · 1062 阅读 · 0 评论 -
JAVA如何调用DOS命令
用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现。下面是一种比较典型的程序模式: ... Process process = Runtime.getRuntime().exec(".//p.exe"); process.waitfor( ); ... 在上面的程序中,第一行转载 2008-06-15 20:39:00 · 538 阅读 · 0 评论 -
Jikes 研究虚拟机(RVM)一 设计和实现问题
Jikes 研究虚拟机(RVM)Thomas J. Watson 研究中心的 Jalapeno 研究项目的一个独立开发的部分B. Alpern, , IBM C. R. Attanasio, , IBM J. J. Barton, , IBM M. G. Burke, , IBM P. Cheng, , IBM J.-D. Choi, , IBM A. Cocchi, , IBM S. J转载 2008-06-15 20:53:00 · 1796 阅读 · 0 评论 -
Hibernate 参数总汇
SQL方言1、Hibernate JDBC属性 属性名 用途 hibernate.connection.driver_class jdbc驱动类转载 2008-05-19 16:15:00 · 648 阅读 · 0 评论 -
Java字符编码知识简介
1 基本信息摘要:在Java应用程序特别是Web应用中,经常遇到字符的编码问题。为了防止出现乱码,首先需要了解字符编码的基本概念以及Java是如何处理字符编码的,这样就可以有目的地在输入/输出环节中增加必要的转码。本文将分以下几部分介绍:1. 什么是字符集?什么是编码?2. 常用字符集有哪些?3. 为什么会有乱码?4. Java字符编码5.转载 2007-12-17 23:06:00 · 856 阅读 · 0 评论 -
理解Java ClassLoader机制
理解Java ClassLoader机制当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构: bootstrap classloader | extension classloader | system classloaderbootstrap classloade转载 2007-11-25 11:15:00 · 960 阅读 · 0 评论 -
项目中遇到的问题总结
1、tomcatPluginV31插件安装后在eclipse下找不到tomcat插件的显示。解决方法D:/eclipse>java -jar startup.jar -clean2、ibmJdk问题如果启动的时候没有足够大的内存给于JDK使用就会报错JVMDG217: Dump Handler is Processing Signal 11 - Please Wait.JVMDG303: JVM原创 2007-08-08 11:32:00 · 3496 阅读 · 0 评论 -
Jikes 研究虚拟机(RVM)五 结论
相关工作用 Java 代码实现一个 Java 虚拟机和它的相关子系统(包括优化编译器)提出了几个挑战。Taivalsaari 36 也描述了一个“用 Java 写 Java”的 JVM 实现,设计它是为了检查用 Java 写的高质量的虚拟机的可行性。这个方案的一个缺点是它运行在另一台 JVM 上,这增加了性能开销,因为有两级解释过程。麻省理工学院(Massachusetts Institute转载 2008-06-15 21:29:00 · 959 阅读 · 0 评论 -
Jikes 研究虚拟机(RVM)二 JVM 的组织
JVM 的组织下面的几部分描述 Jalape�o 的对象模型(object model)、运行时子系统(run-time subsystem)、线程和同步子系统(thread and synchronization subsystem)、内存管理子系统(memory management subsystem)和编译器子系统(compiler subsystem)。Java 对象的布局考虑了转载 2008-06-15 20:59:00 · 1482 阅读 · 0 评论 -
对象的序列化和反序列化
当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。把Java对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为Java对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1)转载 2010-08-16 23:46:00 · 544 阅读 · 0 评论 -
线程通信的两种方法
不同线程间进行通信通常有两种简单方法: 方法一 通过访问共享变量的方式(注:需要处理同步问题) 方法二 通过管道流 其中方法一有两种实现方法,即 方法一a)通过内部类实现线程的共享变量 代码如下:Java代码 /** * 通过内部类实现线程的共享变量 * */ public class Innersharethread {原创 2010-08-17 00:57:00 · 697 阅读 · 0 评论 -
Eclipse打开当前文件所在文件夹
1、在菜单中选择Run-->External Tools-->External Tools Configurations...2、new 一个 program3、Name 里面填:打开当前目录4、location 里面填(Xp系统):C:\WINDOWS\explorer.exe5、Arguments 里面填:${container_loc}6、如下图设置7、运行原创 2011-10-21 12:12:14 · 816 阅读 · 0 评论 -
eclipse svn插件不能正常显示
eclipse 中使用 svn 插件,原本正常,未作任何更改,突然有一天, eclipse 中查看文件时,文件后面的 版本号 、 文件的状态图标 等等都不见了。 检查插件都在,更新,提交等操作都能正常使用,唯独看不到状态了。 经过一番查找,找到问题解决办法。 打开 : windows ->preferences->General->Appearance->Lable Decorati转载 2009-06-01 11:47:00 · 625 阅读 · 0 评论 -
eclipse变量高亮
在eclipse/myeclipse中变量的高亮显示。windows-> preferences-> java-> Editor-> Mark Occurences 选中复选框原创 2009-03-31 11:17:00 · 782 阅读 · 0 评论 -
java.library.path 在java main函数运行前的设置
java.library.path 在java main函数运行前的设置 在VM arguments添加-Djava.library.path="C:/PROGRA~1/Shared/" 用System.getProperty("java.library.path") ;进行查看System.getProperty()参数大全 java.ve原创 2009-03-30 12:01:00 · 4124 阅读 · 0 评论