Java基础-Day02

进制

  • 是一种进位的方式,x进制,表示逢x进1
  • 计算机的电子原件的状态;开 关 那么,我们表达数据的时候,也是按照开 关的状态来表示的
  • 如果我们表达数据仅仅用这两种状态,那么能够表达的数据是比较少的,而我们常见的数据,英文字面,数字,标点符号。这就很多了,两种状态是不够的。为了能够表示更多的数据,国际化标准组织就规定:用8个这样的信号来表示一个数据,这个数据的单位叫:字节
  • 后来,我们就通过数字1,0分别来表示开和关。

变量

  • 变量概述:在程序执行过程中,在某个范围内其值可以发生改变的量
  • 理解:如同数学中的未知数
  • 格式:数据类型 变量名 = 初始化值
  • 注意:格式是固定的,记住格式,以不变应万变

数据类型

  • Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间
 1 package com.itheima.demo01;
 2 /*
 3  * 数据类型:Java是一种强类型的数据语言,针对每一种数据都定义了明确的数据类型
 4  * 
 5  * 数据类型分类
 6  *     基本数据类型
 7  *     引用数据类型(类 接口 数组)
 8  * 
 9  * 基本数据类型:4类8种
10  *     整数:byte1 short2 int4 long8
11  *     浮点:float 4 double8
12  *     字符:char 2
13  *     布尔:boolean1
14  * 
15  * 注意:
16  *     整数默认是int
17  *     浮点默认是double类型
18  * 
19  *     长整型后缀必须加L或者l
20  *     单精度浮点数用F或者f标记,建议使用F
21  *     
22  */
23 public class DateTypeDemo {
24     public static void main(String[] args) {
25         //定义变量的格式
26         //数据类型 变量名 = 初始化值;
27         
28         //定义一个字节类型
29         byte b = 10;
30         System.out.println(10);
31         System.out.println(b);
32         
33         //定义一个短整型变量
34         short s = 100;
35         System.out.println(s);
36         
37         //定义一个整型变量
38         int i = 1000;
39         System.out.println(i);
40         
41         //超过了int的范围
42         //int j = 10000000000000;
43         long j = 100000000000L;
44         //long j = 100L;
45         System.out.println(j);
46         
47         //定义浮点型数据变量
48         float f = 12.345F;
49         System.out.println(f);
50         
51         double d = 12.345;
52         System.out.println(d);
53         
54     }
55 }

使用变量注意事项:

  • 作用域 变量定义在那一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。
  • 初始化值 没有初始化值不能直接使用
  • 在一行上建议只定义一个变量,可以定义多个,但是不建议
 1 package com.itheima.demo01;
 2 /*
 3 
 4  */
 5 public class DateTypeDemo2 {
 6     public static void main(String[] args) {
 7         //定义变量的格式
 8         int x = 100;
 9         //错误:不能有同名
10         //int x = 200;
11         
12         //定义变量必须给值
13         //int y;
14         //System.out.println(y);
15     }
16 }
  • +号是一个运算符,我们应该能够看懂,做数据的加法。
  • boolean类型不能转换为其他的数据类型
  • 默认转换 byte,short,char-int-long-float-double
  • byte,short,char相互之间不转换,他们参与运算首先转换为int类型
  • 强制转换 目标类型 变量名 = (目标类型)(被转换的数据); 
  •  1 package com.itheima.demo01;
     2 /*
     3  * +是一个运算符,做加法运算的
     4  * 
     5  * 一般来说,我们在运算的时候,要求参与运算的数据类型必须一致。
     6  */
     7 public class DateTypeDemo3 {
     8     public static void main(String[] args) {
     9         //直接输出的方式做加法
    10         System.out.println(3 + 4);
    11         
    12         int x = 3;
    13         int y = 4;
    14         int z = x + y;
    15         System.out.println(z);
    16         
    17         //定义一个byte类型,一个int类型,做加法 可以正常运行
    18         byte a = 3;
    19         int b = 4;
    20         System.out.println(a + b); 
    21         
    22         //可能损失精度
    23         //byte c = a+b;
    24         int c = a+b;
    25         System.out.println(c);
    26     }
    27 }

     1 package com.itheima.demo01;
     2 /*
     3  * 强制转换 从大的数据类型转换成小的数据类型
     4  */
     5 public class DateTypeDemo4 {
     6     public static void main(String[] args) {
     7         byte a = 3;
     8         int b = 4;
     9         
    10         //用强制类型转换
    11         byte c = (byte)(a+b);
    12         System.out.println(c);
    13     }
    14 }

    两个思考题:

     1 package com.itheima.demo01;
     2 /*
     3  * 思考1:
     4  *     double d = 12.345;
     5  *     float f = d;
     6  * 
     7  * 思考2:看看下面两个定义有没有区别
     8  *     float f1 = (float)12.345;
     9  *     float f2 = 12.345f;
    10  * 
    11  *     f1其实是通过一个double类型转换过来的
    12  *     f2本身就是一个float类型
    13  */
    14 public class DateTypeDemo5 {
    15     public static void main(String[] args) {
    16         //把double赋值给float,加了强制类型转换
    17         double d = 12.345;
    18         float f = (float)d;
    19         
    20         //思考2
    21         float f1 = (float)12.345;
    22         float f2 = 12.345f;
    23     }
    24 }

    面试题:

  •  1 package com.itheima.demo01;
     2 /*
     3  * 面试题:
     4  *     byte b1 = 3,b2=4,b;
     5  *     b=b1+b2;
     6  *     b=3+4;
     7  * 那一句话会编译失败?为什么?
     8  *     b=b1 + b2有问题,因为变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。
     9  *                     常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错。
    10  */
    11 public class DateTypeDemo6 {
    12     public static void main(String[] args) {
    13         byte b1 = 3,b2 = 4,b;
    14         //b=b1+b2; 类型提升
    15         b=3+4;//常量:先把结果计算出来,查看是否在范围内。
    16 
    17     }
    18 }

    数据类型题目

  •  1 package com.itheima.demo01;
     2 /*
     3  * 看程序写结果
     4  * 0 48
     5  * a 97
     6  * A 65
     7  */
     8 public class DateTypeDemo8 {
     9     public static void main(String[] args) {
    10         //直接输出一个字符
    11         System.out.println('a');//a
    12         //输出一个字符和一个整数做加法
    13         System.out.println('a'+1);//98
    14         
    15         //字符串数据和其他数据做+,结果是字符串类型。这里的+不是+。而是字符串连接符
    16         System.out.println("hello"+'a'+1);//helloa1
    17         System.out.println('a'+1+"hello");//98hello
    18         
    19         
    20         System.out.println("5+5="+5+5);//5+5=55
    21         System.out.println(5+5+"=5+5");//10=5+5
    22     }
    23 }

猜你喜欢

转载自www.cnblogs.com/hellopaidaxing/p/10361502.html