java第二天学习

132 阅读4分钟

#数据类型扩展

书写注释是一个非常号的习惯

Java是强类型语言

要求变量的使用要严格符合规定,所有变量必须都必须先定义后实现

定义Long定义的时候要在后面加L

定义float的时候要在后面加f

long num=30L
float num=50.1f

单引号标注的是一个字符,双引号标注的是一个字符串

数据类型面试题

整数拓展

进制

二进制 0b 十进制 八进制0 十六进制 0x

int i1=10;
int i2=010;
int i3=0x10;
得到i1是10 ,i2是8 ,i3是16
    

浮点数拓展

float 有限的 离散的 舍入误差 大约 接近但是不等于

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

浮点数进行比较的时候考虑用Java中的BigDecimal 类

字符拓展

所以的字符的本质还是数字

编码Unicode 97=a 65=A 0~65536

转义字符

\t 制表符

\n 换行

String sa=new String ("hello world");
String sb=new String ("hello world");
System.out.printfln(sa==sb);
String sc="hello world";
String sd="hello world";
System.out.printfln(sc==sd);
输出结果两个不一样的
    第一个是false
    第二个是ture
    要从对象,内存分析

布尔值扩展

boolean flag=true;
if(flag==true)
if(true)这两个一样的意思

类型转换

强制类型转换 高—低

自动类型转换 低—高

int i=128;
byte b=(byte)i;(强制类型转换)

注意:

1.不对布尔类型进行转化

2.不能把对象类型对象转化为不相干的类型

3.在把高容量转换到低容量的时候,强制转换

4.转换的时候可能存在内存溢出,或者精度问题

char ch='a';
int i=a+1;
System.out.printfln(i);
System.out.printfln((char)i);
int i=10_0000_0000;
int year=20;(int 能表示的最大的数字是10亿)
long money=(long)(i)*year;(需要提前把一个数强转成long才可以)
System.out.printfln(money);

变量

int a=1;
int b=2;
int c=3;

定义变量要这么定义,这样可读性好

变量作用域

类变量有static,实例变量没有static

局部变量:使用之前必须声明和初始化,它是在方法里面的

实例变量:从属于对象,可以先不用初始化,如果不进行初始化而进行输出的话就会输出它的默认初始值。

类变量 static:是从属于这个类的,和类一起产生一起消失。

常量

常量一旦被设定后,在程序中不可以被改变。

final 常量名=值
final double PI=3.14
常量名一般使用大写
static final 修饰符的顺序没要求

变量命名规范

1.所以变量,方法,类名 要见名知意

2.类成员变量:首字母小写和驼峰原则

3.常量:大写字母和下划线

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

5.方法名:首字母小写和驼峰原则

运算符

long a=1232156545L;
int b=123;
short c=10;
byte d=8;
System.out.printfln(a+b+c+d);(如果里面有一个是Long类型的,那就是Long类型的了)
System.out.printfln(b+c+d);(Int类型)
System.out.printfln(c+d);  (Int 类型)
(如果里面有一个是double那么后面就都会是double
int a=3;
int b=a++;(先赋值,再自增)
int c=++a;(先自增,再赋值)
    结果会是 a=5;
            b=3;
            c=5;

逻辑运算符和位运算符

&&(与运算)两个都为真才是真,但是存在短路运算的情况

int a=5;
boolean c=(a>5)&&(a++<10)
System.out.printfln(a);
结果a还是5,执行第一个判断的时候就返回假了
    

位运算

A=0011 1100
B=0000 1101
A&B:对应位置做与运算
A|B:对应位置做或运算
A^B:对应位置做异或运算,同为0,异为1
System.out.printfln(2<<3);(结果是16);
相当于二进制向左边移动3
//字符串连接符+,String
System.out.println(""+a+b);
System.out.println(a+b+"");
第二中情况才是正常的a+b的数值

三元运算

x?y:z 如果x为真则是y否则是Z

包机制

一般利用公司域名的倒置作为包名;www.baidu.com

包名可以是com.zeng.xxx;