两种:
•引用数据类型(面向对象中常用)
•基本数据类型(8种)
1.有8种。字节型,短整型,整型,长整型,单精度,双精度,布尔型,字符型。
都存储在栈中,栈的特点,存储空间小,存取速度快。
2.所占字节数说明:
计算机中用二进制表示两种状态,1与0称为“位” (bit) 计算机中8位处理经常出现,因此新定义一个东西,叫“字节”。
由于java程序运行在jvm虚拟机上,因此java所占字节数与在多少位数的电脑上无关。
而c语言等一些其他语言就不同了,所占字节数与平台相关,也有相应的编译器相关。
1字节=8位
1短整型=2字节(16位),
1整型=4字节(32位)
1长整型=8字节(64位)
1单精度型=4字节
1双精度类型=8字节
1布尔型至少占1字节。在内存中是1字节存储,但在java程序编译之后都转化位int类型,也就是4字节。但是bool型的数组,被java虚拟机jvm编译成1字节,就是每个bool元素占1字节。
最需要知道的:java程序主要子啊java虚拟机中运行,因此跟虚拟机的处理相关,不同的虚拟机处理有时候又不一样。
3.表示范围:
表示范围从小到大排序:
byte—short–*int ----*long–float—double
由于存储结构的不同,long虽然占8字节,float占4字节但是float表示的数更大。
三类:
1.类
2.接口
3.数组
都存储在堆区中,特点:空间大,存取速度相对于栈比较慢。
类:
面向对象中常有的,就是自己定义的一些类型。比如自己定义一个类叫做Person,
Person中有很多属性,有身高,姓名,性别,爱好,班级,学号,学习成绩等。
把这些属性都抽象放在一起,形成Person类。这个Person类就是一种新的数据类型。
目录:
语法:
if (条件判断式子){
执行语句;
}esle if(条件判断式){
执行语句;
}else if(条件判断式子){
执行语句;
}
class HelloWorld{
public static void main(String[] args){
int score=500;
if (score>=1000) {
System.out.println("a");
}else if(score>700){ /* 条件相当于score<1000&&score>700 */
System.out.println("b");
}else if (score>60){ /*条件相当于score<=700 &&score>60*/
System.out.println("c");
}else{
System.out.println("d");
}
}
}
class HelloWorld{
public static void main(String[] args){
int grade="2";
switch(grade){
case "2":
System.out.println("✳");break;
case "3":
System.out.println("✳✳");break;
case "4":
System.out.println("✳✳✳");break;
default:
System.out.println("no");break;}
}
}
/*符合哪种情况,就执行语句,之后break退出switch,否则会一直穿透运行下去。*/
break作用就是退出switch, 否则会穿透运行,往下一直运行。
swith灵活运用:
class Switch{
public static void main(String[] args){
int year=2012;
int month=2;
int day=30;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day=31;break;
case 2:
if(year%400==0||(year%4==0&&year%100!=0)){
day=29;break;//闰年
}else{
day=28; break;}//平年
case 4:
case 6:
case 9:
case 11:
day=30;break;}
System.out.println("date:"+year+"年"+month+"月"+day+"日"); /*利用穿透运行,省去了break,以及每一种情况都给day=31赋值;*/
}
}
/*循环打印1--100的数字*/
class While{
public static void main(String[] args) {
int i = 0;
while (i <= 100) {
System.out.println("打印" + i);
i += 1;
}
}
}
/*打印100--1000之内所有的各位和百位一样的数字 如191 202*/
class do_While {
public static void main(String [] args){
int i=100;
do{
//个位
int g = i%10;
//百位
int b =i/100;
if (g==b)
System.out.println("打印数字"+i);
i+=1;
}while(i<=1000);
/*do while是先执行 循环体,再判断。*/
/*print 99乘法表*/
class MultiTable{
public static void main(String[] args){
//行循环
for (int i=1;i<=9;i++){
//列循环,注意k
for (int k=1;k<=i;k++)
System.out.print(i+"*"+k+"="+(i*k)+"\t");
System.out.println(" ");
}
}
}
class Continues{
public static void main(String [] args){
for(int i=1;i<=5;i++){
if(i==3){
System.out.println("星期"+i+"请假");
continue;//终止本次循环,但后面的循环继续。
}
System.out.println("星期"+i+"上班");
}
}
}
class Continues{
public static void main(String [] args){
for(int i=1;i<=5;i++){
if(i==3){
System.out.println("星期"+i+"请假");
break;//终止循环,i==3的时候退出循环
}
System.out.println("星期"+i+"上班");
}
}
}