自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

guangzhi0633的专栏

MSN:robert_zhang@hotmail.com QQ373746443

  • 博客(125)
  • 资源 (14)
  • 收藏
  • 关注

原创 线程安全之关键判断--JVM基础(29)

介绍判断 Java 类是否线程安全的重要性和意义,引出后续判断标准。在多线程编程中,确保 Java 类的线程安全至关重要。如果一个类不是线程安全的,可能会导致数据不一致、程序崩溃等严重问题。因此,了解如何判断一个 Java 类是否线程安全具有重要的现实意义。

2024-10-29 21:25:52 918

原创 Java中的Callable和Future 详解--JVM基础(28)

Spring Cloud微服务解决方案:深入Spring Cloud的服务发现、配置管理、断路器、智能路由、微代理、控制总线等微服务组件。Redis缓存技术:介绍Redis的数据结构、持久化机制、事务与管道、集群搭建等,及其在缓存系统中的应用。并发编程实战:讲解多线程编程的并发控制、同步工具类、并发集合、Java并发包等,提升程序并发处理能力。微服务架构:分析微服务架构的优势、服务拆分策略、服务治理、配置中心、API网关等关键技术点。当我们需要执行一些耗时的任务时,比如网络请求、数据库查询等,可以使用。

2024-10-29 21:24:50 590

原创 Java中的Semaphore:灵活控制并发访问的秘诀--JVM基础(27)

在Java并发编程的世界里,Semaphore(信号量)是一个强大而灵活的工具,它能够帮助我们有效管理对共享资源的访问,避免资源的竞争与冲突。想象一下,你运营着一家电影院,每场电影的座位有限,如何高效地控制售票,既不让座位超卖,又能让顾客快速购票入场?这就很像Semaphore在多线程环境中的作用——限制并发访问的数量,保证系统稳定运行。

2024-10-29 21:23:51 857

原创 Java并发编程的艺术:深入理解AQS--JVM基础(26)

AQS是Java并发包中的一个抽象类,它提供了一套基于FIFO队列的线程阻塞等待机制,以及一套可重入的锁实现框架。简单来说,AQS通过维护一个状态变量(state)和一个双向链表(等待队列)来控制并发访问,实现了锁的获取与释放、线程的阻塞与唤醒等功能。

2024-10-29 21:21:26 864

原创 Java线程池中的submit与execute:区别、应用场景及面试必问知识点--JVM基础(25)

在Java中,当我们需要执行大量异步任务时,通常会利用线程池来管理线程资源,以避免频繁创建和销毁线程带来的开销。execute()和submit()。虽然它们都用于执行任务,但它们之间有一些关键的区别,这些区别在实际应用和面试中都是重点考察的内容。下面,让我们来一探究竟。

2024-10-29 21:19:26 673

原创 掌握Java线程池:重要参数与面试必备知识点--JVM基础(24)

当线程池无法处理新提交的任务时,会执行拒绝策略。

2024-10-29 21:18:23 537

原创 Java中的ThreadLocal:原理、注意事项及常见面试题--JVM基础(23)

当一个线程调用 ThreadLocal 的 set 方法时,实际上是将当前线程作为键,要存储的对象作为值,放入当前线程的 ThreadLocalMap 中。由于篇幅限制,以下仅为精选的面试专题内容概览,涵盖多个技术领域。ThreadLocal 是一个线程局部变量工具类,它的主要作用是在多线程环境下,为每个线程提供一个独立的变量副本,使得不同线程之间的变量互不干扰。Spring Cloud微服务解决方案:深入Spring Cloud的服务发现、配置管理、断路器、智能路由、微代理、控制总线等微服务组件。

2024-10-29 21:17:22 510

原创 八股文还是要看的-Java中如何优雅地终止线程--JVM基础(22)

掌握线程的优雅终止是一门艺术,也是Java并发编程中不可或缺的一部分。通过合理地使用中断、标志位、Future等机制,我们可以编写出更加健壮和可靠的多线程应用程序。在面试中,对这些知识点的理解和应用,将帮助你在众多候选人中脱颖而出。由于篇幅限制,以下仅为精选的面试专题内容概览,涵盖多个技术领域。全套JAVA面试笔记获取方式:若您对上述内容感兴趣并希望获取完整的面试笔记,请点击此处【点击此处即可】免费获取,助您面试成功!

2024-10-29 21:16:04 645

原创 Java中的锁机制:轻量级锁、偏向锁与重量级锁全解析--JVM基础(21)

