有的项目引用了太多的jar包,或者反射生成了太多的类,异或有太多的常量池,就有可能会报java.lang.OutOfMemoryError: PermGen space的错误, 我们知道可以通过jvm参数 -XX:MaxPermSize=256m来配置这部分堆内存的大小。 在eclipse中如何配置tomcat的内存大小呢?首先需要双击tomcat server,如下图所示:双击上图后会出现,tomcat配置的界面:然后再点击上图的,红色矩形框的链接,会弹出tomcat参数配置的节面,要选择Arguments参数...
建议6:覆写变长方法也循规蹈矩 在JAVA中,子类覆写父类的中的方法很常见,这样做既可以修正bug,也可以提供扩展的业务功能支持,同时还符合开闭原则(Open-Closed Principle)。符合开闭原则(Open-Closed Principle)的主要特征: 1.对于扩展是开放的(Open for extension)。这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为。也就是说,我们可以改变模块的功能。 ...
例如:Test是一个类,那么 Test t = new Test();这个语句叫做类的实例化,即t是Test类的一个实例,这个t就是一个Test类型的对象,在这个实例化过程中,也就是new Test();系统会自动调用Test类中的构造方法,如果你在定义Test类的时候写了无参构造方法Test(),那么就调用这个方法,如果你没写构造方法系统会默认有一个无参构造方法,如果你写了有参构造,那么new Test();会报错,必须写成:new Test(参数);构造方法的作用就...
前言任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务调度的 Java 实现:TimerScheduledExecutor开源工具包 Quartz开源工具包 JCronTab此外,为结合实现复杂的任务调度,本文还将介绍 Calendar 的一些使用方法。 回页首Timer相信大家都已经非常熟悉 java.util.Timer 了,它是最简单的一种实现任务调度的方法,下面给出一个具体的例子:清单 1. 使用 Timer 进行任务调度 package c...
import org.junit.Test; //import org.testng.annotations.Parameters;publicclass Demo {@Testpublicvoid test() {//数组的静态初始化int a[] = {2, 0, 1, 9, 2020};System.out.println("----------静态初始化----------");getArray(a);//数组的动态初始化方法一int[] b = newint[10];for (int i = 0; i < b.length; i++) {b[i] = i;}System.out.println("----------动态初始化1----------");getArray(b);//数组的动态初始化方法二...
由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一。ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在添加和移除元素的时候进行动态的扩展和缩减。你可能已经使用过 ArrayList,因此我将略过基础部分。如果你对 ArrayList 还不熟悉,你可以参考它的 API 文档,可以很容易理解在 ArrayList 上执行基本的操作。In this post, I will discuss one of the most import...
方案一:用Eclipse自带的Export功能步骤1:准备主清单文件 “MANIFEST.MF”,由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,内容如下:Manifest-Version: 1.0 Class-Path: lib/commons-codec.jar lib/commons-httpclient-3.1.jar lib/commons-logging-1.1.jar lib/log4j-1.2.16.jar lib/jackson-all-1.8.5.jar Main-Class: main.KillCheatFans第一行是MAINIFEST的版本...
JVM调优工具Jconsole,jProfile,VisualVMJconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。详细说明参考这里 VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。 如何调优观察内存释放情况、集合类检查、对象树上面这些调优工具都提供了强大的功能,但是总的来说一般分为以下几类功能 堆信息查看可查看堆空间...
String.valueOf(i)Integer.toString(i)i+"" i+""也就是一个int型的常量。+上个空的字符串,这里牵涉到了string的一些基础知识,string类型的+int在java中他会去这样理解是string类型的字符串跟上个int类型的i代表的字符串(先把i转换为string),int+string型就是先将int型的i转为string然后跟上后面的string 原文:https://blog.csdn.net/rocling/article/details/82818505原文:https://www.cnblogs.com/peachh/p/12080554.htm...
1/*2 * 线程的常用方法 3 * 1.start(); 4 * 2.run(); 5 * 3.sleep(int millsecond); 6 * 4.isAlive(); -->判断线程是否还在运行 7 * 5.currentThread(); -->返回当前正在使用CPU资源的线程 8 * 6.interrupt(); -->激活休眠的线程 9 * */但是需要注意的一个小点是:1/*2 * 需要注意到地方:一个已经运行的线程在没有进入死亡状态时, 3 * 不...
在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现抽象方法定义的格式:public abstract 返回值类型 方法名(参数);抽象类定义的格式:abstract class 类名 {}看如下代码:publicabstractclass Huge { // 抽象方法publicabstractdouble getArea(); // 抽象类里不一定存在抽象方法,也可以有普通方法, // 抽象方法存在的类一定是个抽象类,抽象类不能new,可用子类newpubli...
看下官方说明:意思是java方法签名包含两个要素:方法名称和参数列表。即不包括返回值类型。 那为什么不能包含返回值类型呢?看一下如下两段代码示例。示例一: 1public String m123(int i) {2return "456";3 }4 5publicint m123(int i) {6return 123;7 }8 9// 为什么不能包含返回值的原因:编译器无法从所有的上下文中确定重载版本 10// 因此为了避免“模棱两可”的局面, java方法签名中不包含返回值类型 11// 示例展示:12...
在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下。 代码块:publicclass ListTest {publicstaticvoid main(String[] args) {String[] array = {"1","2","3","4","5"};List<String> list = Arrays.asList(array);list.add("6");} }执行结果:Exception in thread "main" java.lang.UnsupportedOperationExceptionat java.util....
N!!!java中无参无返回值方法的使用 1,定义方法 eg: public void show(){ System.out.println("HelloWorld!") } ---方法要在一对大括号中实现特定的操作 ---命名规范,第一个单词字母小写,其他单词首字母大写 ---调用方法,先创建对象,然后通过 对象名.方法名()来操作; eg:public class HelloWorld{ public static void main(String[] args){ HelloWorld hello = new HelloWorld();//创建对象,对象名为hello hello.sh...
今天下午研究了半天hashcode()和equals()方法,终于有了一点点的明白,写下来与大家分享(zhaoxudong 2008.10.23晚21.36)。 1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。 equals()方法在object类中定义如下: public boolean equals(Object obj) { return (this == obj); } 很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们必需清楚,当String 、Math、还有Integer、Double。。。...