2 Day02--数据类型+运算符

2.1  前言

2.1.1     标识符

  可以简单的理解为一个名字。在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等。我们选择的名称就称为标识符,并且遵循以下规则:

A.     标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符。

B.      不能以数字开头。

C.      标识符是严格区分大小写的。

D.     标识符的命名最好能反映出其作用,做到见名知意。

2.1.2     关键字

在java语言中已经被赋予特定意义的一些单词。一共有53个关键字。其中有两个保留字:const和goto。关键字不能被用作标识符!!

 

2.1.3     注释

Java代码的解释说明。不影响程序的运行,用于辅助读程。

//单行注释

/*    多行注释   */

/**     文档注释     */

2.1.4     变量

在JAVA中,有的数据值是不固定的,总在变,我们还需要记录这些值,我们可以把这些值理解为变量。

我们通过三个元素来描述变量:变量类型,变量名以及变量值。

int age=18;   //声明int类型的变量并赋值

String tel;  //声明String类型的变量

注意:

1、 变量名必须是一个有效的标识符。

2、 变量名不可以使用java关键字

3、 变量名不能重复

2.1.5     常量

在程序运行过程中一致不会改变的量成为常量。

略。。。

2.2  数据类型

2.2.1     基本类型(八种)

2.2.1.1    介绍

位Bit  字节Byte   1Bit=8byte

位Bit  字节Byte   1Bit=8byte

 

类型名称

字节空间

取值范围

整数型

byte

1

-27到27-1   或者   -128到127

short

2

-215到215-1

int

4

-231到231-1

long

8

-263到263-1

浮点型

float

4

单精度,对小数部分的精度要求不高

double

8

双精度,精确的小数部分并操作值很大时

字符

char

2

0到65535

布尔

boolean

1

真true  假false

2.2.1.2    练习1:最大值最小值

package day0102;

 

public class Test1 {

       public static void main(String[] args){

             

              //=====1、整型测试开始

              byte a=-128;

              byte b=127;

             

              short c=Short.MIN_VALUE;

              short d=Short.MAX_VALUE;

             

              int e=Integer.MIN_VALUE;

              int f=Integer.MAX_VALUE;

             

              long g=Long.MIN_VALUE;

              long h=Long.MAX_VALUE;

             

              System.out.println(a);

              System.out.println(b);

              System.out.println(c);

              System.out.println(d);

              System.out.println(e);

              System.out.println(f);

              System.out.println(g);

              System.out.println(h);

              //=====整型测试结束

             

              //=====浮点测试开始

              float i=Float.MIN_VALUE;

              float j=Float.MAX_VALUE;

             

              double k=Double.MIN_VALUE;

              double l=Double.MAX_VALUE;

              System.out.println(i);

              System.out.println(j);

              System.out.println(k);

              System.out.println(l);

              //=====浮点测试结束

             

              //=====字符测试开始

char a='a';

              char b=97;

              char c='b';

              char d=98;

              System.out.println(a);

              System.out.println(b);

              System.out.println(c);

              System.out.println(d);

              //=====字符测试结束

 

       }

}

2.2.1.3    练习2:输入个人信息

王海涛今年20岁,月薪20000,奉劝大家拼命学java,才能早日走向人生巅峰。

package day0201_规则;

 

import java.util.Scanner;

 

public class Test1_个人信息 {

 

       public static void main(String[] args) {

              System.out.println("姓名:");

              String name= new Scanner(System.in).nextLine();

             

              System.out.println("性別:");

              String gender= new Scanner(System.in).nextLine();

             

              System.out.println("年龄:");

              int age= new Scanner(System.in).nextInt();

             

             

              System.out.println("您输入的个人信息是:");

              System.out.println("姓名:"+name);

              System.out.println("性別:"+gender);

              System.out.println("年龄:"+age);

             

       }

      

}

 

2.2.1.4    练习3:圆形面积

圆的面积:π*r*r

圆的周长:2*π*r

package day0104;

 

import java.util.Scanner;

 

public class Test1 {

 

       public static void main(String[] args) {

              System.out.println("请输入圆的半径");

             

              double r=new Scanner(System.in).nextDouble();

             

              System.out.println(3.14*r*r);

             

       }

}

2.2.1.5    练习4:变量交换

接收用户输入的值:假设a=1,b=2将a和b的值做交换。

package day0103;

 

import java.util.Scanner;

 

 

public class Test1 {

 

       public static void main(String[] args) {

              System.out.print("输入整数a:");

              int a=new Scanner(System.in).nextInt();

             

              System.out.print("输入整数b:");

              int b=new Scanner(System.in).nextInt();

             

              int t=a;

              a=b;

              b=t;

              System.out.println(a);

              System.out.println(b);

       }

}

 

2.2.1     引用类型

引用类型是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。如:类,接口,数组,后面讲。。。

2.3  基本类型的字面值(5条)

2.3.1     整数字面值是int类型

int a = 999999999;//错,右侧是int类型,但是超出范围

2.3.2     byte,short,char三种比int小的整数可以用范围内的值直接赋值

byte b=127;//对

byte b=128;//错,右面已经超过byte范围是int类型的数据

2.3.3     浮点数的字面值是double类型

double  a=3.14;//对

float a=3.14;//错,右面是double,float是四字节double是八字节存不下

2.3.4     字面值后缀l f d

L –long   如:long a = 99999999999;//错,超出范围,解决方案加L

F –float   如:float a = 3.14;//错,右面是double类型,解决方案加F

