
Java学习
文章平均质量分 60
VBallack13
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java字符参与运算和字符串参与运算
字符参与运算 字符参与运算,实际上是字符对应的ASCII码进行运算。字符串参与运算 字符串运算实际就是字符串的连接操作,但要严格注意运算顺序。public static void main(String[] args) { System.out.println('0'); System.out.println('0' + 1); System.out.println(原创 2015-07-09 00:29:24 · 1559 阅读 · 0 评论 -
Java中用final修饰的变量
在Java中,用final修饰的变量只能赋值一次,之后不能再被重新赋值,而且被修饰的变量变成了常量。public class Test { public static void main(String[] args) { int a = 1; int b = 2; int c = 1 + 2; int d = a + b;原创 2015-07-22 20:23:58 · 1834 阅读 · 0 评论 -
TreeSet学习小结
JDK对TreeSet介绍如下:基于 TreeMap 的 NavigableSet 实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。 TreeSet的特点是可以对元素按照某种规则进行排序,并且保证元素的唯一性。 排序的方式有两种: A:自然排序 B:比较器排序例如:public class TreeSetDem原创 2015-08-30 17:18:34 · 767 阅读 · 0 评论 -
ConcurrentModificationException的解决方法
ConcurrentModificationException是Java中很常见的一种异常,尤其是使用集合类的时候,很容易出现。在官方文档中ConcurrentModificationException的介绍如下:public class ConcurrentModificationException extends RuntimeException当方法检测到对象的并发修改,但不允许这种修改时,原创 2015-08-30 12:23:51 · 2236 阅读 · 0 评论 -
String和Date之间的转换(Java)
String和Date之间的互相转化是最常用的。具体方法如下:1、Date—>StringDate date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString = sdf.format(date);2、String—>DateString str =原创 2015-08-16 19:23:13 · 569 阅读 · 0 评论 -
Java接口学习总结
一、接口的特点1、接口不可以实例化,创建对象时利用多态的方式创建。Animal animal = new Dog();//Animal是接口,Dog必须是实现了接口Animal的类。2、接口的子类可以是抽象类,也可以是具体类(必须实现该接口,重写该接口中的所有方法)。二、接口成员的特点成员变量:接口的成员变量只能是常量,而且是静态的,默认修饰符为 public static final,并且只能是原创 2015-08-04 23:38:33 · 861 阅读 · 0 评论 -
Java遍历Map的常用方法
1、只取valueCollection<String> values = map.values();for (String value : values) { System.out.print(value + " ");}2、先去key,通过key取valueSet<String> keys = map.keySet();for (String key : keys) { Sy原创 2015-09-01 11:11:58 · 553 阅读 · 0 评论 -
Java抽象类总结
抽象类特点抽象类和抽象方法必须用abstract关键字修饰; 抽象类中不一定有抽象方法,但是有抽象方法的类必须定义为抽象类;抽象类中成员变量可以是常量,也可以是变量;抽象类有构造方法,但它不能被实例化,抽象类的构造方法用于子类访问父类数据;抽象类的实例化依靠子类实现;抽象类中的抽象方法不能有主体。public class AbstractClassTest { public s原创 2015-07-31 00:23:23 · 988 阅读 · 0 评论 -
Java异常问题小结
一、异常的分类在Java中,所有的异常都继承自Throwable,Throwable派生出来的子类有两种:Exception和Error。Error(错误):程序无法处理的错误。大部分是编写的Java代码无关,是Java虚拟机层面出现的问题,比如运行时Java虚拟机内存不足。出现Error时,Java虚拟机只能尽可能友好的终止当前进程。Exception(异常):程序可以处理的异常。Exceptio原创 2015-09-09 11:08:16 · 881 阅读 · 0 评论 -
Java内部类以及匿名内部类学习总结
一、什么叫内部类把类定义在其他类的内部,这个类就被称为内部类。 内部类只是一个编译时的概念,一旦编译成功之后,外部类和内部类就会变成两个不同的类,分别是Outer.class和Outer&Inner.class。所以内部类的成员变量/方法名可以和外部类的相同。二、内部类访问特点内部类访问外部类:可以直接访问,包括内部类的私有;外部类访问内部类:通过创建对象访问(非静态),通过类名访问(静态)。原创 2015-08-07 10:05:35 · 600 阅读 · 0 评论 -
使用字节流复制文件的四种方式以及效率比较
在java.io包中操作文件内容的主要有两大类:字节流、字符流。在对音乐和视频等文件进行IO操作时,都是使用字节流。 使用字节流操作时文件,有四种方式,现对一个flac文件分别使用四种方式进行复制,测试其效率。测试类:public static void main(String[] args) throws IOException { long startTime = System.cur原创 2015-10-05 21:07:09 · 8626 阅读 · 3 评论 -
serialVersionUID作用
serialVersionUID适用于Java的序列化机制。简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是InvalidCastExc转载 2015-10-07 23:57:50 · 609 阅读 · 0 评论 -
String,StringBuffer,StringBuilder效率与内存占用比较
分别使用String,StringBuffer,StringBuilder进行10000次的字符串拼接操作,计算运行时间以及java程序运行时的内存占用。public class StringWasteMemoryTest { public static void main(String[] args) { long beforeTime = System.currentTi原创 2015-11-22 21:07:58 · 5957 阅读 · 0 评论 -
Java继承学习小结
一、继承中构造方法的关系public class ConstructionMethodTest { public static void main(String[] args) { SubClass subClass = new SubClass(); System.out.println("-----------"); SubClass su原创 2015-07-22 11:51:55 · 631 阅读 · 0 评论 -
Java中的编译时多态和运行时多态
编译时多态:主要是方法的重载,通过参数列表的不同来区分不同的方法。运行时多态:也叫作动态绑定,一般是指在执行期间(非编译期间)判断引用对象的实际类型,根据实际类型判断并调用相应的属性和方法。主要用于继承父类和实现接口时,父类引用指向子类对象。 例如:public class PolymorphismTest { public static void main(String[] args)原创 2015-08-13 22:51:42 · 4758 阅读 · 0 评论 -
Java中的扩展运算符盲区
首先看一段代码:public static void main(String[] args) { byte num = 1; num = num + 1; num += 1; System.out.println(num);}我们一般都认为 num = num + 1 和 num += 1 这两条语句是等价的,后者是前者的简写。 对于加法操作, num + 1 的原创 2015-07-09 20:31:49 · 1454 阅读 · 0 评论 -
Java中交换两个int类型变量的方法汇总
Method One:使用第三方变量int z = x;x = y;y = z;Method Two:变量相加减x = x + y;y = x - y;x = x - y;Method Three:用位异或实现x = x ^ y;y = x ^ y;x = x ^ y;Method Four:最简单的一句话搞定y = (x+y) - (x=y);原创 2015-07-10 01:19:53 · 1400 阅读 · 0 评论 -
Java可变长参数注意事项
在Java SE 5.0之后,提供了可以用可变的参数数量调用的方法(有时成为“变参”方法)。 例如定义方法addpublic void add(int... params) { int result = 0; for (int param : params) { result += param; }}Question 1:可变长参数和数组的区别?看一段代码原创 2015-07-03 23:17:22 · 1550 阅读 · 0 评论 -
重写完美Equals的方法
***摘自Java核心技术 卷I*** class A { private String name; private int age; A(String name, int age) { this.name = name; this.age = age; } /**原创 2015-06-12 17:17:10 · 626 阅读 · 0 评论 -
Java的重载和重写
重载(overloading)重载表现的是Java类内部的多态性。 重载的方法具有相同的名字,但是其参数个数或者类型不同(返回值不作为参考标准)。 方法名以及参数类型个数构成了方法的签名,但是返回类型不是签名的一部分。重写(overriding)重写表现的是基类与派生类之间的多态性。 重写是在派生类中定义的某个方法与其父类有相同的名称和参数。 注意:重写方法的访问级别一定大于或等于被重写的原创 2015-06-14 20:20:21 · 518 阅读 · 0 评论 -
Java中的参数传递问题
在程序设计语言中,参数传递方法一般有两种 **按值调用(call by value):方法接收的是调用者提供的值。 按引用调用(call by value):方法接收的是调用者提供的地址。**很多人认为,在Java中也存在两种参数传递的方法: 对于基本数据类型,Java中采用的是值传递;对于对象,Java中采用的是引用传递。先看一段代码:int a = 0;int b = 1;swap(a原创 2015-07-13 20:54:30 · 569 阅读 · 0 评论 -
Java多态学习总结
一、多态产生的条件存在继承关系;存在方法重写; 要有父类引用指向子类对象。示例代码:public class PolymorphismTest { public static void main(String[] args) { SuperClass clazz = new SubClass(); //满足父类引用指向子类对象条件 }}class Super原创 2015-07-29 00:17:03 · 1344 阅读 · 0 评论 -
Java构造方法注意事项
在Java中,如果程序中没有显示的给出构造方法,系统会自动提供一个无参的构造方法。 但是,如果程序中给出构造方法,不论给出的构造方法是否带有参数,系统都不在提供无参的构造方法。class Person { String name; int age; public Person(String name, int age) { this.name = name;原创 2015-07-16 00:35:32 · 1382 阅读 · 0 评论 -
Java中static关键字总结
一、static的特点 static可以修饰成员变量,可以修饰成员方法还可以修饰代码块。 特点如下:随着类的加载而加载;优先于对象存在;被类的所有对象共享;可以通过类名调用(限于修饰成员变量和成员方法时)。二、static修饰的内容在内存中的位置 静态的内容在方法区的静态区。三、注意事项静态方法中没有this关键字: 静态内容随着类加载而加载,this是随着对象创建而存在,静态原创 2015-07-19 13:48:17 · 713 阅读 · 0 评论 -
Java中的代码块
在Java中,一共存在4种代码块。1、普通代码块(局部代码块)出现在方法中,用于限定变量的生命周期。2、构造代码块在类中定于,位于类的成员位置,用{ }括起来。在调用构造方法前执行。 可以把多个构造方法中的共同代码放到构造代码块中,对对象进行初始化。3、静态代码块在类中定于,位于类的成员位置,用{ }括起来,用static修饰。一般用来对类进行初始化。 静态代码块优于构造方法执行。在类加载时执行原创 2015-07-19 21:57:42 · 603 阅读 · 0 评论 -
一道关于Java中Integer缓冲区的面试题
给出下列程序的执行结果:Integer integer1 = 128;Integer integer2 = 128;System.out.println(integer1 == integer2);System.out.println(integer1.equals(integer2));System.out.println("-----------");Integer integer3 =原创 2015-08-13 16:42:19 · 1165 阅读 · 0 评论 -
Java中String问题汇总
1、String s = new String(“hello”) 和 String s = “hello”的区别?字符串作为一个常量是存放在常量池里面的,新建字符串的时候会先从缓冲区里面找有没有这个字符串,如果有直接返回引用,没有的话就在里面创建一个。 String s = “hello”可能创建一个对象或者不创建对象,主要看“hello”在常量池中是否存在。 String s = new St原创 2015-08-13 15:36:28 · 1160 阅读 · 0 评论 -
A.equals(B)的坑
在进行字符串比较的时候,一般使用A.equals(B)来判断。但如果此时A为null,则在程序运行的时候,会发生空指针错误。比较保险的方法,使用Objects.equals(A,B)来进行判断,防止由于A为null导致的程序崩溃问题。原创 2015-12-03 00:11:33 · 2180 阅读 · 1 评论