java
BraveSoul360
海到尽头天作岸,山登绝顶我为峰
展开
-
35个Java代码性能优化总结
java代码优化转载 2017-05-23 00:46:33 · 404 阅读 · 0 评论 -
JVM面试知识点
JVM面试知识点jvm的知识点汇总共6个大方向:内存模型、类加载机制、GC垃圾回收是比较重点的内容。性能调优部分偏重实际应用,重点突出实践能力。编译器优化和执行模式部分偏重理论基础,主要掌握知识点。各个部分的内容如下:_1>****内存模型部分:_程序计数器、方法区、堆、栈、本地方法栈的作用,保存哪些数据;_2>****类加载部分:_双亲委派的加载机制以及常用类加载器分别加载哪种类型的类;...原创 2019-03-14 23:39:27 · 155 阅读 · 0 评论 -
javassist异常处理: java.lang.RuntimeException: java.io.IOException: invalid constant type: 18
javassist异常处理: java.lang.RuntimeException: java.io.IOException: invalid constant type: 18异常描述:在进行mock挡板测试时候,出现对应java应用快捷支付XX应用接入javaagent启动过程出现以下异常。经过网上错误定位,基本确认javassist的版本问题,可是看到agent工具包里的版本是Javas...原创 2019-03-25 16:53:30 · 1900 阅读 · 0 评论 -
Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序
Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序文章目录Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序1、构造函数2、构造代码块3、静态代码块4、java类的初始化顺序4.1、对于单个类情况4.2、对于继承情况5、分析过程静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行。...转载 2019-03-27 11:41:14 · 219 阅读 · 0 评论 -
远程debug调试java代码
远程debug调试java代码日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试。生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试。整体过程是通过修改远程服务JAVA_OPTS参数,然后本地通过Eclipse或IDEA等工具调试。理论JPDA(Java Platform Debugger Architecture)是Java平台调试体系结构的缩写。由3个规范...原创 2019-03-28 12:53:21 · 279 阅读 · 0 评论 -
java基础知识:位运算、运算符 与(&)、非(~)、或(|)、异或(^)
java运算符 与(&)、非(~)、或(|)、异或(^)HashMap源码,有这样一段代码: /** * Computes key.hashCode() and spreads (XORs) higher bits of hash * to lower. Because the table uses power-of-two masking, sets of ...原创 2019-04-22 16:04:28 · 931 阅读 · 0 评论 -
java应用性能优化——使用JMC(Java Mission Control)分析性能
前言官方文档:https://docs.oracle.com/javacomponents/jmc-5-5/jmc-user-guide/intro.htm#JMCCI109Java Mission Control使您能够监视和管理Java应用程序,而不会引入通常与这些类型的工具相关联的性能开销。它使用为Java虚拟机(JVM)的常规自适应动态优化收集的数据。除了最小化性能开销之外,这种方法还...原创 2019-04-18 21:58:20 · 17660 阅读 · 3 评论 -
java面试知识点:try catch finally 执行顺序
java面试知识点:try catch finally 执行顺序有return的情况下try catch finally的执行顺序结论:不管有没有出现异常,finally块中代码都会执行;当try和catch中有return时,finally仍然会执行;finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,不管finally中的代...原创 2019-04-18 23:02:13 · 560 阅读 · 0 评论 -
Java性能优化知识点(持续更新)
Java性能优化知识点(持续更新)异常处理try-catch 代码段会产生额外的性能开销,或者换个角度说,它往往会影响 JVM 对代码进行优化,所以建议仅捕获有必要的代码段,尽量不要一个大的 try 包住整段的代码;与此同时,利用异常控制代码流程,也不是一个好主意,远比我们通常意义上的条件语句(if/else、switch)要低效。Java 每实例化一个 Exception,都会对当...原创 2019-04-24 20:37:55 · 484 阅读 · 0 评论 -
java面试知识点总结:异常Exception和Error
java面试知识点总结:异常Exception和Error文章目录java面试知识点总结:异常Exception和ErrorException和Error的区别Throwable、Exception、Error 设计和分类异常使用不当案例1、违反了两大原则:忽略异常处理、捕抓大异常,吃掉小异常。2、使用printStackTrace()3、对try_catch 、finally使用不当性能相关异...原创 2019-04-24 21:21:01 · 602 阅读 · 0 评论 -
Java基础知识:基本数据类型
Java 基本数据类型内置数据类型Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。byte:byte 数据类型是8位、有符号的,以二进制补码表示的整数;最小值是 -128(-2^7);最大值是 127(2^7-1);默认值是 0;byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类...转载 2019-04-25 01:10:04 · 207 阅读 · 0 评论 -
java基础知识:原码和补码
注意,我们这里举列的原码和反码只是为了求负数的补码,在计算机中没有原码,反码的存在,只有补码。一.原码1>.正数的原码就是它的本身假设使用一个字节存储整数,整数10的原码是:0000 10102>.负数用最高位是1表示负数假设使用一个字节存储整数,整数-10的原码是:1000 1010二.反码1>.正数的反码跟原码一样假设使用一个字节存储整数,整数10的反码是:0...转载 2019-04-25 01:14:43 · 2318 阅读 · 0 评论 -
pojo和javabean
什么是POJO按照Martin Fowler的解释是“Plain Old Java Object”,从字面上翻译为“纯洁老式的Java对象”,但大家都使用“简单java对象”来称呼它。POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。什么是java beanJavaBean 是一种JAVA语言写成的可重用组件。它的方法命名,构造及行为必须符...原创 2019-05-14 18:17:12 · 476 阅读 · 0 评论 -
Maven pom文件配置非仓库的jar依赖(如:web app中的/WEB-INF/lib)
maven pom 配置 compile的web项目时指定/WEB-INF/lib 目录或者其他非maven仓库的jar作为额外的库目录,需要进行配置。1、配置maven-compiler-plugin 中编译目录extdirs<plugin> <artifactId>maven-compiler-plugin</artifactId> ...原创 2019-05-15 11:32:26 · 2726 阅读 · 1 评论 -
Java 反射机制,动态代理的原理
Java 反射机制,动态代理的原理文章目录Java 反射机制,动态代理的原理反射机制动态代理面试考点反射面试考察知识扩展1、 反射机制及其演进2、动态代理实际开发中对比各自优势。JDK Proxy 的优势:基于类似 cglib 框架的优势:应用场景:反射机制反射机制是 Java 语言提供的一种基础功能,赋予程序在运行时自省(introspect,官方用语)的能力。通过反射我们可以直接操作类或...原创 2019-05-29 17:47:48 · 618 阅读 · 0 评论 -
spring知识点
1.1. 不同版本的 Spring Framework 有哪些主要功能?VersionFeatureSpring 2.5发布于 2007 年。这是第一个支持注解的版本。Spring 3.0发布于 2009 年。它完全利用了 Java5 中的改进,并为 JEE6 提供了支持。Spring 4.0发布于 2013 年。这是第一个完全支持 JAVA8 的版本。1.2. 什么是 Spri...原创 2019-03-14 22:20:40 · 180 阅读 · 0 评论 -
细数GitHub上既有趣又有用的Java项目Top14
转载:http://news.51cto.com/art/201901/591528.htm细数GitHub上既有趣又有用的Java项目Top14 在 GitHub 上有很多项目,能够帮我们优化手头的编程项目,或学习更多编程知识。下面我们分享 GitHub 上 14 个既有趣又有用的 Java 项目。在 GitHub 上有很多项目,能够帮我们优化手头的编程项目,或学习更多编程知...转载 2019-01-31 23:54:21 · 8167 阅读 · 0 评论 -
Java异常处理和设计
一.什么是异常 异常的英文单词是exception,字面翻译就是“意外、例外”的意思,也就是非正常情况。事实上,异常本质上是程序上的错误,包括程序逻辑错误和系统错误。比如使用空的引用、数组下标越界、内存溢出错误等,这些都是意外的情况,背离我们程序本身的意图。错误在我们编写程序的过程中会经常发生,包括编译期间和运行期间的错误,在编译期间出现的错误有编译器帮助我们一起修正,然而运行期间的错误便不转载 2017-09-19 21:30:06 · 409 阅读 · 0 评论 -
Java String内存模型
Java String内存模型按照官方的说法:Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。 JVM主要管理两种类型内存:堆和非堆,堆内存(Heap Memory)是在 Java 虚拟机启动时创建,非堆内存(Non-heap Memory)是在JVM堆之外的内存。简单来说,非堆包含方法区、JVM内部处理或优化所需的内存(如 JITCompiler,Just-in转载 2017-09-19 21:53:31 · 1550 阅读 · 0 评论 -
jdk环境变量配置好了,测试java、javadoc命令行提示javac、javadoc却不是内部命令?
有时候配置jdk的环境变量,忘记配置classpath的变量,会出现java、javadoc命令不能识别的问题。右击“我的电脑”属性,选择“高级”选项卡,单击“环境变量”, 假设JDK的安装路径:E:\jdk 在用户变量中添加下面的变量和属性值 Classpath .;E:\jdk\lib\tools.jar;E:\jdk\lib\dt.jar Path E:\j原创 2017-09-03 17:46:23 · 8563 阅读 · 1 评论 -
JAVA classpath设置方式启动详解:java class名、java -jar
首先对JAVA 名称官方参数进行说明。 java –help 或者 java -?打印标准java命令java -X 打印非标准选项(常用jvm 参数设置)通过以上官方java jvm参数命令,可知有两种设置classpath方式,这两种方式分别针对java class名、java -jar 两种启动方式。方式一:java -classpath class名-cp &...原创 2018-04-01 01:06:16 · 18244 阅读 · 2 评论 -
Java类加载
了解Java类加载你想写ClassLoaders吗?或者你是否遇到 “意外的”ClassCastException或LinkageError以及 “加载器约束违规”的奇怪消息。那么,现在该仔细看看 Java类加载过程。什么是ClassLoader以及它如何加载?Java类由java.lang.ClassLoader 类的实例加载。 java.lang.ClassLoader本身...转载 2018-04-03 21:37:48 · 246 阅读 · 0 评论 -
Java启动器如何查找类
Java启动器如何查找类Java启动程序Java启动Java虚拟机。虚拟机按以下顺序搜索并加载类:引导类 - 构成Java平台的类,包括类中的rt.jar几个其他重要的jar文件。 扩展类 - 使用Java扩展机制的类。这些被捆绑为.jar位于扩展目录中的文件。 用户类 - 由开发人员和第三方定义的不利用扩展机制的类。您可以在命令行上使用-classpath选项(首选方法)或使用CLA...转载 2018-04-03 22:07:56 · 1651 阅读 · 0 评论 -
java如何启动应用程序、 -cp和-jar的区别、类加载过程
问题1:如何通过java启动应用程序两种方式 1. java [ options ] classname [ args ] 2. java [ options ] -jar filename [ args ] options 命令行选项由空格分隔。请参阅选项。 classname 要启动的类的名称。 filename 要调用的Java归档(JAR)文件的名称。仅与该-ja...原创 2018-04-04 12:50:35 · 7803 阅读 · 0 评论 -
java jar命令打包、-jar方式启动应用
安装JDK并配置好环境变量后,使用jar -? 或者jar –help打印jar官方帮助。 具体jar命令参数如下:jar -?非法选项: ?用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...选项: -c 创建新档案 -t 列出档案目录 ...原创 2018-04-04 15:37:05 · 9025 阅读 · 0 评论 -
maven插件配置支持mybatis逆向数据库表生成mapper等文件
java项目开发中经常需要引入mybatis进行项目开发,很多时候我们需要通过数据库表自动生成mapper接口、实体类、xml配置文件,方便我们进行DAO开发。maven pom文件引入插件配置,更为方便与项目工程结合到一起。 1、配置pom文件 <plugin> <groupId>org.mybatis.ge...原创 2018-08-26 19:41:46 · 471 阅读 · 0 评论 -
JAVA 使用httpclient发送常见HTTP POST 和 GET 请求
JAVA项目开发中不可避免要发送http请求,http请求有get post请求,以下是自己整理的一个HTTP发送请求工具类。maven pom文件配置<dependency> <groupId>commons-httpclient</groupId> <artifactId>commo...原创 2018-08-26 22:27:25 · 2134 阅读 · 0 评论 -
JAVA工具类-DES加密解密
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;import j...原创 2018-08-26 22:32:06 · 5590 阅读 · 0 评论 -
JAVA工具类 -文件常用操作FileUtils
JAVA工具类 -文件常用操作FileUtils 方便对目录管理,写入文件信息,读取文件信息。import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.*;public class FileUtils { private final static Logger logger = Logger...原创 2018-08-26 22:35:24 · 735 阅读 · 0 评论 -
JAVA工具类-日期处理DateUtil
JAVA工具类-日期处理DateUtilimport org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayL...原创 2018-08-26 22:38:29 · 455 阅读 · 0 评论 -
JAVA项目AOP应用-任务流程执行续跑处理
通过如下aop任务配置,可以实现任务执行结果记录,如有任务失败可以进行任务续跑(已经执行成功的任务跳过执行)任务执行参数用于记录任务执行是否当前步骤执行状态, taskRunStatuses是记录下本次执行任务状态 lastTaskRunStatuses记录是上次任务执行任务状态/** * 任务流程通用参数 * * @author yufeng * @version V1....原创 2018-08-26 22:56:12 · 780 阅读 · 0 评论 -
source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符) 问题解决
在java项目开发中出现language level错误,可能会导致一些代码编译错误,适当做相应调整即可。对应错误标识为:ource 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)问题再现:1、打开idea,导入了另一个java class文件后,出现语法编译错误。对应截图如下:执行会报编译错误:2、检查项目l...原创 2018-11-06 21:36:47 · 6495 阅读 · 3 评论 -
com.sun.tools.attach.VirtualMachine 类找不到
##首先VirtualMachine d的作用VirtualMachine所支持的操作在JDK中com.sun.tools.attach.VirtualMachine提供了一些从外部进程attach到jvm上,并执行一些操作的功能。VirtualMachine的子类HotSpotVirtualMachine表示hotspot的虚拟机。com.sun.tools.attach.VirtualM...原创 2018-12-27 21:40:12 · 17680 阅读 · 0 评论 -
序列化对单例的破坏
序列化对单例的破坏前言大家知道单例模式中,对对象序列化不恰当,会导致单例失效。单例在序列化被破败案例package com.yunfeng; import java.io.Serializable; /** * 使用双重校验锁方式实现单例 */ public class Singleton implements Serializable{ ...转载 2019-06-10 22:34:47 · 1121 阅读 · 0 评论