![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 68
OnTheWay_Seeking
Java, DB2, Unix/Linux, Python, Data Warehouse....
展开
-
JVM源码分析之MetaspaceSize和MaxMetaspaceSize的区别
JVM加载类的时候,需要记录类的元数据,这些数据会保存在一个单独的内存区域内,在Java 7里,这个空间被称为永久代(Permgen),在Java 8里,使用元空间(Metaspace)代替了永久代。永久代和元空间保存的数据并不完全一样,永久代中还保存另一些与类的元数据无关的杂项。如我们之前的一篇文章016:字符串对象在JVM中是如何存放的中说的,在Java 7里将字符串常量从永久代移动到了堆区域,但是永久代并没有完全改造完成。直到Java 8,永久代的改造才算完全搞定,在元空间中保存的数据比永久代中纯转载 2021-05-11 13:31:01 · 295 阅读 · 0 评论 -
IBM JDK生成Dump文件的方法
https://www.cnblogs.com/wyb628/p/8567610.html (分析工具使用说明)https://blog.csdn.net/namesliu/article/details/7018086 (JavaDump文件说明)https://www.oschina.net/question/129540_23220 (生成javadump、heapdump、systemdump文件的方法)http://www.codeweblog.com/websphere-wa...转载 2021-03-07 17:40:09 · 1111 阅读 · 0 评论 -
内存溢出,内存泄漏,内存抖动
内存溢出,内存泄漏,内存抖动你都碰到过吗?怎么解决的?如何区分这几种情况?怎么解决由内存泄漏而导致的内存溢出?内存优化 . 内存泄露 内存溢出 内存抖动 分析与解决内存溢出和内存泄漏的区别、产生原因以及解决方案一、内存溢出:(一)、定义:内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。(二)、引起内存溢出的原因以及解决方案:原因:转载 2021-02-05 10:54:24 · 440 阅读 · 0 评论 -
JVM调优总结 -Xms -Xmx -Xmn -Xss
堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置: java -Xmx3550m -Xms3550m -Xmn2g -Xss128k-Xmx3550m:设置JVM最大可用内存为3550M。-Xms3550m:设置JV转载 2021-01-26 11:16:39 · 83 阅读 · 0 评论 -
java 模式
通常,一个设计模式描述了一个被证实可行的方案。这些方案非常普遍,是具有完整定义的最常用的模式。一般模式有4个基本要素:模式名称(pattern name)、问题(problem)、解决方案(solution)、效果(consequences)。常见的Java设计模式有以下23种:1、抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,而无需转载 2012-05-20 21:44:05 · 401 阅读 · 0 评论 -
构造器Constructor
构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。构造器用来确保每个对象都会得到初始化。当对象被创建时,如果该类具有构造器,java就会在用户有能力操作对象之前自动调用相应的构造器,所以保证了初始化地进行。在java中创建和初始化被捆绑在了一起,两者不能分离。注意构造器没有返回值,与返回值为空(void)明显不同。如果不想被实例化,可转载 2012-04-23 18:54:34 · 2895 阅读 · 0 评论 -
java多线程例子
这里我们做一个完整的例子来说明线程产生的方式不同而生成的线程的区别: package debug;import java.io.*;import java.lang.Thread;class MyThread extends Thread{ public int x = 0; public void run(){ System.out.println(++x);转载 2012-04-18 23:05:55 · 451 阅读 · 0 评论 -
Java equals 和== 区别
Java中的equals是十分重要的,和= =要区别开来, = =和equals1、声明格式 public boolean equals(Object obj)其比较规则为:当参数obj引用的对象与当前对象为同一个对象时,就返回true,否则返回false. 比如以下两个对象animal1和animal2,引用不同的对象,因此用==或equals()方法比较转载 2012-03-28 22:20:16 · 399 阅读 · 0 评论 -
java集合类
java.util包中就包含了一系列重要的集合类,而对于集合类,主要需要掌握的就是它的内部结构,以及遍历集合的迭代模式。 接口:Collection 所有集合类的根类型,主要的一个接口方法:boolean add(Ojbect c)虽返回的是boolean,但不是表示添加成功与否,因为Collection规定:一个集合拒绝添加这个元素,无论什么原因,都必须抛出异常,这个返回值表转载 2012-03-25 20:02:20 · 475 阅读 · 0 评论 -
url传值到Action乱码的解决方法
jsp页面 URL传中文参数到Action里面出现乱码,用过滤器和控制器都解决不了,用了我两个多小时解决这个小问题!解决方法有以下几种:第一种:在Action中用 Java代码 new String(str.getBytes("ISO8859_1"), "UTF8") 进行转码,因为传递的时候,中文默人的是ISO8859_1第二种:可转载 2012-03-17 23:03:00 · 1058 阅读 · 0 评论 -
Java数组排序总结(冒泡,选择,插入,希尔)
package org.idcn.jse; public class SortAll { /** * 冒泡排序,选择排序,插入排序,希尔(Shell)排序 Java的实现 * 2008.11.09 * @author YangL. (http://www.idcn.org) */ public static void main(String[] args) {原创 2012-03-11 21:07:38 · 636 阅读 · 0 评论 -
Java线程:创建与启动
<br />一、定义线程 1、扩展java.lang.Thread类。 此类中有个run()方法,应该注意其用法:public void run()如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。 Thread 的子类应该重写该方法。2、实现java.lang.Runnable接口。 void run()使用实现接口 Runnable 的对象创建一个线程时,启动该线程将导致在独立执行的线程中调用对象的 run转载 2011-04-25 22:41:00 · 423 阅读 · 0 评论 -
java中,throws与throw有什么不同?
<br />这两者虽然看起来只有一个s的区别,但是作用完全不一样/////java处理异常方式///////////////////////////////在java代码中如果发生异常的话,jvm会抛出异常对象,导致程序代码中断,这个时候jvm在做的操作就是:创建异常对象,然后抛出,比如:int i= 1;int j = 0;int res = 0;res = i/j;//除0错误System.out.println(res);这5句代码运行到第四句会中断,因为jvm原创 2011-04-23 16:10:00 · 492 阅读 · 0 评论 -
Java中关于原子操作和volatile关键字
<br /><br />原帖:http://rwl6813021.javaeye.com/blog/349169<br /> <br /> <br />研究ThreadPoolExecutor的时候,发现其中大量使用了volatile变量。不知为何,因此做了一番查找,研究: 其中借鉴了很多网上资料。 在了解volatile变量作用前,先需要明白一些概念: <br /><br />什么是原子操作? <br />所谓原子操作,就是"不可中断的一个或一系列操作" , 在确认一个操作是原子的情况下,多线程环境里面,原创 2011-04-01 21:21:00 · 15046 阅读 · 7 评论 -
JDK、JRE、JVM的关系
如果安装了JDK,会发同你的电脑有两套JRE,一套位于 //jre 另外一套位于 C://Program Files//Java//j2re1.4.1_01 目录下后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C://Program Files//Jav a 目录下的JRE.如果你只安装JRE,而不是JDK,那么只会在 C://ProgramFiles//Java 目录下安装唯一的一套JRE.原创 2011-04-01 21:07:00 · 761 阅读 · 0 评论 -
forward 和redirect的区别
<br />forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。<br /><br />redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。原创 2011-03-29 21:11:00 · 540 阅读 · 0 评论 -
sleep() 和 wait() 有什么区别?
<br />1. sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。<br />2.wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。原创 2011-03-29 20:41:00 · 623 阅读 · 0 评论 -
几道常见的面试题(Core Java)
答:都属于Map接口的类,实现了将惟一键映射到特定的值上,区别主要有:1. 历史原因:Hashtable是继承于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现;2. 同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的;3. 值:只有HashMap可以让你将空值作为一个表的条目的key或value;4. HashMap把Hashtable的contains方法去掉了,改成containsvalue和contains原创 2011-03-28 15:31:00 · 3691 阅读 · 1 评论 -
同步和异步
<br /> 举个例子:普通B/S模式(同步)AJAX技术(异步)同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕-----------------------------------------------------------------------------------同步就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去转载 2011-03-28 15:25:00 · 544 阅读 · 0 评论 -
一道题
<br />class SuperClass{<br /> private int number;<br /> public SuperClass(){<br /> this.number=0;<br /> }<br /> public SuperClass(int number){<br /> this.number=number;<br /> }<br /> public int getNumber(){<br /> number++;<br /> ret转载 2011-03-21 20:13:00 · 482 阅读 · 0 评论 -
java断言assert的使用方法
什么时候用assert.断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true.如果表达式计算为 false,那么系统会报告一个 AssertionError.它用于调试目的:assert(a > 0); // throws an AssertionError if a assert Expression1 ;assert Expression1 : Expression2 ;Expression1 应该总是产生一个布尔值。Expression2 可以是得出一个值的任转载 2011-03-21 18:14:00 · 657 阅读 · 0 评论 -
抽象类可以实现接口
<br />抽象类可以实现接口,并且可以继承实体类 (接口可以继承接口) <br />任何抽象类都是实际类Object的子类。<br />如果父类无明确构造函数或有无参数构造函数,抽象类可以随意。<br /><br />抽象类的父类可以定义明确的带参数构造函数,抽象类也必须继承从而声明该构造函数。<br />另外抽象类也可以增加定义无参数的构造函数,从而使自己的子类无需声明明确的构造函数。<br />一。当父类无构造函数时:Java code 1.接口Act<br />//接口类转载 2011-03-21 17:58:00 · 1822 阅读 · 0 评论 -
java内部类
<br />浅析Java内部类与嵌套类<br />Abstraction:<br />本文描述了Java语言的嵌入类、内部类的具体分类和行为表现。<br />1 概述<br />我们知道,Java是一种完全的面向对象的语言,作为对象的灵魂,类的种类是多种多样的。类大致可以分外部类和内部类两种,外部类就是我们通常使用的类,而内部类的使用要比外部类少的多,最常见的是GUI事件侦听器。内部类的应用虽然不多,但是如果能够有效的使用内部类,能达到事半功倍的效果。废话不多说,下面开始:<br />2转载 2011-03-18 16:37:00 · 2090 阅读 · 0 评论 -
构造函数注意事项
当实现类之间继承的时候,子类继承父类的所有变量和方法,但子类不继承父类的构造函数,但子类可以调用父类的构造函数,用super。如果给父类定义了有参数的构造函数,则子类必须声明子类的构造函数,如果不声明就会出错的(一句话:若父类声明了自己的构造函数,而子类不声明构造函数,就会出错。因为子类会默认生成无参构造函数,无参构造函数会调用父类的无参构造函数,但是父类没有默认的无参构造函数,就会出错啦)。所以一般情况下为避免此种情况的发生,有两种方法:1.把父类系统默认的那个无参构造函数也声明出来。2.在子类中声明构造转载 2011-03-18 16:29:00 · 664 阅读 · 0 评论 -
Java中static、this、super、final用法简谈(一)
Java中static、this、super、final用法简谈(一) kevin 原创 更新:2003-10-19 22:16:05 版本: 1.0 本篇旨在帮助准备学习Java以及刚接触Java的朋友认识、掌握和使用static、this、super、final这几个关键字的使用。Java博大精深,我也是一位正在学习和使用Java的爱好者,文中难免有不妥之处,欢迎指正。一、static 请先看下面这段程序: public class Hello{ public static原创 2011-03-18 16:22:00 · 371 阅读 · 0 评论 -
Date,DateStamp,String转换
<br />Date--->Timestamp<br />public String getCurrentTime(){<br /> Date date = new Date(); <br /> //format对象是用来以指定的时间格式格式化时间的 <br /> SimpleDateFormat form = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //时间格式,这里的格式可以自己设置 <br /> //format(原创 2011-03-18 16:16:00 · 2987 阅读 · 0 评论 -
同步和异步
<br />1.<br />举个例子:普通B/S模式(同步)AJAX技术(异步)<br />同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事<br />异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕<br />-----------------------------------------------------------------------------------<br />同步就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听转载 2011-03-18 16:08:00 · 2284 阅读 · 0 评论 -
常用集合类用场概括
1.如果要线程安全,使用Vector、Hashtable2.如果不要求线程安全,使用ArrayList、LinkedList、HaspMap3.如果要求键值时,使用HashMap、Hashtable4.如果数据量很大又要考虑线程安全,用VectorCollection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap原创 2011-03-11 17:48:00 · 487 阅读 · 0 评论 -
HashMap和Hasptable的区别
相同点:他们都是集合类,用来存放java对象。区别:1.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是jdk1.2之后引入的一个基于Map接口的一个实现。2.同步性:Hashtable是线程同步的,而HashMap不是,他是异步的。因而Hashtable是线程安全的,HashMap非线程安全。当然因为线程安全,所以执行效率低,HashMap非线程安全则执行效率高,速度快。(如:多个线程去同时请求一个程序(如服务器),则如果是线程安全则会用到锁的概念,在程序响应一个线程的时原创 2011-03-11 16:57:00 · 1780 阅读 · 0 评论 -
List lst = new ArrayList();与ArrayList lst = new ArrayList();区别
List是接口,ArrayList是JDK里提供的一个实现类。<br /><br />List<String> list = new ArrayList<String>();<br /><br />编译时类型是List,运行时类型是ArrayList,而List接口的实现类不只有ArrayList一个,用一个List类型的引用这是“面向接口编程”,好处有很多,但是尽量面向接口编程,这里只说一个这样写的好处:<br /><br />以后我们会用到很多不是我们写的类,我们叫第三方类库,在类库里面很可能会返回一个转载 2011-03-11 14:31:00 · 1012 阅读 · 0 评论 -
java集合类
<br />java.util包中就包含了一系列重要的集合类,而对于集合类,主要需要掌握的就是它的内部结构,以及遍历集合的迭代模式。<br /> <br />接口:Collection<br /> <br />所有集合类的根类型,主要的一个接口方法:boolean add(Ojbect c)<br />虽返回的是boolean,但不是表示添加成功与否,因为Collection规定:一个集合拒绝添加这个元素,无论什么原因,都必须抛出异常,这个返回值表示的意义是add()执行后,集合的内容是否改了(就是元素有无转载 2011-03-11 10:34:00 · 403 阅读 · 0 评论 -
Windows中的JDK和Linux中的JDK是否相同
前言在面试中,被问到了一个问题:Windows中的JDK和Linux中的JDK是否相同?其实,以上这个问题是一个子问题。原本的问题是:如何理解Java的跨平台机制。由于原问题显得有些宽泛,因此延伸出一个子问题,在本篇博客中争取能够完整地回答。本文力求建立起自己知识体系中Java的基石,希望在阅读本文之后,同时可以很好地回答上述的跨平台机制这个基础问题。一、JDK的架构下面这张是从Oracle官方文档中找到的JDK架构图,非常细致的展现了JDK每个层级的架构和组件。以下将会挑选重点,谈谈转载 2021-01-20 14:02:50 · 2021 阅读 · 0 评论 -
ssh项目异常用处理方式
在struts2中封装了自己的异常处理方式。我们在项目中可以根据自己的需要来处理自己的异常。一 异常信息封装可以建一个异常信息封装类,将项目中常见异常信息进行封装,常见信息包括: 1.异常种类: 如: 数据库操作异常; 应用操作异常(业务异常,如 权限不够等) ; 系统异常(如 应用服务器异常)2.具体异常: 如:"该数据库不存在!" 等等二原创 2012-03-22 23:44:13 · 7336 阅读 · 0 评论 -
hibernate批量删除多条记录
hibernate3貌似不支持一次删除多条记录,可以把多条记录放到一个List里面,然后循环删除,例:public void delMG(List mastergroup) { for(Mastergroup mg : mastergroup){ this.getHibernateTemplate().delete(mg); }原创 2012-03-21 23:28:58 · 5970 阅读 · 0 评论 -
java用户角色权限设计
实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权转载 2012-03-02 23:10:29 · 642 阅读 · 0 评论 -
struts2 action中获取request session application的方法
共四种方式:其中前两种得到的是Map 后两种得到的才是真正的request对象而Map就是把request对象中的属性取出做成了键值对而已。【方法一】[java] view plaincopypublic class LoginAction { private Map request; private Map session;转载 2012-02-26 19:42:38 · 658 阅读 · 0 评论 -
J2EE系统异常的处理准则
异常的处理是每个Java程序员时常面对的问题,但是很多人没有原则,遇到异常也不知道如何去处理,于是遇到检查异常就胡乱try...catch...一把,然后e.printStackTrace()一下了事,这种做法通常除了调试排错有点作用外,没任何价值。对于运行时异常,则干脆置之不理。 原因是很多开发者缺乏对异常的认识和分析,首先应该明白Java异常体系结构,一种分层继承的关系,你必须对层次结转载 2012-02-12 17:12:16 · 474 阅读 · 0 评论 -
Spring中常用的hql查询方法 (getHibernateTemplate())
一、find(String queryString); 示例:this.getHibernateTemplate().find("from bean.User"); 返回所有User对象 二、find(String queryString , Object value); 示例:this.getHibernateTemplate().find("f转载 2012-02-05 22:30:43 · 2019 阅读 · 0 评论 -
数据库连接池简介
<br />数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。<br /><br />数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。<br /><br />数转载 2011-04-25 21:04:00 · 433 阅读 · 0 评论 -
Schema 和DTD区别
<br />XML Schema 和DTD 都是用来定义各种文件中XML标记的使用规范. <br /> XML Schema 是标准的XML文件,而DTD则使用自己的特殊语法,因此,只需要知道XML的语法 <br />规则就可以编写Schema了,不需要再学习其它语法规则. 可以使用相同的处理器来解读, <br />XML文件与XML Schema文件. <br /> XML Schema 利用命名空间将文件中特殊的节点与Schema说明相联系原创 2011-04-02 12:17:00 · 3535 阅读 · 0 评论