轻量级锁是JDK 1.6之后加入的新型锁机制,它名字中的“轻量级”是和传统上使用操作系统互斥量来实现的进程间互斥的“重量级”锁相对而言的。轻量级锁的加锁和解锁逻辑都是在用户态代码来完成的,不需要内核态的参与,效率较高。

2024-10-29 21:14:24 946

原创 Volatile:让多线程同步变得简单又神秘!--JVM基础(20)

每个线程都有自己的工作内存(也称为本地内存),线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量。这就是所谓的可见性。比如,对于i++这样的操作,它其实包含了读取-修改-写入三个步骤,而volatile只能保证这三个步骤的可见性,但不能保证它们作为一个整体是原子的。纯使用volatile关键字来修饰账户余额字段可能不足以保证线程安全性,因为账户余额的更新通常是一个复合操作(如读取旧值、进行计算、写回新值),而volatile只能保证单个变量的可见性,不能保证复合操作的原子性。

2024-10-29 21:12:44 677

原创 CAS--JVM基础(19)

在架构设计中,我们也可以借鉴这种思想,通过减少锁的使用来提高系统的可扩展性和性能。然而,在实际部署后,你发现系统的性能并没有如预期那样提升,反而在某些情况下出现了性能下降的现象。当线程尝试获取锁时,如果锁已经被其他线程持有,则当前线程会进入一个循环(即“自旋”),不断尝试获取锁,直到成功为止。:当多个线程同时尝试更新同一个变量时,CAS操作可能会频繁失败,导致线程不断重试,从而增加了CPU的开销。高并发场景下的性能问题:在高并发场景下,CAS操作可能会频繁失败,导致线程不断重试,从而降低性能。

2024-10-29 21:11:38 501

原创 JMM内存屏障--JVM基础(18)

当处理器需要访问某个数据时,它会首先在自己的缓存中查找,如果找不到,则会去主内存中获取,并将数据加载到自己的缓存中。此时,如果有其他处理器修改了该数据,并且这个修改在内存屏障之前完成并刷新到了主内存中,那么当前处理器在加载数据时就能获取到最新的值,从而保证了缓存的一致性。同时,我们还可以利用JMM内存屏障的思想,在模块之间设置合适的边界和接口,以确保模块之间的数据访问和修改是安全可靠的。简单来说,JMM内存屏障就是一组插入在指令序列中的特殊指令,用于确保某些指令的执行顺序,从而解决内存可见性和有序性问题。

2024-10-28 14:41:09 878

原创 Java多线程中的原子性--JVM基础(17)

然后,在main()方法中,我们创建了1000个线程来对计数器进行自增操作,并打印出每个线程操作后的计数器值。这种机制确保了多个线程在同时修改V的值时,只有一个线程能够成功更新,从而保证了操作的原子性。然而,在某些情况下,我们可能会发现即使使用了原子类(如AtomicInteger),程序的行为仍然不是我们期望的那样。这样,我们就可以在保持数据一致性的同时,降低原子操作的频率,从而提高系统的整体性能。通过保证操作的原子性,我们可以确保在并发环境下,共享资源的数据一致性。那么,原子性是如何实现的呢?

2024-10-28 14:37:50 349

原创 【揭秘Java】线程安全中的有序性之谜--JVM基础(16)

如果我们不采取任何措施,那么可能会出现线程A读取了x的值(假设为0),然后线程B也读取了x的值(也为0),接着线程A和B都进行了自增操作并将结果写回x,最终导致x的值为1而不是我们期望的2。在复杂的并发场景中,我们可能需要使用更强大的同步机制,如synchronized关键字或Java并发包中的原子类。由于线程间的调度和切换,以及编译器和处理器为了提高性能而进行的指令重排,导致代码的执行顺序与我们编写的顺序不一致。在单线程环境中,代码的执行顺序是按照我们编写的顺序来执行的,这叫做程序的有序性。

2024-10-28 14:36:54 356

原创 揭秘Java内存模型:那些让人头疼的可见性问题--JVM基础(15)

另外,为了确保isDataExpired()方法的正确性,除了使用volatile外,还可以考虑使用synchronized或Lock等同步机制来确保在判断数据过期时,lastUpdateTime的值不会被其他线程修改。可见性问题对程序的影响是巨大的。volatile关键字是Java提供的一种轻量级的同步机制,它可以确保变量在每次读取前都从主内存中刷新,并在修改后立即写入主内存。当一个变量被声明为volatile时,它保证了修改的值会立即被更新到主内存,当有其他线程需要读取时,它会去主内存中读取新值。