D –double  如:double a=3;//错,右面是int,解决方案加D或者改成3.0

2.3.5     进制前缀

0x   - 16进制

0    -8进制

\u   -char类型,16进制

2.4  基本类型的类型转换

2.4.1     小到大(隐式转换)

Byte a =120;

Int b=a;//直接转

2.4.2     大到小(显式转换)

需要强制类型转换

int xx = 356;

byte y=(bytexx;

注意:小数转成整数,小数直接舍弃

2.5  运算规则(5条)

2.5.1     计算结果的数据类型,与最大类型一致

3/2   得1 ,而不是1.5,结果是int类型

3d/2  得1.5,相当于double/int,结果是double类型

2.5.2     byte,short,char三种比int小的整数,运算时会先自动转换成int

byte a=3;

byte b=4;

byte c=a+b;//错,运行时,byte会先自动转成int再运算,int+int还是int

2.5.3     整数运算溢出

整数运算,类似于一个中标,转到最大时,再转会回到最小。

计算:光速运行一年的长度是多少米

System.out.println(300000000*60*60*24*365);

System.out.println(300000000l*60*60*24*365);

2.5.4     浮点数运算不精确

java提供了解决方案,后面就会讲到。

System.out.println(1-0.8);

System.out.println(4.35*100);

2.5.5     浮点数的特殊值

Infinity 无穷大  3.14/0 

Nan  not a number  0/0.0

2.6  拓展

2.6.1     什么是显示类型转换和隐式类型转换

2.6.2     char 型变量中能不能存储一个中文汉字,为什么?

char 类型可以存储一个中文汉字,因为 Java 中使用的编码是 Unicode(不选择任何特定的编码,直接使用字符在字符集中的编号,这是统一的唯一方法),一个 char 类型占 2 个字节(16 比特),所以放一个中文是没问题的。

package cn.tedu;

public class Test1 {
public static void main(String[] args) {
    System.out.println(3/2);
    System.out.println(3.0/2);
}
}
 

package cn.tedu.basic;

public class Test2 {

    public static void main(String[] args) {
        //byte short char 三种比int小的类型,运算时,先自动转化成int
        
        byte a=1;
        byte b=2;
        byte c=(byte)(a+b);
        
        short s=1;
        short s1=2;
        short s3=(short)(s+s1);
        
        char c1=1;
        char c2=2;
        char c3=(char)(c1+c2);
        
        System.out.println(300000000L*60*60*24*365);
        System.out.println(1-0.8);//不精确0.19999999999999996
        
        //小数运算的特殊值
        System.out.println(1.5/0);//Infinity
        System.out.println(0/0.0);//NaN
    }

}
 

package cn.tedu.basic;
//测试自增
public class Test3_Zizeng {
  public static void main(String[] args) {
    int a=1;
    System.out.println(a++);//先赋值再自增1
    
    int b=1;
    System.out.println(++b);//先自增再赋值2
    System.out.println(++b+a+b++);//8  3+2+3
    
    //自减
    int c=1;
    //先使用再递减
    System.out.println(c--);//1
    
    int d=1;
    //先递减再使用
    System.out.println(--d);//0
    System.out.println(--d-d-d--);//-1-(-1)-(-1)  -1+1+1
}
}
 

package cn.tedu.basic;

import java.util.Scanner;

//测试最大值
public class Test4_Max {
    public static void main(String[] args) {
        System.out.println("请输入a的值");
        int a=new Scanner(System.in).nextInt();
        System.out.println("请输入b的值");
        int b=new Scanner(System.in).nextInt();
        
        int max=a>b?a:b;
        System.out.println("请输入c的值");
        int c=new Scanner(System.in).nextInt();
        max=max>c?max:c;
        System.out.println("最大值是"+max);
        
    }
}
 

package cn.tedu.basic;

import java.util.Scanner;

//测试平年闰年
public class Test5_Rnian {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("请输入年号");
        int year=new Scanner(System.in).nextInt();
        
        String desc="平年";
        
        if((year%4==0&&year%100!=0)||year%400==0) {
            desc="闰年";
        }else {
            desc="平年";
        }
        System.out.println(year+"年是"+desc);
        

    }

}
 

package cn.tedu.ifdemo;

import java.util.Scanner;

//测试if语法
public class Test6_If {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("请输入价格");
        double price=new Scanner(System.in).nextDouble();
        
        double now=price;
        if(price<0) {
            System.out.println("输入有误,请重新输入");
            return;
        }
        else if(price>=5000) {
            now=price*0.5;
        }else if(price>=2000){
            now=price*0.8;
        }else if(price>=1000) {
            now=price*0.9;
        }else {
            System.out.println("不打折");
            
        }
        
        System.out.println("原价是"+price+",折后价是:"+now);
    }

}
 

package cn.tedu.ifdemo;

import java.util.Scanner;

//测试if语法
public class Test7_If2 {

    public static void main(String[] args) {
        System.out.println("请输入成绩");
        int score=new Scanner(System.in).nextInt();
        
        //增强代码健壮性
        if(score>100 || score<0){
            System.out.println("输入有误,请重新输入");
            return;//返回
        }
        
        String desc="优秀";
         if(score>=90) {
            desc="优秀";
            
        }else if(score>=80&&score<90) {
            desc="良好";
            
        }else if(score>=70&&score<80) {
            desc="中等";
            
        }else if(score>=60&&score<70) {
            desc="及格";
            
        }else {
            desc="不及格";
            
        }
        
        System.out.println("您的成绩是:"+score+",属于:"+desc);

    }

}
 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值