java学习笔记
文章平均质量分 78
lym152898
这个作者很懒,什么都没留下…
展开
-
Arthas原理分析
Arthas主要基于是Instrumentation + JavaAgent + Attach API + ASM + 反射 + OGNL等技术实现的。在不停止应用服务的情况下,将Arthas的jar包代码动态加载到应用的JVM中,再配合**Instrumentation**类,动态修改应用JVM中运营的字节码,实现对目标应用增强,如获取某方法的参数、返回值、耗时等信息、调用JVM相关类获取JVM运行时信息,最后再通过OGNL过滤、存取对象属性。原创 2023-06-22 23:34:38 · 1979 阅读 · 0 评论 -
Idea Mybatis插件:提高CRUD效率
将mybatis xml转成真实SQL语句、参数mock、SQL规范检查、SQL索引检查、SQL运行、SQL压测及Mybatis SQL语句扫描原创 2023-06-19 23:41:59 · 1339 阅读 · 0 评论 -
ls + awk 获取文件信息(json格式)
ls + awk 获取文件信息(json格式)目前正在通过jsch是实现一个通过web页面操作服务器文件的功能,如下图所示。为了简化操作,直接通过ls和awk命令获取文件信息并转成json字符串,共前端展示。文件格式如下:[ { "typeAndPermission": "dr-xr-x---.", "owner": "root", "group": "root", "size": "12288", "lastA原创 2021-06-14 15:32:55 · 1456 阅读 · 1 评论 -
XML文档解析之JDOM解析
使用JDMO解析需要自己加载相关的jar包,JDOM jar包的下载地址:http://www.jdom.org/downloads/index.html。解析步骤创建SAXBuilder对象saxBuilder;创建一个文件输入流,并将xml文件加载到输入流中;通过saxBuilder的build方法,将输入流加载到saxBuilder的Document的document对象中;通过Doc原创 2017-06-20 10:43:15 · 287 阅读 · 0 评论 -
XML文件四种解析方式对比
DOM解析图解 DOM在解析时,会将xml文件中的所有内容一次性加载到内存中,并形成一个DOM树。DOM的特点优点形成了树结构,直观好理解,代码更易于编写;解析过程中树的结构保存在内存中,方便修改。缺点当xml文件较大时,内存消耗比较大,容易影响解析性能并造成内存溢出。SAX解析图解SAX解析是基于事件驱动的解析方式。SAX解析的特点优点采用事件驱动模式,对内存消耗比较小;适用于只需要原创 2017-06-20 12:11:21 · 1653 阅读 · 0 评论 -
Java IO(一)
一、流的概念流(Stream)的概念源自UNIX中管道的概念,管道是一条不间断的字节流,用来实现程序或进程之间的通信。一个流必有源端和目的端(可以是内存、磁盘文件等。)流的源端和目的端可以简单的看成字节的生产者和消费者。二、流的分类根据读写位置\color{red}{读写位置}流分为:结点流\color{blue}{结点流}:接从指定的位置(如磁盘文件或内存区域)读或写 过滤器\color{bl原创 2017-02-20 15:27:55 · 1760 阅读 · 1 评论 -
JAVA将字符串Sat Nov 25 2017 00:00:00 GMT+0800 (中国标准时间)转成标准时间
使用Spring MVC后台,需要接收前端传来的一个时间,时间格式如下:Sat Nov 25 2017 00:00:00 GMT+0800 (中国标准时间)刚开始使用如下的方式进行接收,发现无法接收到数据@RequestMapping(value = "/queryResearchIndexByMemberIdAndLogDate",method = RequestMethod.GET) p原创 2017-12-13 11:21:47 · 19058 阅读 · 1 评论 -
并发编程-第一章
第一章 并发编程中常见的问题相关概念时间片: CPU分配给各个线程的时间上下文切换: 保存当前任务状态,加载下一个任务状态常见问题上下文切换问题死锁问题受限于硬件和软件的资源问题 硬件网络的带宽上传和下载速度硬盘的读写速度CPU的处理速度软件数据库的连接数socket的连接数解决方法避免死锁的常见方法:避免在一个线程中同时获取多...原创 2018-06-25 16:52:25 · 184 阅读 · 0 评论 -
并发编程-第二章
第二章 java并发机制的底层实现原理java中使用的并发机制依赖于JVM的实现的CPU的指令volatile关键字轻量级的synchronized在多处理器开发中保证共享变量的可见性不会引起上下文的切换,性能比synchronized好...原创 2018-06-25 17:51:07 · 196 阅读 · 0 评论 -
并发编程-第三章
第三章 java内存模型并发编程模型两个关键问题线程间的通信 共享内存(隐式通信)消息传递(显式通信)线程间的同步 共享内存同步(显式) 指定某个方法或代码段在线程之间互斥执行消息传递同步(隐式) 消息必须在接收之前发送java并发编程模型采用共享内存模型。内存模型抽象结构共享变量(存储在堆内存中) 类实例静态变量数组元素非共享变量 局部变...原创 2018-06-25 17:51:56 · 175 阅读 · 0 评论 -
第四章 java并发编程基础
第四章 java并发编程基础使用多线程的原因更多的处理器核心 一个线程一个时刻只能运行在一个处理器核心上更快的响应时间 将数据一致性不强德 操作发给其他线程处理Java提供了良好、考究且一致的多线程编程模型线程的状态NEW: 初始状态,线程被构建,但是还没有调用start()方法RUNNABLE: 运行状态,java线程将就绪和运行两种状态统称”运行中”B...原创 2018-06-27 14:20:38 · 220 阅读 · 0 评论 -
将CentOS7.2默认的OpenJDK替换为Oracle JDK
下载 Oracle JDK首先从 Oracle网站下载所需的JDK。安装Oracle JDK# rpm -ivh jdk-8u144-linux-x64.rpm Preparing... ################################# [100%]Updating / installing... ...原创 2018-07-04 16:42:40 · 1737 阅读 · 0 评论 -
XML文档解析之DOM4J解析
使用DOM4J解析也是需要自己加载相关的jar包,DOM4J jar包的下载地址:https://github.com/dom4j/dom4j/releases/tag/dom4j_1_6_1解析步骤创建SAXReader对象saxReader;通过saxReader对象的read方法将xml文件加载到Document实例对象中;使用getRootElement方法获取xml文件的根节点;使原创 2017-06-20 11:50:50 · 350 阅读 · 0 评论 -
XML文档解析之SAX解析
解析步骤Java SAX解析是按照xml文件的顺序一步一步的来解析。步骤如下: 1. 创建SAXParserFactory实例factory; 2. 通过factory获取SAXParser实例; 3. 创建一个继承DefaultHandler类的解析类,重写其中的方法进行业务处理并创建这个类的实例; 4. 将xml文件和解析类实例对象传给SAXParser的原创 2017-06-19 11:53:06 · 328 阅读 · 0 评论 -
java代码模型
李兴华讲师讲的几种java代码模型的总结。1.简单java类 1.1简单java类的含义1.2简单java类的开发原则1.3简单java类的实现2.对象比较2.1对象比较的操作特点2.2对象比较的简单实现3.简单java类和数据表的映射3.1单表3.2一对一3.3一对多3.4多对多1.简单java类1.1简单java类的含义只包含基本属性,setter()、getter()方原创 2017-01-15 21:26:23 · 4016 阅读 · 0 评论 -
java的四舍五入操作
java 中的四舍五入操作本文主要总结在java中常用到的两种四舍五入方法。 - 方法一使用简单,但是缺点在于需要注意负数时的进位模式,并且只能将小数进位为long型整数。 - 方法二较为复杂,但是可以在开发后当工具使用。好处在于:保留指定位数小数并且正数和负数在进位时规则保持一致。 1. 在java.lang.Math类中定义一个用于四舍五入操作的方法: publicstaticlongro原创 2017-02-09 12:09:56 · 1370 阅读 · 0 评论 -
java常用数据类型转换
基本数据类型String转换1.使用”+”完成.任何基本数据类型遇到String类型都会自动向String类型转换.代码示例如下:public class TestDemo{ public static void main(String [] args) { int a = 100; String str = a + ""; Syst原创 2017-02-10 10:36:19 · 653 阅读 · 0 评论 -
工厂设计模式
工厂设计模式工厂设计模式(Factory Pattern)是Java中最常用的设计模式之一。属于创建型模式,工厂设计模式提供了一种创建对象的最佳方式。方式一:使用new关键字进行对象的实例化操作。优点: 1.一个调用者想创建一个对象,只要知道其名称就可以了。 2.屏蔽产品的具体实现,调用者只关心产品的接口。 缺点: 每次增加一个产品时,都需要增加一个具体类和对象实现工厂。代码实现// 定义接原创 2017-02-10 10:36:51 · 512 阅读 · 0 评论 -
Java IO(二)
打印流在Java IO(一) 曾介在绍了多种输出流.可以发现在输出数据时,不论是使用字节输出流OutputStream还是字符输出流Writer都很不方便,比如想输出一个int 型数据,还要先把int型转换称字符串(若使用OuputStream,还需要将字符串转换称字节数组)再输出.为了简化输出操作,java专门提供了两个类:字节打印流(PrintStream)字符打印流(PrintWriter原创 2017-02-20 20:11:09 · 286 阅读 · 0 评论 -
Java 泛型
泛型的概念泛型:类中操作的属性或方法的参数类型不在定义时,而是在使用时动态设置.使用泛型可以很好地解决数据类型统一的问题.与使用Object相比,此时程序没有向下转型的操作关系,不存在数据的安全性问题.泛型的使用代码示例class Point<T>{ private T x; private T y; public void setX(T x){ this.x原创 2017-02-26 10:52:11 · 236 阅读 · 0 评论 -
Java 类集框架
概念类集是一种动态的对象数组,属于各个数据结构的实现类,整个类集的主要组成是一些核心的操作接口:Collection,List,Set,Map,Iterator和Enumeration.以下是部分类集框架的继承结构图:注:Collection接口设置完内容的目的是为了输出,Map接口设置完内容的目的是为了查找\color{red}{Collection接口设置完内容的目的是为了输出,Map接口设置完原创 2017-02-26 10:50:11 · 2391 阅读 · 0 评论 -
Java去除文件中重复的单词
在学习专业英语的时候,喜欢使用world记录单词对应的中文翻译, 如下图: 但是发现会存在重复的单词,于是便想到使用Java中的Map集合的特性完成单词去重的任务。 主要步骤:1.使用Scanner将文件的每一行读入并保存在字符串中;2.将字符串拆分成中文和英文两个部分;3.中文部分作为Map集合的key,英文部分作为相应的value;4.将Map集合的数据使用printWriter原创 2017-03-27 10:56:24 · 4888 阅读 · 0 评论 -
Java反射
基本概念在计算机科学中,反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。在Java中,反射允许在编译期间不知道接口的名称,字段、方法的情况下,在运行时检查类、接口、字段和方法。它还允许实例化新对象、修改成员变量和调用方法。使用要在Java中使用反射,就必须使用到Class类。在面向对象的世界里,万事万物皆对象。所以类也是对象,类是java.lang.Cl原创 2017-06-17 23:19:04 · 247 阅读 · 0 评论 -
XML文档
什么是XML文档XML是可扩展标记语言,与HTML不同,XML主要用于描述数据。XML中没有预定义的标签,用户必须自己定义标签。同时用户也可以通过DTD(Document Type Definition)来定义XML文档的合法元素,以规范数据的描述。通过DTD,我们可以验证从外部接收到的XML文档数据是否合法。XML文档的使用使数据从HTML中分离出来 HTML页面主要用于显示数据,数据经常储存原创 2017-06-19 09:06:56 · 244 阅读 · 0 评论 -
XML文档解析之DOM解析
解析步骤获取DocumentBuilderFatory工厂类的实例对象;获取DocumentBuilder类的实例对象;加载指定xml文档,获取Document对象;通过标签名获取指定element节点集合;遍历element节点集合 a)获取该element集合中每个节点的属性名,属性值; b) 获取该element集合中的每个节点的孩子节点集合; c)遍历该孩子节点集合,获取其中原创 2017-06-19 10:40:40 · 251 阅读 · 0 评论 -
java的引用传递
最近看着李兴华讲师的java视频教程学习java,关于java引用传递方面的知识的总结。基础知识java的常用内存空间\color{red}{java的常用内存空间}栈内存空间:保存所有的对象名称(更准确地说是保存了引用的堆内存空间的地址)堆内存空间:保存具体对象的具体属性内容。全局数据区:保存static类型的属性全局代码区:保存所有的方法定义实例分析class Person{原创 2017-01-13 21:01:49 · 8121 阅读 · 8 评论