2024-10-28 14:35:40 354

原创 揭秘Java内存模型(JMM)--JVM基础(14)

当一个线程访问某个对象的某个synchronized(this)同步代码块时,其他试图访问该对象的所有其他类型的同步代码块的线程将会被阻塞,直到第一个线程退出同步块为止。当一个变量被volatile修饰时,它会保证修改的值会立即被更新到主内存,当有其他线程需要读取时,它会去主内存中读取新值。Java内存模型是通过在变量修改后将新值同步到主内存,在变量读取前从主内存刷新变量值这种依赖主内存作为传递媒介的方式来保证多线程之间的可见性的。在并发编程中,JMM保证了数据的一致性和正确性,是Java并发编程的基石。

2024-10-28 14:34:54 287

原创 【JVM的STW机制】你的程序为何会“暂停”?--JVM基础(13)

G1和ZGC作为Java虚拟机(JVM)中的垃圾回收器,都采用了不同的策略和技术来降低STW(Stop-The-World)的影响,确保在垃圾回收过程中尽可能减少对应用程序执行的影响。调整JVM参数:根据应用程序的特性和需求,调整JVM的相关参数,如堆大小、新生代和老年代的比例等,可以优化垃圾回收器的性能,减少STW的时间和频率。STW机制虽然短暂,但对并发性能的影响不容忽视。- G1会根据应用程序的运行情况和堆内存的使用情况,动态调整新生代和老年代的大小,以及Region的分配,以适应不同的工作负载。

2024-10-28 14:34:04 442

原创 CMS、G1以及ZGC对比--JVM基础(12)

G1采用分代收集与区域化的设计,将堆内存划分为多个大小相等的区域(Region),并针对不同区域的特点进行不同的回收策略。G1(Garbage-First)垃圾回收器,如同一位全能战士,采用了分而治之的策略,将整个堆内存划分为多个大小相等的区域(Region),并根据每个区域的垃圾量来决定回收的优先级。:尽管ZGC在JDK 15中已经从实验性状态毕业,成为正式支持的垃圾收集器,但在某些环境或应用程序中,由于其较新的特性和可能的未完全优化的行为,一些用户可能仍然对其持谨慎态度。

2024-10-28 14:32:42 382

原创 垃圾回收算法--JVM基础(11)

而老年代则像沉稳的长者,对象们长久存在,变化较少,因此采用标记-清除(Mark-Sweep)或标记-整理(Mark-Compact)算法,确保回收的准确性和内存的高效利用。JVM垃圾回收算法是Java虚拟机中自动管理内存的关键机制,它通过智能识别和回收无用对象,有效防止内存泄露,提升系统性能,是Java语言高效、稳定运行的基石。在Java的世界里,我们享受着“自动内存管理”的便利,今天,就让我们一起揭开JVM(Java虚拟机)垃圾回收算法的神秘面纱,看看它如何为你的Java应用“瘦身”又“提速”!

2024-10-28 14:31:53 338

原创 JVM垃圾回收器--JVM基础(10)

例如,在G1回收器中,JVM会根据应用的实际运行情况,动态地调整各代的比例和垃圾回收的时机,以达到全局最优的效果。:Parallel回收器是Serial回收器的多线程版本,它利用多核CPU的优势,提高了垃圾回收的效率。JVM的垃圾回收器从最初的Serial回收器,发展到Parallel回收器、CMS回收器和G1回收器,经历了从单线程到并发与并行的转变。今天,我将从架构的角度,为大家总结JVM的几种主要垃圾回收器,并探讨它们在设计上的精妙之处,以及我们在后续架构设计中可以借鉴的思想。

2024-10-28 14:31:12 262

原创 程序计数器--JVM基础(9)

为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存。JVM的程序计数器是线程私有的内存区域,它记录着当前线程执行的字节码指令地址,是Java虚拟机中至关重要的组件,确保多线程环境下程序的正确执行与流畅切换。2). 不会出现内存溢出:程序计数器作为执行字节码指令的工作指针,它的内容会随着程序的执行而变化,但是它是内存很小的一块区域,在JVM规范中没有任何OutOfMemoryError情况的区域。

2024-10-28 14:30:23 247

原创 元空间--JVM基础(8)

