Java 基础

120 阅读3分钟

这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战

熟悉Java中8种数据类型

八种数据类型

 Int  4个字节 32位  long  8个字节 54位  short 2个字节 16位

 float   4个字节  double 8个字节

 byte    8位 -128 - 127

 char  2个字节 unicode编码 16位

 Boolean 1true/false

数据类型

boolean(布尔型)
byte(字节型)     
char(字节型)     
short(短整型)    
int(整型)       
long(长整型)    
float(浮点型)    
double(双精度浮点型)

对应的封装类分别是:

Boolean                   
Byte                   
Character          
Short                 
Integer        
Long                 
Float                 
Double

1.整数型:

2.小数型       3.字符型    

4.布尔型    

java 中switch运用

switch 语句的格式:
 
switch ( 整型或字符型变量 )
{
     case 变量可能值1 : 
         分支一;
         break;
   case 变量可能值2 : 
         分支二;
         break;
   case 变量可能值3 : 
         分支三;
         break;
   ...
   default :
       最后分支;
}

在 switch 的语法里,我们要学到4个关键字:switch、case 、break、default。

switch 使用注意:

在 Java 7之前,switch 只能支持 byte、short、char、int或者其对应的封装类以及 Enum 类型。在 Java 7中,String支持被加上了。

在java1.6 中要使用string的话, 需要使用枚举

Object有哪些公用方法?

线程通讯的有三个 wait()  notify() notifyAll()
反射什么的有用到class   getClass()  
常用的打印一下对象各个字段属性 可以复写 toSTring()
hashCode() equals()  clone()
对象回收finalize()
注意  equals() 和 == 的区别:
 "=="操作符的作用
  1. 用于基本数据类型的比较

  2. 判断引用是否指向堆内存的同一块地址。 equals的作用:

用于判断两个变量是否是对同一个对象的引用,即堆中的内容是否相同,返回值为布尔类型 第一种情况:

如果String缓冲池内不存在与其指定值相同的String对象,那么此时虚拟机将为此创建新的String对象,并存放在String缓冲池内。

如果String缓冲池内存在与其指定值相同的String对象,那么此时虚拟机将不为此创建新的String对象,而直接返回已存在的String对象的引用。

       String a = "java";
       String b = "java";
       System.out.println(a.equals(b));//true
       System.out.println(a==b);//true

第二种情况:

对象不同, 内容相同

   String a = new String("java");
   String b = new String("java");
   System.out.println(a.equals(b));//true
   System.out.println(a==b);//false

第三种情况:

同一对象,内容相同 ,对象相同

       String a = new String("java");
       String b = a;
       System.out.println(a.equals(b));//true
       System.out.println(a==b);//true

Java时间函数

javaSystem.currentTimeMillis()返回的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒数,Date()其实就是相当于Date(System.currentTimeMillis());因为Date类还有构造Date(long date),用来计算long秒与1970年1月1日之间的毫秒差。。

在开发过程中,通常很多人都习惯使用new Date()来获取当前时间,使用起来也比较方便,同时还可以获取与当前时间有关的各方面信息,例如获取小时,分钟等等,而且还可以格式化输出,包含的信息是比较丰富的。但是有些时候或许你并不需要获取那么多信息,你只需要关心它返回的毫秒数就行了,例如getTime()。为了获取这个时间戳,很多人也喜欢使用new Date().getTime()去获取,咋一看没什么问题,但其实没这个必要。

其实看一下java的源码就知道了:

public Date() { this(System.currentTimeMillis()); }

已经很明显了,new Date()所做的事情其实就是调用了System.currentTimeMillis()。如果仅仅是需要或者毫秒数,那么完全可以使用System.currentTimeMillis()去代替new Date(),效率上会高一点。况且很多人喜欢在同一个方法里面多次使用new Date(),通常性能就是这样一点一点地消耗掉,这里其实可以声明一个引用。