class Day02
{
/*
2017/9/5
第二章:数据类型:
1.引用类型、基本(8);
引用类型:数组、类、interface
基本:
①整数:byte8 short16 int32(默认类型) long64(字母数字后面加L)
②浮点型:float 4(使用时其后要加f) ,double 8(默认类型)3.14e5
/*
三个特殊的浮点数值:用于表示溢出和出错
正无穷大:浮点数的正数/0=正无穷大 用double或float类POSITIVE_INFINITY表示
负无穷大:浮点数的负数/0=负无穷大 用double或float类NEGATIVE_INFINITY表示
非数: 0.0/0.0;或对一个负数开方 用double或float类NaN表示
只能是浮点数/0,int型会异常报错
*/
③boolean:值只能为TURE/FLASE,其他类型的值也不能和boolean值转化,1bit即可,但以8bit形式存储
④字符类型:char/String(引用类型) (’a’ ‘\t’ ‘\u????’unicode编码 十六进制四位数\u0041)
2.lang包自动加载 【String赋值方式】
3.java中无全局变量(此处为成员变量),所有内容必须定义在class中。方法内必须定义局部变量的值。
成员变量和类变量自动初始化(数字型初值为0/对象型初值为NULL)
class A{
int a = 0;//属性,成员变量
public void method(){
int b = 1;//局部变量
}
}
4.基本数据类型的转换(容量大小放水)
自动类型转换:低存储向高;
强制类型转换:高向低(cast造型)
int x=0;
float y=1.2;
x=(int)y;
引用类型之间不可以转换!
A类 = (A类)B类;
编译可以通过(语法规范满足)但运行不能通过
子类 = (子类)父类;
父类 = 子类;(父大于子)//子类为低存储位,多态 ***
5.存储位的高低:
byte short char int long(无小数点) float double
6.两种不同类型运算:
CPU只能执行相同类型的计算
低级别提升位高级别的来参加运算
byte short char 自动提升为int
7.【*】基本类型的类封装:(java特有)
Wrapper
产生原因:
定义:8对象是基本类型,不是纯面向对象语言,所以对8种基本类型进行封装。
装箱:基本数据类型分装 integer q = new integer(p); //自动装箱 integer b =100 ;
拆箱:相反 int p = q.intVlaue() //自动拆箱 int a = new integer(100);
使用:
8.字符集:所有字符编号的组成总和
字符值可以采用16进制的编码方式进行表示,\u000-\uFFFF 一共65536个字符,前256个(\u0000-\u00FF)字符和ASCLL码字符完全重合。char 16位无符号整数,范围0-65535
9.基本类型之间的相互转化:(表达式的自动类型提升)
Stirng"TURE"不会直接转化为boolean型
但boolean型可以+“”转化为Stirng类型
String a = true+"";//a="ture"
其他七种类型和+“”连接都会转化为字符串类型
*结果总与表达式最高级的符号相同,整数相除取整舍弃小数点
10. +不仅可以作为+法运算符 还可以作为字符串连接符
/* package test;
public class Test {
//private static boolean ture;
public static void main(String args[])
{
String a = 1.0+"";
String b = true+"";
System.out.println('我'+""+1);
System.out.println(a+"---"+b);
System.out.println(""+1+2);
System.out.println(1+2+"");
}
我1 //字符串+1=字符串【!】
1.0---true
12
3
}*/
11.生成随机验证字符:
/*
package test;
public class Test {
/网页上生成随机6位验证码/
public static void main(String args[])
{
//循环6次产生的数存储在String中
//定义一个空字符串
String result = "";
for(int i=0;i<6;i++)
{
//生成一个范围在97-122之间的int类型整数
int inval = (int)(Math.random()*26+97);//数学取随机数范围
//将inval强制转换为字符型
result = result +(char)inval;
}
System.out.println(result);
}
}
*/
*/
public static void main(String[] args)
{
/*
错误示例:
byte b1 = 0x12;//未超过一个字节所以可以编译通过
byte b2 = 0x123;//int不能转换为byte
int a1 = 0x123456789;//越界
int a1 = 0x123456789l;//类型为long
char a = ox41;//A
byte b = 5;
b = b-2;//错误 应该强制转换 b = (int)b-2;
short c1 = 1;
short c2 = 2;
short c3 = c1 + c2;//错误 需要强制转换 同上
*/
int y = 123_456;
System.out.println("Hello World!"+y);
}
}