Java学习之路
文章平均质量分 77
Sunzxyong
最可怕的不是比你牛逼的有多少人,而是比你牛逼的人还比你更努力!
展开
-
Java提升篇之反射的原理(二)
Java提升篇之通过反射越过泛型检查/**问题:在一个ArrayList对象中,在这个集合中添加一个字符串。*/在我们还没有学反射前,遇到这个问题都是无法实现的,而可以通过反射来实现,因为Java中的泛型检查只是在编译时检查,所以,我们可以通过反射,来获得它的字节码对象,进而获取相应方法来实现。import java.lang.reflect.Method;import ja原创 2014-12-16 22:36:52 · 855 阅读 · 1 评论 -
Java学习之栈和堆的区别
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或对象后,还可以在栈中定义原创 2014-12-20 17:20:00 · 664 阅读 · 0 评论 -
各种问题的理解
// 用静态变量,它是依赖类存在而存在的,在方法区的静态区,而成员变量则是依赖对象存在而存在,是对象变量,存储在堆内存。还有就是static方法中不能用非static变量//静态方法在类加载时就会加载到栈内存,为其分配固定的内存空间,当调用它时调用,直到程序结束时销毁。非静态方法则是调用完就销毁//用static修饰的变量是全局变量,且static变量不能在方法中定义。//静态原创 2014-12-27 15:10:15 · 628 阅读 · 0 评论 -
static,this,private关键字用法
1:成员变量和局部变量的区别(理解)(1)在类中的位置不同成员变量:类中方法外局部变量:方法定义中或者方法声明上(2)在内存中的位置不同成员变量:在堆中局部变量:在栈中(3)生命周期不同成员变量:随着对象的创建而存在,随着对象的消失而消失局部变量:随着方法的调用而存在,随着方法的调用完毕而消失(4)初始化值不同成员变量:有默认值局部变量:没有默认值,原创 2014-12-26 14:41:05 · 917 阅读 · 0 评论 -
Java之String类型详解
字符串的特点A:字符串一旦被赋值,就不能改变。注意:这里指的是字符串的内容不能改变,而不是引用不能改变。B:字面值作为字符串对象和通过构造方法创建对象的不同String s = new String(“hello”)和String s = “hello”;的区别? 前者会创建2个对象,后者创建1个对象。字符串字面量就是一个对象,用new多此一举。 ==:比较原创 2015-01-17 23:26:06 · 1029 阅读 · 0 评论 -
Java内部类详解
1:形式参数和返回值的问题(理解)(1)形式参数:类名:需要该类的对象抽象类名:需要该类的子类对象接口名:需要该接口的实现类对象(2)返回值类型:类名:返回的是该类的对象抽象类名:返回的是该类的子类对象接口名:返回的是该接口的实现类的对象(3)链式编程对象.方法1().方法2().......方法n();这种用法:其实在方法1()调用完毕后,返回一个原创 2015-01-11 00:13:29 · 906 阅读 · 0 评论 -
java之异常处理
异常Exception我们分为|--RuntimeException运行期异常,我们需要修正代码|--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过异常有两种处理方式:1、try...catch...finally自己在catch处编写处理代码,后面的程序可以继续执行,即运行了catch里面的还会运行后面的代码public class原创 2015-02-05 16:03:01 · 686 阅读 · 0 评论 -
java之IO流详解(一)
IO流的分类:A:流向输入流 读取数据输出流 写出数据B:数据类型字节流 字节输入流 InputStream字节输出流 OutputStream字符流字符输入流 Reader字符输出流 Writer这个流都是抽象类,是所有具体流的父类,我们使用IO流都是使用它们的实现类。那么字节流和字符流有什么区别呢?一般来说,字符流是为了更好的处理中文原创 2015-02-06 18:07:28 · 893 阅读 · 0 评论 -
java之IO流详解(二)
好了,昨天讲了字节流,现在我们就来讲字符流吧。。。字符流可以这样理解,字符流 = 字节流 + 编码表,目的是为了更好的操作中文字符(注:字符流只可以可以操作字符类型的文件,不能操作影音图像文件,要操作这些文件必须使用字节流)我们先看看字符流有几类:A:OutputStreamWriter (父类Writer)OutputStreamWrite原创 2015-02-07 15:56:15 · 778 阅读 · 0 评论 -
Java学习之参数传递详解
Java中的参数传递问题:基本类型:形式参数的改变对实际参数没有影响。在参数传递过程中,形参和实参占用了两个完全不同的内存空间。引用类型:形式参数的改变直接影响实际参数。在参数传递的过程中,形参和实参指向的是同一块内存空间。public class bb { public static void main(String[] args) { int a = 10;原创 2014-12-23 16:42:43 · 987 阅读 · 0 评论 -
Java学习之二维数组定义与内存分配详解
二维数组:就是元素为一维数组的一个数组。格式1:数据类型[][] 数组名 = new 数据类型[m][n];m:表示这个二维数组有多少个一维数组。n:表示每一个一维数组的元素有多少个。注意:A:以下格式也可以表示二维数组a:数据类型 数组名[][] = new 数据类型[m][n];b:数据类型[] 数组名[] = new 数据类型[m][n];B:原创 2014-12-23 15:55:41 · 2076 阅读 · 0 评论 -
java创建对象详解和多态问题
一、 java 构造方法不等于创建对象而是初始化对象,new 关键字分配内存和创建对象的。 二、Test test = new Test(); 有人用上面的表达式来说明构造方法返回对象引用,这是明显错误的。new关键字有两个作用。一是分配内存,创建对象。二是调用构造方法,完成对象的初始化工作。完成这两步之后,才算创建了一个完整的Java对象。 因此,原创 2015-01-07 16:20:23 · 1880 阅读 · 1 评论 -
Java学习之继承中的执行顺序详解
代码块(理解)(1)用{}括起来的代码。(2)分类:A:局部代码块用于限定变量的生命周期,及早释放,提高内存利用率。B:构造代码块把多个构造方法中相同的代码可以放到这里,每个构造方法执行前,首先执行构造代码块。C:静态代码块static{}对类的数据进行初始化,仅仅只执行一次。(3)静态代码块,构造代码块,构造方法的顺序问题?原创 2015-01-04 11:24:02 · 3566 阅读 · 0 评论 -
Java学习之控制跳转语句
控制跳转语句控制跳转语句:(1)break:中断的意思A:用在循环和switch语句中,离开此应用场景无意义。B:作用a:跳出单层循环b:跳出多层循环,需要标签语句的配合(2)continue:继续A:用在循环中,离开此应用场景无意义。B:作用a:跳出单层循环的一次,执行下一次的循环(3)return:返回A:用于结束一个方法。B:一旦遇原创 2014-12-18 18:18:59 · 1067 阅读 · 0 评论 -
java详解final、多态、抽象类、接口原理
1:final关键字(掌握)(1)是最终的意思,可以修饰类,方法,变量。(2)特点:A:它修饰的类,不能被继承。B:它修饰的方法,不能被重写。C:它修饰的变量,是一个常量。(3)面试相关:A:局部变量a:基本类型 值不能发生改变b:引用类型 地址值不能发生改变,但是对象的内容是可以改变的B:初始化时机a:只能初始化一次。b:常见的给值定义的时候。原创 2015-01-08 14:49:18 · 1450 阅读 · 0 评论 -
Java学习之运算符使用注意的问题
运算符使用注意的问题运算符(1)算术运算符A:+,-,*,/,%,++,--B:+的用法a:加法b:正号c:字符串连接符C:/和%的区别数据做除法操作的时候,/取得是商,%取得是余数D:++和--的用法a:他们的作用是自增或者自减b:使用**单独使用放在操作数据的前面和后面效果一样。a++或者++a效果原创 2014-12-18 20:57:19 · 935 阅读 · 0 评论 -
Java之继承深刻理解
1、关于私有成员变量无论父类中的成员变量是私有的、共有的、还是其它类型的,子类都会拥有父类中的这些成员变量。但是父类中的私有成员变量,无法在子类中直接访问,必须通过从父类中继承得到的protected、public方法(如getter、setter方法)来访问。 2、关于静态成员变量无论父类中的成员变量是静态的、还是非静态的,子类都会拥有父类中的这些成员变量。原创 2015-01-08 18:35:14 · 921 阅读 · 0 评论 -
Java学习之位运算符
位运算符/*^位异或的特点:一个数据对另一个数据位异或两次,该数本身不变。*/class OperatorDemo2 { public static void main(String[] args) { int a = 10; int b = 20; System.out.println(a ^ b ^ b); //10 System.out.pri原创 2014-12-19 15:04:58 · 751 阅读 · 0 评论 -
Java之equals和==详解
两者的区别:A:==基本类型:比较的是值是否相同引用类型:比较的是地址值是否相同B:equals()只能比较引用类型。默认情况下,比较的是地址值是否相同,因为我们可以看源代码可以看到,在Object类中该方法的比较是用==比较的public boolean equals(Object obj) { return (this == obj); }。原创 2015-01-11 15:13:50 · 960 阅读 · 0 评论 -
Java提升篇之反射的原理
Java提升篇之反射的原理1、构造方法的反射import java.lang.reflect.Constructor;public class ReflectConstructor { public static void main(String[] args) throws Exception { Constructor constructor = Class.forName原创 2014-12-14 18:07:53 · 886 阅读 · 0 评论