通过将类的元数据从堆内存中解耦出来,放到本地内存中管理,元空间不仅提高了内存使用的灵活性,还降低了内存溢出的风险。JVM元空间JVM的元空间是Java虚拟机(JVM)在Java 8及以后版本中用于存储类的元数据的区域,它位于本地内存中,降低了内存溢出的风险,并优化了垃圾回收机制。当加载的类过多时,可能会导致内存溢出。请从JVM架构设计的角度,分析元空间相对于永久代的优势,并讨论在实际生产环境中,如果遇到了元空间内存溢出(OutOfMemoryError: Metaspace)的问题,你会如何诊断和解决?

2024-10-28 14:29:26 912

原创 本地方法栈--JVM基础(7)

我们来揭开本地方法栈的神秘面纱。**本地方法栈与虚拟机栈的关系:**虽然本地方法栈和虚拟机栈都为方法的执行提供服务,但它们的分工是不同的。本地方法栈(Native Method Stacks)是为虚拟机使用到的本地(Native)方法服务,与虚拟机栈相似但专门用于管理本地方法的调用,是线程私有的。**支持本地方法执行和调用:**本地方法栈用于支持本地方法的执行和调用,确保本地方法在执行过程中有足够的内存空间。**线程私有:**与虚拟机栈一样,本地方法栈也是线程私有的,即每个线程都有一个自己的本地方法栈。

2024-10-28 14:28:47 235

原创 虚拟机栈--JVM基础(6)

在方法执行过程中,如果调用了其他方法,则会创建新的栈帧并压入栈中,成为当前栈帧的下一个栈帧。当一个方法被执行时,Java虚拟机都会同步创建一个栈帧(Stack Frame)并将其压入栈中,这个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息,以支持当前方法的执行。同时,也保证了方法调用的有序性,通过栈帧的压栈和出栈操作,实现了方法调用的精确控制。虚拟机栈对于Java程序运行至关重要,它保存了线程的局部变量、操作数栈、动态链接、方法出口等信息,是方法执行时的内存模型,确保了线程执行的独立性。

2024-10-28 14:28:01 289

原创 堆--JVM基础(5)

通过调整堆的大小、垃圾回收器的参数等,我们可以让堆保持一个健康的“身材”,为程序提供稳定、高效的运行环境。:虽然JVM的垃圾回收器可以自动回收不再使用的对象所占用的内存,但如果程序中存在无法被垃圾回收器回收的对象(如静态变量引用的对象、循环引用等),则可能会导致内存泄漏。它会在合适的时机启动,遍历堆中的所有对象,找出那些不再被引用的“垃圾”,并将它们释放掉。Java程序员无需手动管理内存,JVM的垃圾回收器会自动回收不再使用的对象所占用的内存,从而减少了内存泄漏和程序崩溃的风险。

2024-10-27 16:22:27 833

原创 JVM运行区域--JVM基础(4)

JVM栈和方法区共同管理方法的执行环境,堆用于存储对象实例,而本地方法栈则支持本地方法的调用和执行。局部变量表所需的内存空间在编译时期完成分配,当进入一个方法时,这个方法需要在帧中分配多大的局部变量空间是完全确定的,在方法运行期间不会改变局部变量表的大小。理解堆内存的结构:首先,需要深入了解堆内存的结构,包括新生代和老年代,以及它们之间的交互。当一个方法被调用时,JVM会为该方法创建一个新的栈帧(Stack Frame),并将其压入当前线程的JVM栈中。特点:堆是线程共享的,所有线程都可以访问堆中的对象。

2024-10-27 16:21:05 875

原创 执行引擎--JVM基础(3)

1、执行引擎概述执行引擎是JVM的核心组件之一,

2024-10-27 16:19:39 738

原创 类加载器--JVM基础(2)

当一个类加载器需要加载一个类时,它首先会把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父类加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去加载。系统类加载器(System Class Loader)或应用类加载器(Application Class Loader):也称为系统类加载器,它负责加载应用程序的类路径(CLASSPATH)下的类库。没错,就是类加载器!

2024-10-27 16:18:54 997

原创 VM组成--JVM基础(1)

Spring Cloud微服务解决方案:深入Spring Cloud的服务发现、配置管理、断路器、智能路由、微代理、控制总线等微服务组件。Redis缓存技术:介绍Redis的数据结构、持久化机制、事务与管道、集群搭建等,及其在缓存系统中的应用。并发编程实战:讲解多线程编程的并发控制、同步工具类、并发集合、Java并发包等,提升程序并发处理能力。微服务架构:分析微服务架构的优势、服务拆分策略、服务治理、配置中心、API网关等关键技术点。因此,JVM的执行引擎是Java程序能够高效、稳定地运行的关键组件之一。

