随笔分类 - java基础知识
摘要:通过jmap生成dump文件, 1.通过命令jmap -dump:live,format=b,file=***.hprof pid 2. shell启动脚本增加如下配置: 2.1. -XX:+HeapDumpOnOutOfMemoryError 当OutOfMemoryError发生时自动生成 He
阅读全文
摘要:今天在项目中遇到了Pair,之前没有使用过,百度了下,记录。 使用场景 当我们在写一个方法需要返回两个字段值时,我之前的方法是新建一个类或使用集合。目前来看使用Pair方便很多。 配对(Pair)。配对提供了一种方便方式来处理简单的键值关联,当我们想从方法返回两个值时特别有用。 核心库对java配对
阅读全文
摘要:一、序列化和反序列化的概念 序列化:指把java对象转换为字节序列的过程。 反序列化:指把字节序列恢复为java对象的过程。 对象的序列化主要有两种用途: 1) 把对象的字节序列保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 1.当两个进程在进行远程通信时,彼此可以发送各种
阅读全文
摘要:虽然jvm可以通过GC自动回收无用的内存,但是代码不好的话仍然存在内存溢出的风险。 最近在网上搜集了一些资料,现整理如下: —————————————————————————————————————————— 一、为什么要了解内存泄露和内存溢出? 1、内存泄露一般是代码设计存在缺陷导致的,通过了解内
阅读全文
摘要:今天遇到了这样的问题,在jsp取session中的值时,取不到。有个SessionUser对象,该对象有个uId属性,set/get方法为setUId/getUId,在jsp页面通过el表达式取值${session.user.uId},发现取不到值,其它属性都能取到。最后查找了相关资料才知道是set/get方法名的问题。 一般JavaBean属性以小写字母开头,驼峰命名格式,相应的 getter/setter 方法是 get/set 接上首字母大写的属性名。例如:属性名为userName,其对应的getter/setter 方法是 getUserName/setUserName。但是,还有一.
阅读全文
摘要:一般Java在内存分配时会涉及到以下区域:◆寄存器:我们在程序中无法控制◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中◆堆:存放用new产生的数据◆静态域:存放在对象中用static定义的静态成员◆常量池:存放常量◆非RAM存储:硬盘等永久存储空间Java内存分配中的栈在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中 为这个变量分配内存空间,当该变量退出该作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。Java内存分配中的堆堆内存用来存放由new创建的
阅读全文
摘要:可以使用return,但使用return后,会跳出整个函数,多重循环后面的代码无法执行。 1 public static void main(String[] args) { 2 // TODO Auto-generated method stub 3 4 for(int i=0;i<10;i++){ 5 for(int j=i;j<10;j++){ 6 if(j==2){ 7 return; 8 } 9 ...
阅读全文
摘要:1.问题说明 在C++中,函数调用时有传值调用和传址调用两种方式,但在Java中只有传值调用一种方式。Java中的方法参数为那几种基本数据类型的情况跟C++中一样,传入的只是变量的拷贝。而当参数类型为类对象时,则有可能会误以为是传址调用。2.测试用例 现在此举出例子并加以说明publicclassAClass{intdata;} 该类为作为测试用的类,里面只有一个域。2.1第一个用例:publicclassParameterTest{publicstaticvoidmain(String[]args){AClassa=newAClass();a.data=10;test1(a);System.
阅读全文
摘要:java.text.SimpleDateFormat 类 ----时间日期格式化java.util.Date类 ----构造时间日期 1 package com; 2 3 import java.text.ParsePosition; 4 import java.text.SimpleDateFormat; 5 import java.util.Date; 6 7 public class Test4 { 8 9 /** 10 * @param args 11 */ 12 public static void main(String[...
阅读全文
摘要:本人对泛型的使用不是很多,了解也不是很深,在此记录一些自己的认识。 1 public class FanXing2 { 2 3 /** 4 * @param args 5 */ 6 public static void main(String[] args) { 7 // TODO Auto-generated method stub 8 Fx<String> fx = new Fx<String>("简单的泛型列子"); 9 fx.showType();10 }11 }12 13 class Fx...
阅读全文
摘要:View Code 1 package com.Test; 2 3 public class Test1 { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 // TODO Auto-generated method stub10 System.out.println("------------------第一次实例化对象--------------------");11 Parent parent = n...
阅读全文
摘要:1 package com.action; 2 3 public interface InterfaceTest { 4 5 public abstract void fun1(); 6 7 void fun2(); // 默认的都是public,abstract 类型的 8 9 void fun3();10 11 int i = 10; // 默认的都是public static final 型12 } 1 package com.action; 2 3 public class Test1 implements InterfaceTest { 4...
阅读全文
摘要:Java程序设计语言使用值调用。也就是说,方法得到的是所有参数值的一个拷贝,特别是,方法不能修改传递给它的任何基本数据类 方法参数共有两种类型: 1、基本数据类型(数字、布尔值)。 2、对象引用。 一个方法不可能修改一个基本数据类型的参数。而对象引用作为参数就不同了,对象参数所引用的对象状态是可以被改变的,因为方法得到的是对象引用的拷贝,对象引用及其他的拷贝同时引用同一个对象。 Java程序设计语言对对象采用的不是引用调用,实际上,对象引用进行的是值传递。 总结Java程序设计语言中,方法参数的使用情况: 1、一个方法不能修改一个基本数据类型的参数(即数值开和布尔值)。 2、一个方法可以改变.
阅读全文
摘要:今天看到一篇关于Integer与int的一些区别,在这里我也来记录下:int是基本数据类型,直接存储数据,Integer是包装类,是对象,用一个引用指向这个对象。在java中包装类,比较多的用途是用在于各种数据类型的转化中。举个列子:当需要往ArrayList,HashMap中放东西时,像int,double这种内建类型是放不进去的,因为容器都是装object的,这种就需要包装类了。int的初始值是0,Integer的初始值是null。 1 int i = 100; 2 Integer i2 = 100; 3 Integer i3 = new Integ...
阅读全文

浙公网安备 33010602011771号