`
Javaloverlover
  • 浏览: 343468 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
看一个程序: import java.lang.Integer; public class Hello { public static void main(String[] args) { int a = 1000, b = 1000; System.out.println(a == b); Integer c = 1000, d = 1000; System.out.println(c == d); Integer e = 100, f = 100; System.out.printl ...
如果提取的时间格式是:1.yyyy-mm-dd型的,先将格式转化为:2.yyyy/mm/dd型,再转化为date型进行比较。假如现在有1类型的时间begin,end两个要进行比较: var beginDate = Date.parse(begin.replace(/-/g,"/")); var endDate = Date.parse(end.replace(/-/g,"/")); if(beginDate - endDate > 0) { //处理beginDate大于endDate情况的操作 } else if(beginDate - e ...
两个Date类型的变量可以通过compareTo方法来比较。此方法的描述是这样的:如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。 实际上比较的是自1970 年 1 月 1 日 00:00:00 GMT以来的毫秒数。毫秒数越大的时间越大。 如: import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java. ...
在非静态内部类的方法中访问某个变量时,系统优先在该方法内查找是否存在该名字的局部变量,如果存在则用此局部变量;若不存在,则到该方法的内部类查找是否存在该名字的属性,若存在则用此属性;若还不存在,则到此内部类所在的外部类中进行查找,若存在,则取用,否则,报异常。 public class InnerTest { private int i = 2; private class InnerClass { private int i = 1; public void say() { int i = 0; System.out.println(i); ...
java类的访问权限设置只能是默认或者public修饰,一个文件中只能有一个public类,且文件名必须与文件名一致。但内部类跟这个是有区别的,内部类可以看成外部类的一个成员变量,内部类和其他成员变量一样,可以有private,default,protected,private这4个权限修饰符进行权限控制。
接口与抽象类。 接口更适用于一个规范,定义一个规范,然后实现此接口的类都遵循这个接口的规范。 抽象类更适用于定义一个模板,抽象类实现子类的通用的地方,留下特殊的让子类各自实现。 接口和抽象类在选择的时候应尽量符合自己的长处,接口定义规范,抽象类定义模板。 这样才能写出更为高效的代码。 接口可以继承多个接口。

final的理解

    博客分类:
  • java
final修饰的变量分为基本类型和引用类型。两者最大的差别在于可操作性。 当用final修饰了一个基本类型时,如果这个变量是局部变量,则这个变量不必马上就初始化:         public static void main(String[] args) { final int a; a = 1; System.out.println(); } 一旦初始化后就不能进行修改了。 当此变量是引用类型时,也是不可修改的,但可以对对象进行操作: public class FinalTest { public static void main(String[] args) ...
java语言3大特征之一——多态。 多态为开发提供了很多的便利,为可扩展性提供很大的支持。 public enum Sex { MALE,FEMALE; } Person类: public class Person { private String name; private int age; public Person() { } public Person(String name, int a ...
java对象的创建其实不是完全依赖构造器的,其实在构造器执行前就已经创建好对象了,因为在构造器中可以调用this对象。
java中没有引用传递的概念。 基本类型肯定是值传递了,所以在方法中的修改不会对值产生任何影响。 如: public class SwapNum { /** * @param args */ public static void main(String[] args) { int a = 1; int b = 3; System.out.println("a:" + a + "b:" + b); swap(a, b); System.out.println("a:" + a + &q ...
以前很多java入门书籍在讲解java环境配置的时候都要配置dtjar和tools.jar的classpath变量,其实到了jdk 1.5以后,系统自动会加载这两个包,所以即使我们不用配置这两个包的classpath,也是完全没有问题的。 一旦我们设定了classpath,jre就会根据这个配置来进行搜索java文件。在指定classpath别忘了加上“.”这个路径,代表当前路径,不然会出现找不到的情况。 java配置: 右击我的电脑(计算机)——>属性——>高级——>环境变量——>添加 JAVA_HOME:jdk安装路径 path:%JAVA_HOME%/bin
junit这个自动测试工具,是很好用的。但有个地方需要注意,就是assertEquals(Long,Long)时,不能直接传递如:1L等,需要用new Long(1)来进行传递,或者用变量传递。这个应该是自动拆箱和装箱的原因。
java方法可以重载,通过参数列表的不同进行分辨,但是可变参数的方法和确定参数的方法一起时,调用的是什么方法呢?通过程序可以看到: public class TestArgs { public static void say(String str) { System.out.println(str); System.out.printl ...
List也可以取她的子List,方法是subList(int fromIndex, int toIndex),根据文档,subList包括fromIndex,但不包括toIndex。 如: List l1 = l.subList(1,3); 得到的是l中的第2个和第3个元素。

java +和+=

    博客分类:
  • java
java中有+=运算符。 比如 a += b 表示 a = a + b; 大多数情况下是成立的,但是有个例子就不相等了。 short s1 = 1; s1 = s1 + 1; 编译时就会出错。因为s1 + 1的类型是int型,赋值给short型的s1就会出现转型错误,要进行转型操作。 但 short s1 = 1; s1 += 1; 就不会发生那种错误,编译器会对他进行特殊处理。因此编译不会出错。
Global site tag (gtag.js) - Google Analytics