2024-10-27 15:52:30 951

原创 【揭秘Java】线程安全中的有序性之谜

# 架构角度分析### 1. 指令重排与内存模型Java的内存模型(JMM)定义了线程和主内存之间的抽象关系,以及线程间共享变量的可见性和有序性规则。由于指令重排和缓存一致性的存在,线程间共享变量的状态可能会出现不一致。在架构设计中,我们需要充分理解JMM的规则,避免由于指令重排导致的有序性问题。

2024-09-17 23:33:07 1457

原创 揭秘Java内存模型:那些让人头疼的可见性问题

另外,为了确保isDataExpired()方法的正确性,除了使用volatile外,还可以考虑使用synchronized或Lock等同步机制来确保在判断数据过期时,lastUpdateTime的值不会被其他线程修改。可见性问题对程序的影响是巨大的。volatile关键字是Java提供的一种轻量级的同步机制,它可以确保变量在每次读取前都从主内存中刷新,并在修改后立即写入主内存。当一个变量被声明为volatile时,它保证了修改的值会立即被更新到主内存,当有其他线程需要读取时,它会去主内存中读取新值。

2024-09-17 23:32:22 962

原创 揭秘Java内存模型(JMM)

简单来说,Java内存模型(JMM)是Java虚拟机(JVM)规范中定义的一种。

2024-09-17 23:31:41 1002

原创 【JVM的STW机制】你的程序为何会“暂停”?

从架构角度看STW3.1 一致性与安全性的权衡JVM采用STW机制,主要是为了保证在垃圾回收等关键操作期间,系统的一致性和安全性。这种权衡体现了架构设计中对于稳定性和可靠性的追求。在后续架构设计中,我们也可以借鉴这种思想,在追求高性能的同时,不忘关注系统的稳定性和安全性。3.2 并发与同步的考量STW机制虽然短暂,但对并发性能的影响不容忽视。JVM通过不断优化垃圾回收算法和引入新的回收器(如G1、ZGC),来降低STW的影响。

2024-09-17 23:30:35 1380

原创 JVM的CMS、G1以及ZGC对比

在架构设计中,我们可以考虑将系统划分为多个模块或微服务,每个模块或微服务承担不同的职责,通过模块间的协作来实现整个系统的功能。G1(Garbage-First)垃圾回收器,如同一位全能战士,采用了分而治之的策略,将整个堆内存划分为多个大小相等的区域(Region),并根据每个区域的垃圾量来决定回收的优先级。:尽管ZGC在JDK 15中已经从实验性状态毕业,成为正式支持的垃圾收集器,但在某些环境或应用程序中,由于其较新的特性和可能的未完全优化的行为,一些用户可能仍然对其持谨慎态度。

2024-09-17 23:28:55 1294

原创 JVM垃圾回收算法

而老年代则像沉稳的长者,对象们长久存在,变化较少,因此采用标记-清除(Mark-Sweep)或标记-整理(Mark-Compact)算法,确保回收的准确性和内存的高效利用。JVM垃圾回收算法是Java虚拟机中自动管理内存的关键机制,它通过智能识别和回收无用对象,有效防止内存泄露,提升系统性能,是Java语言高效、稳定运行的基石。在Java的世界里,我们享受着“自动内存管理”的便利,今天,就让我们一起揭开JVM(Java虚拟机)垃圾回收算法的神秘面纱,看看它如何为你的Java应用“瘦身”又“提速”!

2024-09-17 23:27:56 1363

原创 JVM垃圾回收器

例如,在处理大量并发请求时,我们可以采用多线程或多进程的方式,将请求分发到不同的处理单元上,以提高系统的吞吐量和响应速度。例如,在G1回收器中,JVM会根据应用的实际运行情况,动态地调整各代的比例和垃圾回收的时机,以达到全局最优的效果。:Parallel回收器是Serial回收器的多线程版本,它利用多核CPU的优势,提高了垃圾回收的效率。JVM的垃圾回收器从最初的Serial回收器,发展到Parallel回收器、CMS回收器和G1回收器,经历了从单线程到并发与并行的转变。此外,我们还可以通过设置如。

2024-09-17 23:26:58 1258

原创 JVM程序计数器

