Java

《JVM笔记》之一:Java内存区域与内存溢出异常

Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。按照《Java虚拟机规范(第2版)》的规定,Java虚拟机所管理的内存将包括以下几个运行时数据区域,来个图更加直观点,如下图所示:解释下各个部分程序计数器:ProgramCounterRegister是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。每个线程都有一个独立的程序计数器,各个线程之间计数器互不影响,独立存储。此内存

系统 2019-08-29 22:50:35 1580

Java

Java通过JNI调用EXE导出函数

此文解决的是使用Eclipse,通过JNI,调用DLL文件。再通过该DLL文件,使用GetProcAddress调用EXE文件的导出函数。目前只能做到调用单一的函数。下一步可扩展的:1.连续调用多个函数,并组合使用。2.在EXE运行过程中。动态的调用导出函数并获取实时的数据。3.通过强制破解,调用非导出的函数。A.在Eclipse下创建java项目。创建包:com。创建java类:Helloworld。代码如下://包名在生成头文件时容易出问题。应当注意j

系统 2019-08-29 22:42:57 1580

Java

Java中的XML:使用Castor进行数据绑定

对于主要关心文档的数据内容的应用程序来说,Java的XML数据绑定是XML文档模型的强大替代方案。在本文中,企业Java专家DennisSosnoski介绍了数据绑定并讨论了什么使它如此吸引人。然后他向读者展示了如何使用Java数据绑定的开放源代码Castor框架处理日益复杂的文档。如果您的应用程序关心XML的数据更甚于关心XML文档本身,您可能希望找出这个处理Java中XML的容易而又高效的方法。大多数处理应用程序中XML文档的方法都是把重点放在XML上

系统 2019-08-29 22:05:57 1580

Java

java的动态性编程(二)——引入Reflection

使用反射不同于常规的Java编程,其中它与元数据--描述其它数据的数据协作。Java语言反射接入的特殊类型的原数据是JVM中类和对象的描述。反射使您能够运行时接入广泛的类信息。它甚至使您能够读写字段,调用运行时选择的类的方法。反射是一种强大的工具。它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代表链接。但反射的某些方面存在一些疑问。在本文中,我将深入讨论为什么您可能不希望在程序中使用反射,以及您应该这样做的理由。在了解了权衡性分析

系统 2019-08-29 22:01:14 1580

Java

java笔记-工厂模式

一、引子话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)看来这人比较爱国,没有日本车),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说"开奔驰车!",坐上Bmw后他说"开宝马车!",坐上Audi后他说"开奥迪车!"。你一定说:这人有病!直接说开车不就行了?!而当把这个爆发户的行为放到我们程序语言中来,我们发现C语言一直是通过这种方式来坐车的!幸运的是,这种有病的现象在OO语言中可以避免了。

系统 2019-08-12 09:30:02 1580

Java

Java内存泄露的理解与解决

转载自----http://henryyang.iteye.com/blog/1188328Java内存管理机制在C++语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。Java语言对内存管理做了自己的优化,这就是垃圾回收机制。Java的几乎所有内存对象都是在堆内存上分配(基本数据类型除外),然后由GC(ga

系统 2019-08-12 09:29:32 1580

Java

Java 代理

代理模式UML类图代理模式1.静态代理/***为被代理的类提供一个接口,是为了提高代理的通用性,凡是实现了该接口的类,都可以被代理*这里其实就是运用了java面向对象的多态性*/publicinterfaceIHello{publicvoidsayHello();}/***被代理的类,最根本的想法就是想用另外一个类来代理这个类,给这个类添加一些额外的东西*我们只需要创建另外一个类引用这个类就行了*/publicclassHelloimplementsIHe

系统 2019-08-29 22:57:10 1579

Java

深入Java集合学习系列:HashMap的实现原理(2)

5.HashMap的性能参数:HashMap包含如下几个构造器:HashMap():构建一个初始容量为16,负载因子为0.75的HashMap。HashMap(intinitialCapacity):构建一个初始容量为initialCapacity,负载因子为0.75的HashMap。HashMap(intinitialCapacity,floatloadFactor):以指定初始容量、指定的负载因子创建一个HashMap。HashMap的基础构造器Has

系统 2019-08-29 22:51:23 1579

Java

JAVA基础--方法传参

JAVA基础--方法传参为啥拿这个当话题?在初学者阶段,许多童鞋都对方法传参比较迷茫,知其然不知其所以然。一.先说说参数传递的几个术语:值调用(callbyvale):表示方法接收的是调用者传递的值。引用调用(callbyreference):表示方法接收的是调用者传递的变量地址。一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值;**JAVA语言总是采用值调用。也就是说,JAVA方法得到的是所有参数值的一个拷贝,方法不能修改传递给

系统 2019-08-29 22:32:28 1579

Java

JasperReport(3)——Java简单使用IReport生成的

先看看设计的报表样式:reportTitle是新添加的一个参数,而其他的id和name是通过数据源得到的Filed。IReport在设置参数的时候需要先在左边新建一个parameter,然后再把该parameter托到右边的设计栏中。生成的XML文件为:

系统 2019-08-29 22:12:14 1579

Java

java学习笔记(十八)代码块

代码块1:普通代码块:直接定义在方法中的代码publicclassMainDemo01{publicstaticvoidmain(Stringargs[]){{intc=40;System.out.println(c);}intc=100;System.out.println(c);}}输出为:F:\java>javacMainDemo01.javaF:\java>javaMainDemo01one401002:构造代码块:直接定义在类中的代码classD

系统 2019-08-12 09:30:27 1579

Java

使用JNI集成java与native程序

当我们开始接触JNI但是还不熟悉的时候,也许会这样几个问题:Java程序和native程序的数据类型通常是不一样的,它们怎么相互映射的呢?怎么在native方法中访问java方法传递过来的数据呢?在native方法中可以创建java对象吗?如何把结果返回给调用它的java方法?读完本文你将会明白如上问题的来龙去脉。首先我在重复一下如何编写JNI相关的应用程序,我们必须在java方法中声明一个native的方法,比如publicnativeStringget

系统 2019-08-12 09:30:14 1579

Java

在Jmeter中用JAVA获取Rolling Date

RollingDate_Weeklyimportjava.util.*;importjava.text.SimpleDateFormat;importjava.text.DateFormat;intoldY=2010;intoldM=10;intoldD=7;vars.put("oldDateWeekly",oldM+"/"+oldD+"/"+oldY);CalendaroldCal=Calendar.getInstance();oldCal.set(ol

系统 2019-08-12 09:27:37 1579

Java

如何用JNI技术提高Java的性能详解

阻碍Java获得广泛应用的一个主要因素是Java程序的运行效率。Java是介于解释型和编译型之间的一种语言,同样的程序,如果用编译型语言C来实现,其运行速度一般要比Java快一倍以上。Java具有平台无关性,这使人们在开发企业级应用的时候总是把它作为主要候选方案之一,但是性能方面的因素又大大削弱了它的竞争力。为此,提高Java的性能就显得十分重要。问题的提出Sun公司及Java的支持者们为提高Java的运行速度已经做出了许多努力,其中大多数集中在程序设计的

系统 2019-08-29 23:16:03 1578