Day03_java基础知识

Day03_java基础知识

数据类型

long类型要在数字后加L,例:

long num1 = 10L;

float类型要在数字后加F,例:

folat num2 = 20.1F;

整型扩展

进制

二进制:0b

八进制:0

十六进制:0x

浮点数扩展

最好完全避免使用浮点数进行比较

利用BigDecimal表示大数。

字符拓展

c1,c2均是字符a。

char c1 = 'a';

char c2 = 'u0061';

转义字符:

类型转换

由于java是强类型语言,所以进行有些运算时,需要用到类型转换。

低—————————————————————>高

byte,short,char —> int —> long —>float —>double

高->低:强制转换。

低->高:自动转换。

强制转换时出现的问题

内存溢出

int i =128;
byte b = (byte)i;

结果:i =128,b=-128。

原因是强制转换时内存溢出。

注意点

  1. 不能对布尔值进行转换。
  2. 不能把对象类型转换成不相干的类型。
  3. 在把高容量转换到低容量的时候,强制转换。
  4. 转换的时候可能存在内存溢出,或者精度问题。

JDK7新特性:数字之间可以用下划线分割。

int a = 10_0000_0000;
int b = 20;
int total1=a*b;
long total2=a*b;
long total3=a*((long)b);

total1,total2的值均会出现异常,total3的值正常。

total1的原因是内存溢出,total2的原因是先内存溢出,后进行的类型转换。计算total3时,对b进行类型转换,将整个式子进行了提升,相乘结果为long类型。

变量

修饰符不存在先后顺序。

常量:大写字母和下划线。

类名:首字母大写和驼峰原则。

tips:crtl+D:复制当前行到下一行。

基本运算符

基本运算后,结果类型会自动升型,如果运算因子有一个类型为long,则结果类型为long,如果两个运算因子类型为byte或short,结果类型为int。

短路运算

当逻辑运算符&&遇到第一个条件即为假时,直接返回结果为假。

public class Demo05{
  public static void main(String[] args){
    int c=5;
    boolean d=(c<4)&&(c++<4);
    System.out.println(d);
    System.out.println(c);
  }
}

输出结果为:false

​ 5

这是因为c<4已为假,故d直接赋值false,c++<4未运行。

位运算符

>> 相当于乘以2

<< 相当于除以2

优点是效率极高

2*8最快的运算方式:2>>3

字符串链接符

public class Demo06{
  public static void main(String[] args){
    int c=5;
    int d=6;
    System.out.println(""+c+d);
    System.out.println(c+d+"");
  }
}

输出为56

​ 11

这是由于""+在前面会默认把后面的数据当作字符串处理,c+d在前面会先运算两个整数相加。

三元运算符

public class Demo07{
  public static void main(String[] args){
    int c=50;
    int d=80;
    string type1=c<60?"不及格":"及格";
    string type2=d<60?"不及格":"及格";
    System.out.println(type1);
    System.out.println(type2);
  }
}

输出:不及格

​ 及格

包机制

代码在某个包下:package pkg1.pkg2.pkg3;

导入某个类:import pkg1.pkg2.pkg3.classname;

导入所有包,用通配符:import pkg1.pkg2.pkg3.*;

JavaDoc

javaDoc命令是用来生成自己API文档的。

javadoc -encoding UTF-8 -charset UTF-8 hello.java

原文地址:https://www.cnblogs.com/gaoyao/p/13302393.html