为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存。JVM的程序计数器是线程私有的内存区域,它记录着当前线程执行的字节码指令地址,是Java虚拟机中至关重要的组件,确保多线程环境下程序的正确执行与流畅切换。2). 不会出现内存溢出:程序计数器作为执行字节码指令的工作指针,它的内容会随着程序的执行而变化,但是它是内存很小的一块区域,在JVM规范中没有任何OutOfMemoryError情况的区域。

2024-09-17 23:26:07 1349

原创 JVM本地方法栈

本地方法栈可以保存本地方法要执行所需的必要参数,如局部变量表、操作数栈等,使得Java程序能够方便地调用本地方法,实现与底层系统的交互。通过JNI,Java程序可以调用本地方法(即非Java编写的方法),实现Java与C、C++等语言的互操作性。同时,线程隔离的设计也使得线程在调用本地方法时,可以独立地管理自己的栈空间,提高了系统的并发性能。本地方法栈(Native Method Stacks)是为虚拟机使用到的本地(Native)方法服务,与虚拟机栈相似但专门用于管理本地方法的调用,是线程私有的。

2024-09-17 23:25:04 1378

原创 JVM虚拟机栈

在方法执行过程中,如果调用了其他方法,则会创建新的栈帧并压入栈中,成为当前栈帧的下一个栈帧。当一个方法被执行时,Java虚拟机都会同步创建一个栈帧(Stack Frame)并将其压入栈中,这个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息,以支持当前方法的执行。同时,也保证了方法调用的有序性,通过栈帧的压栈和出栈操作,实现了方法调用的精确控制。虚拟机栈对于Java程序运行至关重要,它保存了线程的局部变量、操作数栈、动态链接、方法出口等信息,是方法执行时的内存模型,确保了线程执行的独立性。

2024-09-17 23:23:48 1165

原创 JVM堆介绍

今天,我们将深入探索Java堆的奥秘。它是Java虚拟机中一个非常关键的内存区域。让我们一起揭开Java堆的神秘面纱吧!

2024-09-17 23:22:27 644

fat jar eclipse JAVA 打包插件

eclipse JAVA 打包插件

2011-12-31

java学习文档-涉及面挺广

设计到java开发常用的一些知识!总结的挺广泛!看看不错

2011-07-13

JD-GUI(Java反编译工具)

一个非常不错的反编译工具,他不像jad那样麻烦,只要鼠标双击打开就可以,非常方便

2011-07-13

OSGI进阶实战教程

OSGi学习不错的材料 OSGi学习不错的材料 OSGi学习不错的材料 OSGi学习不错的材料

2011-05-10

ORACLE SQL语句教学

ORACLE SQL语句教学,包含基本的SQL语句,适合初级的学习者

2010-12-04

JfreeChart教程+API+例子

JfreeChart 教程 中文API 各种图例子

2010-11-28

jFreeChart教程

包含Jfree的中文API 一个各种图的使用放法

2010-11-14

反编译 jad.exe

使用jad进行 D:\Project\java\*\WebRoot\WEB-INF>jad -o -r -sjava -d src classes/**/*.class 反编译出来的.java文件都在web-inf目录下的src里,然后剪切,覆盖到项目目录下的src。 ok,刷新下eclipse,搞定。

2010-02-11

pdfbox-0.7.3.jar

PDF全称Portable Document Format,是Adobe公司开发的电子文件格式。这种文件格式与操作系统平台无关,可以在Windows、Unix或Mac OS等操作系统上通用。 PDF文件格式将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。如果要抽取其中的文本信息,需要根据它的文件格式来进行解析。幸好目前已经有不少工具能帮助我们做这些事情。

2010-02-11

jadclipse_3.3.0.rar

eclipse 反编译 针对 eclipse3.0以上的版本jadclipse_3.3.0.rar

2010-02-11

jadclipse_3.2.4.rar

eclipse反编译的过程,下载载jadclipse_3.2.4.jar

2010-02-11

PDFRenderer.jar 与用例

如果生成PDF文件,大家估计会选择iText jar包,但是如果想用在一个Panel上看PDF,就要选择PDFRenderer.jar (貌似pdfbox也可以),现在将PDFRenderer jar包以及例子放到了一起,供大家参考

2010-02-10

java JVM 内存回收

gc即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存。java语言并不要求jvm有gc,也没有规定gc如何工作。不过常用的jvm都有gc,而且大多数gc都使用类似的算法管理内存和执行收集操作。

2009-05-07

Java正则表达式详解

如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。

2009-05-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除