编程语言
文章平均质量分 52
LovelyBear2019
专注Java后台开发,网络爬虫开发
展开
-
使用Java调用C/C++
文章目录前言JNI概述例子编写Java代码编译生成的class文件:JNITest.class在命令行下使用javah生成C/C++头文件。在工程的bin目录下输入以下命令:实现C++代码。在VS2008中创建一个Win32 project,类型为DLL。构建C++项目将dll文件复制到Java工程的bin目录下前言我们知道Java是一种平台无关性的语言,平台对于上层的java代码来说是透明的...原创 2018-11-18 12:34:33 · 14773 阅读 · 9 评论 -
JVM类加载机制
文章目录前言类加载过程类加载时机加载验证准备解析初始化前言虚拟机把描述类的数据从.class文件加载到内存,并对数据进行校验、解析和初始化,最终形成可以被虚拟机直接使用的Java类型(Class对象),这就是虚拟机类加载机制。在Java语言中,类的加载、链接和初始化过程都是在程序运行期间完成的,这是java作为动态语言的基础。另外值得注意的是上面提到的.class文件,并不一定只能是磁盘上的....原创 2018-11-19 16:11:33 · 910 阅读 · 0 评论 -
JVM内存分区
图示堆区(Heap)堆区是Java虚拟机所管理的内存中最大的一块内存区域,也是被线程共享的内存区域,该内存区域存放对象以及数组(但不是所有的对象实例都在堆中)等。方法区(Method Area)方法区也称"永久代",它用于存储虚拟机加载的类信息、常量、静态变量,是各个线程共享的内存区域。虚拟机栈(JVM Stack)虚拟机栈描述的是方法执行的内存模型:每个方法被执行的时候都会创建一个...原创 2018-11-19 15:45:09 · 961 阅读 · 0 评论 -
MinorGC和FullGC触发条件
MinorGC当Eden区满时,触发Minor GC。FullGC调用System.gc时,系统建议执行Full GC,但是不必然执行老年代空间不足方法区空间不足通过Minor GC后进入老年代的平均大小大于老年代的可用内存...原创 2018-11-22 14:03:39 · 1189 阅读 · 0 评论 -
JVM调优工具之jps
概述jps 命令类似与 linux 的 ps 命令,但是它只列出系统中所有的 Java 应用程序。通过 jps 命令可以方便地查看 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息。如果在 linux 中想查看 java 的进程,一般我们都需要 ps -ef | grep java 来获取进程 ID。如果只想获取 Java 程序的进程,可以直接使用 jps 命令来直接查看。用法...原创 2018-11-22 13:23:02 · 1070 阅读 · 0 评论 -
JVM下调用python之Jython
JVM下调用python之JythonJVM下调用python之Jython1、Maven添加Jython包2、编写python代码3、在Java IDE编写代码执 Python 件。1、Maven添加Jython包打开 pom.xml,在 <dependencies></dependencies&amp原创 2018-04-25 13:48:37 · 1706 阅读 · 0 评论 -
Java注解详解
文章目录元注解@Target@Retention@Documented@Inherited自定义注解在很多时候需要基于注解来开发。注解不仅增加了代码的可读性,还增加了开发的速度。这篇文章主要讲述Java 注解。元注解元注解用于注解其他注解的。Java 5.0定义了4个标准的元注解,如下:@Target@Retention@Documented@Inherited现在来说说这四个元...原创 2018-11-05 10:33:57 · 1647 阅读 · 0 评论 -
Javassist初探
Javassist是一款字节码编辑工具,可以直接编辑和生成Java生成的字节码,以达到对.class文件进行动态修改的效果。原创 2018-11-09 15:50:49 · 1328 阅读 · 0 评论 -
JVM类加载-双亲委派机制
文章目录类加载器种类双亲委派模型过程实现几点思考类加载器种类启动类加载器(Bootstrap):负责将Java_Home/lib下面的类库加载到内存中(比如rt.jar)。由于启动类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作。扩展类加载器(Extension):它是由Sun的ExtClassLoader(sun.misc.La...原创 2018-11-20 10:33:58 · 1047 阅读 · 0 评论 -
JVM垃圾回收算法
文章目录垃圾回收机制的意义垃圾回收算法一、引用计数法。二、标记清除算法三、标记整理算法四、复制算法五、分代垃圾回收算法垃圾回收机制的意义Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有了垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以...原创 2018-11-20 11:11:54 · 1075 阅读 · 2 评论 -
Java对象的自我救赎-finalize
对象的自我救赎即使在可达性分析算法中不可达的对象,也并非是“非死不可”的,这时候它们暂时处于“缓刑”阶段,要真正宣告一个对象死亡,至少要经历两次标记过程:如果对象在进行可达性分析后发现没有GC Roots相连接的引用链,那它将会被第一次标记并且进行一次筛选,筛选的条件是此对象是否有必要执行finalize()方法。当对象没有覆盖finalize()方法,或者finalize()方法已经被虚拟机调...原创 2019-02-02 10:23:40 · 1022 阅读 · 8 评论 -
Java8-Stream
概述Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行...转载 2019-01-16 20:18:52 · 976 阅读 · 36 评论 -
Java8-Lambda表达式
概述Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。语法lambda 表达式的语法格式如下:(parameters) -> expression或(parameters) ->{ statements; }以...转载 2019-01-16 19:46:00 · 869 阅读 · 2 评论 -
CMS垃圾回收器
文章目录简介回收过程一、初始标记二、并发标记三、重新标记四、并发清除缺点简介CMS全称Concurrent Mark Sweep(并发标记清除),是一款以获取最短回收停顿时间为目标的 老年代收集器,适合基于B/S的服务器上,系统停顿时间短,用户体验较好。另外,CMS也是一款真正意义上的并发收集器,能够与用户线程同时进行。虽然,并发回收过程中也有几个阶段需要Stop the world,但是由...原创 2018-11-20 13:56:29 · 3407 阅读 · 2 评论 -
ArrayList扩容机制详解
ArrayList扩容机制详解文章目录ArrayList扩容机制详解初始化扩容条件扩容细节总结初始化初始化有三种方式1.默认的构造器,将会以默认的大小来初始化内部的数组:public ArrayList();2.用一个ICollection对象来构造,并将该集合的元素添加到ArrayList: public ArrayList(Collection<? extends E>...原创 2018-10-29 13:48:15 · 3270 阅读 · 0 评论 -
Java系列问题解决办法
Java系列问题解决办法文章目录Java系列问题解决办法问题一 使用Javassist 获取方法形参名, 在本地单元测试通过, 打包到tomcat下报ClassNotFound错误问题一 使用Javassist 获取方法形参名, 在本地单元测试通过, 打包到tomcat下报ClassNotFound错误问题分析:ClassPool.getDefault()查找的路径是底层的JVM路径。而...原创 2018-10-25 10:20:31 · 2169 阅读 · 0 评论 -
Java的四种引用(强、软、弱、虚)
Java的四种引用(强、软、弱、虚)Java的四种引用(强、软、弱、虚)概念解释对比不同 在JDK1.2之后,Java对引用的概念进行了扩充,将引用分为强引用(Strong Referener)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(Phantom Reference)四种,这四种引用强度一次减弱。 1、...原创 2018-04-26 17:23:02 · 1507 阅读 · 0 评论 -
java-byte[]类型图片重新调整大小
java实现 import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java....原创 2018-03-21 13:55:14 · 3826 阅读 · 1 评论 -
异常问题解决方案(SSLProtocolException)
BUG描述: 1、代码在本地开发环境正常,但上传到了服务器端后,启动tomcat就报错; 2、使用httpclient抓取https数据,不加代理没问题,加代理之后就报错;解决方案: 1、在服务器端保证jdk版本是1.6 2、如果是Tomcat程序:在catalina.sh加上JAVA_OPTS="$JAVA_OPTS -Djsse.enab原创 2017-06-29 20:12:25 · 8249 阅读 · 0 评论