Java
文章平均质量分 75
Java程序设计技术知识点
曾梦想仗剑闯天涯
永远相信美好的事情即将发生!
展开
-
Java Agent 技术:动态修改字节码
Java Agent 技术为我们提供了一种强大的机制,在运行时动态修改已加载类的字节码。它可以用于实现代码注入、性能监控、调试工具和安全检查等功能,为我们的应用程序增添额外的灵活性和扩展性。希望本文能够帮助读者更好地理解和应用 Java Agent 技术,并发挥其潜力。原创 2023-08-21 09:40:29 · 1131 阅读 · 0 评论 -
Java动态字节码注入技术
Java动态字节码注入技术是一种在运行时修改Java字节码的技术。它允许开发者在程序运行期间动态地向现有的Java类中注入字节码,并改变类的行为和功能。这项技术通常用于实现AOP(面向切面编程)、代码增强、动态代理等需求。原创 2023-08-21 09:05:39 · 1530 阅读 · 0 评论 -
Java 并发编程
本篇只要是对Java基础中的并发编程进行巩固、知识回顾。几乎所有的资料在讲述本篇时都是先讲一下进程和线程的区别。在此将不详细介绍,只介绍了解以下几点区别:1、进程大、线程小,一个程序至少有一个进程,一个进程至少有一个线程2、线程不能独立执行,必须存在进程中3、每个进程拥有一套自己的变量,而线程则共享数据。原创 2023-07-17 15:38:07 · 122 阅读 · 0 评论 -
Java 函数式编程(常用接口)
本文主要介绍一下常用的接口及用法,先来看一个表格:本文主要选取几个常用的:Supplier、Consumer、Function、Predicate在此之前,再来了解一下@FunctionalInterface注解。原创 2023-07-14 17:02:45 · 297 阅读 · 0 评论 -
Java8 Optional类型
对于前者,称为值存在,Optional类型被当作一种更安全的方式,用来代替T类型的引用,这种引用要么引用某个对象,要么为null。产生将该optional的值传递给mapper后的结果,只要这个Optional不为空且结果不为null,否则产生一个空Optional。产生将mapper应用于当前的Optional值所产生的结果,或者在当前Optional为空时,返回一个空Optional。返回这个Optional的值,或者该Optional为空时,产生调用other的结果。原创 2023-07-14 16:05:01 · 303 阅读 · 0 评论 -
Java 注解使用
..或者比如我们常用,Spring中用来标记为Bean的注解定义:其中包含一个元素:value所有的注解接口都隐式的扩展自java.lang.annotation.Annotation接口,这个接口是一个常规接口,不是一个注解接口。你无法扩展注解接口,换句话说,所有的注解接口都直接扩展自java.lang.annotation.Annotation。基本类型(int、short、long、byte、char、double、boolean)String。原创 2023-07-14 15:06:38 · 553 阅读 · 0 评论 -
Java8函数式编程(Lambda表达式)
首先使用 Stream 的 forEach 方法替换掉 for 循环,但还是暂时保留原来循环体中的代码,这是在重构时非常方便的一个技巧。有时,reduce 操作不存在有意义的初始值,这样做就是有意义的,此时,reduce 方法返回一个 Optional 对象。在要对流求值时,不能同时处于两种模式,要么是并行的,要么是串行的。然后使用 for 循环遍历所有专辑,每次循环中再使用一个 for 循环遍历每张专辑上的每首曲目,检查其长度是否大于 60 秒,如果是,则将该曲目名称加入 Set 对象。原创 2023-07-13 15:38:44 · 843 阅读 · 0 评论 -
JAVA线程快照及案例分析
# 线程快照分析## 第一部分:Full thread dump identifier这部分内容是最开始的部分,展示快照的生成时间及JVM的版本信息。```2020-07-02 08:58:16Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.60-b23 mixed mode):```## 第二部分:Java EE middleware, third party & custom application Threads这原创 2020-07-02 13:41:59 · 2388 阅读 · 0 评论 -
浅谈JDK动态代理
接口类public interface IFaepUser { void speak();}实现类public class FaepUser implements IFaepUser{ @Override public void speak(){ System.out.println("调用speak方法。"); }}测...原创 2020-04-18 11:30:01 · 174 阅读 · 0 评论 -
Spring AOP 拦截指定注解标识的类或方法
代码Demo@Aspect@Component@Order(10)public class BidAuthorityProxy { /** * 扫描指定包下的类中使用@EnableRoleAuthority注解修饰的类 */ @Around("@within(com.core.annotation.EnableRoleAuthority) &am...原创 2020-01-16 15:19:14 · 14992 阅读 · 0 评论 -
Java自定义注解及个性化扫描注解
自定义注解自定义注解三步骤1、定义注解——相当于定义标记 2、标记注解——把标记打到需要标识的代码中 3、解析注解——在编译期或运行期解析注解,并进行特殊操作一、定义注解1.1、代码Demoimport java.lang.annotation.*;@Target({ElementType.METHOD, ElementType.TYPE})@Retention...原创 2020-01-16 15:13:09 · 7600 阅读 · 0 评论 -
【JVM学习笔记】Java虚拟机内存管理
运行时数据区线程共享:方法区、堆内存线程私有:虚拟机栈、本地方法栈、程序计数器 程序计数器:1、是一块比较小的内存空间,它可以看作是当前线程执行的字节码的行号指示器2、每一个线程都有自己的程序计数器3、如果线程执行的是java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址,如果正在执行的是native方法,这个计数器的值为undefined4、此区域是...原创 2018-08-02 14:15:08 · 175 阅读 · 0 评论 -
Java中的final关键字
final关键字的理解和用法final有三种使用情况:数据、方法和类final数据有时需要告知编译器一块数据是恒定不变的;比如:一个永不改变的编译时常量一个在运行时被初始化的值,而你不希望它被改变使用final对常量进行定义的时候,必须对其进行赋值。一个既是static又是final的域只占一段不能改变的存储空间。对于基本数据类型,final使数值恒定不变;对于对象引用,final使引用恒定不变(...原创 2018-06-29 09:36:38 · 732 阅读 · 0 评论 -
Java自定义注解
Java注解又称为标注,是Java从1.5开始支持的特殊语法元数据;Java中的类、方法、变量、参数、包都可以被注解。元数据:描述数据的数据,对数据及信息资源的描述性信息。1、注解仅仅是元数据,和业务逻辑无关,所以当你查看注解类时,发现里面没有任何逻辑处理;2、javadoc中的@author、@version、@param、@return、@deprecated、@hide、@throws、@e...原创 2018-06-27 17:49:08 · 485 阅读 · 0 评论 -
【Java基础巩固一】修饰符、Object类、接口和抽象类
主要知识点:java中四种修饰符的限制范围。Object类中的方法。接口和抽象类的区别,注意JDK8的接口可以有实现。一、Java中四种修饰符的限制范围private:只有本类可访问default:在整个包内都可被访问protected:当前类,子类,同包下public:所有类都可访问Q:一个内部类可以访问其外部类的private属性吗?为什么?A:在内部类保留一个对外部类的引用,当在内部类中访问...原创 2018-06-26 11:31:50 · 675 阅读 · 2 评论 -
【JVM学习笔记】对象的创建
对象的创建new类名—>根据new的参数在常量池中定位一个类的符号引用—>如果没有找到符号引用,说明类还没有被加载,则进行类的加载,解析和初始化—>虚拟机为对象分配内存(位于堆中)—>将分配的内存初始化为零值(不包括对象头)—>调用对象的<init>方法 给对象分配内存堆内存是不连续的,假设堆内存连续的,有一个类似于指针...原创 2018-08-02 14:19:34 · 150 阅读 · 0 评论 -
【JVM学习笔记】垃圾回收及算法
如何判定对象为垃圾对象? 引用计数法 可达性分析法如何回收? 回收的策略:标记-清除算法、复制算法、标记-整理算法、分代收集算法 垃圾回收器:Serial、Parnew、Cms、G1何时回收? 引用计数算法在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器的值就+1,当引用失效的时候,...原创 2018-08-02 14:23:24 · 179 阅读 · 0 评论 -
从代理机制到Spring AOP
这篇文章准备从Java的代理机制讲到Spring的AOP。1.代理模式代理模式是很常见的一种设计模式,代理一词拆开来看就是代为受理,那显然是要涉及到请求被代理的委托方,提供代理的代理方,以及想要通过代理来实际联系委托方的客户三个角色。举个生活中很常见的例子,各路的明星都会有个自己的经纪人来替自己打点各种各样的事情,这种场景下,明星本身是委托方,经纪人是代理方,明星把自己安排演出、出席见面会...转载 2018-09-10 19:05:44 · 3395 阅读 · 2 评论 -
Future模式及JDK中的实现
1.1、Future模式是什么先简单举个例子介绍,当我们平时写一个函数,函数里的语句一行行同步执行,如果某一行执行很慢,程序就必须等待,直到执行结束才返回结果;但有时我们可能并不急着需要其中某行的执行结果,想让被调用者立即返回。比如小明在某网站上成功创建了一个账号,创建完账号后会有邮件通知,如果在邮件通知时因某种原因耗时很久(此时账号已成功创建),使用传统同步执行的方式那就要等完这个时间才会有...转载 2018-09-10 18:57:14 · 652 阅读 · 0 评论 -
创建多线程的第三种方法
使用Callable接口和FutureTask类创建,与之前的使用Thread类和Runnable接口的区别就是,该方式会返回线程执行的返回值。import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;...原创 2018-09-07 09:14:00 · 220 阅读 · 0 评论 -
Spring中注解大全和应用
Spring中注解大全和应用@Controller @RestController: @Service @Autowired @RequestMapping @RequestParam @ModelAttribute @Cacheable @CacheEvict @Resource @PostConstruct @PreDestroy @Repository @Co...转载 2018-09-05 20:08:24 · 160 阅读 · 0 评论 -
深入理解Java虚拟机视频教程(jvm性能调优+内存模型+虚拟机原理)视频教程
链接: https://pan.baidu.com/s/1VgrDTFktrRweBwE-1lc1Dw密码: 2q14原创 2018-09-04 19:13:00 · 4838 阅读 · 9 评论 -
VTD-XML解析XML入门简介
一、概述VTD-XML是一种无提取的XML解析方法,它较好的解决了DOM占用内存过大的缺点,并且还提供了快速的解析与遍历、对XPath的支持和增量更新等特性。 二、原理 为了实现non-extractive(非提取)这个目的,它将原XML文件原封不动的以二进制的方式读进内存,连解码都不做,然后在这个二进制byte数组上解析每个 element的位置并把一些信息记录...原创 2018-08-30 17:15:29 · 3770 阅读 · 2 评论 -
【JVM学习笔记】虚拟机工具及性能监测命令
JPSjava process statusjps -l 查看包名+类名jps -m 查看类和接收的参数jps -v 查看类+虚拟机参数 jstat类装载,内存 ,垃圾收集,jit编译的信息命令格式:jstat [options] VMID [interval] [count][options] : 操作参数,一般使用 -gcutil 查看gc情况VMI...原创 2018-08-02 14:31:21 · 602 阅读 · 0 评论 -
【JVM学习笔记】垃圾收集器
Serial收集器最基本,发展最悠久单线程垃圾收集器适用于桌面应用 ParNew收集器与Serial收集器的区别是它是多线程的 Parallel Scavenge收集器复制算法(新生代收集器)多线程收集器达到可控制的吞吐量;吞吐量:CPU用于运行用户代码的时间与CPU消耗的总时间的比值吞吐量=(执行用户代码时间)/ (执行用户代码的时间 + 垃圾回收...原创 2018-08-02 14:27:08 · 145 阅读 · 0 评论 -
【JVM学习笔记】内存分配
堆内存区域划分(JDK1.7) 内存分配策略1、对象优先分配到eden2、大对象直接分配到老年代3、长期存活的对象分配到老年代4、空间分配担保(内存不够去别的地方借)5、动态对象年龄判断 虚拟机参数:-verbose:gc 输出虚拟机GC信息-XX:+PrintGCDetails 打印GC详细信息-XX:+UseSerialGC 使用Serial...原创 2018-08-02 14:25:21 · 166 阅读 · 0 评论 -
Spring AOP的理解
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。原创 2022-12-07 09:52:26 · 867 阅读 · 1 评论 -
Java的swing界面拖拽文件至文本框显示文件路径
import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transferable;import javax.swing.JComponent;import javax.swing.JFrame;import javax.swing.JTextField;import javax.swing.Transf...原创 2018-08-02 14:11:25 · 8767 阅读 · 6 评论 -
Java中调用Python代码片段
Java中执行Python文件,调用Python中的方法原创 2020-04-18 11:24:19 · 4763 阅读 · 0 评论 -
Java读写ini文件代码片段
Java读写ini文件原创 2020-04-18 11:25:17 · 2136 阅读 · 0 评论 -
java使用lambda表达式对List集合进行操作(Java8)
【代码】java使用lambda表达式对List集合进行操作(Java8)原创 2018-08-02 14:09:41 · 32334 阅读 · 1 评论 -
服务器端Session、客户端Session和Cookie的区别
一般大型互联公司的网站都是有一个个独立的频道所组成的,例如我们常用的百度,会有百度搜索,百度音乐,百度百科等等,我相信他们不会把这些不同频道都给一个开发团队完成,应该每个频道都是一个独立开发团队,因为每个频道的应用的都是独立的web应用,那么就存在一个跨站点的session同步的问题,跨站点的登录可以使用单点登录的(SSO)的解决方案,但是不管什么解决方案,跨站点的session共享任然是逃避不了的问题。因为session是与用户相关的,在用户之前访问的每一个页面都有可能创建了会话。原创 2018-06-29 15:58:11 · 41797 阅读 · 6 评论 -
【Intellij IDEA】eclipse项目导入 【转】
博客原文:http://www.cnblogs.com/lindp/p/4484390.html一、导入Eclipse项目至ideaFile – New – Module from Existing Sources… 选择你的eclipse项目此步比较关键,选择Eclipse,往后直接next next finish 就可以了。目前为止,项目基本导入成功了,原创 2020-04-18 11:26:23 · 2063 阅读 · 0 评论