第4讲 JAVA基础01 关键字 标识符 注释 变量 基本类型 类型转换

1 JAVA语法基础

1.1 标识符

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

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

2. 不能以数字开头。如:123name 就是不合法

3. 标识符严格区分大小写。如: tmooc 和 tMooc 是两个不同的标识符

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

5. 标识符不能是Java的关键字

1.2 关键字

在Java中,有一些单词被赋予了特定的意义,一共有50个关键字。
这50个单词都是全小写,其中有两个保留字:const和goto。
注意,关键字不能被用作标识符!

需要注意的是,除了上述的50个关键字以外,true,false,null也不可以被用作标识符~

1.3.1 注释

几乎所有编程语言都允许程序员在代码中输入注释
因为编译器会忽略注释,所以注释并不会影响程序的运行结果。
注释的真正作用是: 它可以向任何阅读代码的人描述或者解释程序的实现思路,如何使用以及其它任何相关信息, 提高代码的可读性,方便后期的维护与复用。
Java的注释有3种:

1. 单行注释: 注释单行内容.

格式: 每行都以”//”开头.
快捷方式: Ctrl+/ 添加注释,同样的快捷键,再按一次取消注释

2. 多行注释:注释多行内容,虽然叫多行注释,也可注释单行内容.

格式: 以” /* ”开头, 以” * / ”结束.
快捷方式: 可以输入” /* ”之后按回车添加注释

3. 文档注释: 一般用来注释类和方法,通过注释内容来记录类或者方法的信息.

格式: 以” /** ”开头。 以” * / ”结尾
快捷方式: 输入 “ /** ” 之后按回车添加注释

1.3.2 练习:

创建包: cn.tedu.basic
创建类: CommentDemo.java

package cn.tedu.basic;

/**本类用于练习注释*/

public class CommentDemo {

        //我是一个单行注释

       

        /*

         * 我

         * 是

         * 一

         * 个

         * 多行注释

         */

       

        /**

         * 我是一个文档注释/DOC注释

         * 我也可以注释多行内容

         * 除此之外,我还可以添加一些作者/时间/版本...的信息

         */

        public static void main(String[] args) {

               System.out.println("我就是想测试下注释会不会执行~");

        }

}

1.4 变量

在JAVA中,我们需要记录一些数据
但这些数据的值是不固定的,总在变,我们可以把这些数据理解为变量。
我们通过三个元素来描述变量:变量类型 变量名以及变量值。
定义变量的两种格式:
格式一:声明变量时并且赋值:int age = 18;
格式二:先声明变量:String tel ; 然后给变量赋值:tel = 119;

注意:

  1. 变量名必须是一个有效的标识符
  2. 变量名不可以使用java关键字
  3. 变量名不能重复

1.5 常量

在程序运行过程中,值一直不会改变的量成为常量。(后续会进一步学习,略…)

2 数据类型

2.1 基本类型介绍(八种)

变量要保存值,这个值是存在内存中的,所以就需要向内存申请存储空间
java是一个强类型的语言
为了方便内存管理系统根据变量类型更加合理的分配内存空间
会把我们常见的数据,分成不同类型
不同类型分配的内存大小是不同的,这个大小的单位就是字节Byte

拓展:常用的转换关系:
位 bit,来自英文bit,音译为“比特”,表示二进制位。
1 Byte = 8 Bits (1字节 = 8位)
1 KB = 1024 Bytes 1 MB = 1024 KB 1 GB = 1024 MB

2.2 练习: 输入个人信息

创建包: cn.tedu.basic
创建类: TestInfo.java
需求: 在控制台打印: java架构师今年20岁,月薪100000.99,感慨java是世界上最好的语言

package cn.tedu.basic;

/**本类用于完成个人信息输出案例*/

public class TestInfo {

        //1.添加程序的入口函数main()

        public static void main(String[] args) {

               /**1.定义变量的规则:变量的类型  变量名  变量的值*/

               /**2.String是字符串类型,用来保存多个字符*/

               //2.定义变量

               String name = "泡泡";//定义一个String变量用来保存姓名"江江"

               int age = 16;//定义一个age变量用来保存年龄16

               double salary = 100000.66;//定义一个变量salary用来保存工资

               //3.我们可以通过打印语句查看变量的值

               System.out.println(name);

               System.out.println("java架构师"+name+",今年"+age+"岁,月薪"+salary+",感慨Java是世界上最好的语言!");

        }

}

2.3 练习:查看基本类型的最大值与最小值

创建包: cn.tedu.basic
创建类: TestTypeScope.java

package cn.tedu.basic;

/**本类用于测试基本类型*/

public class TestTypeScope {

        //1.创建程序的入口函数

        public static void main(String[] args) {

               /**1.整形类型:byte short int long*/

               /**2.Java给8大基本类型都提供了类型对应的“工具箱”*/

               /**3.int类型的工具箱比较特殊,叫做:Integer*/

               //2.定义对应类型的变量:格式:类型 名字 = 值 ;

               byte byteMin = Byte.MIN_VALUE;

               byte byteMax = Byte.MAX_VALUE;

               System.out.println("byte类型的最小值为:" + byteMin);

               System.out.println("byte类型的最大值为:" + byteMax);

              

               short shortMin = Short.MIN_VALUE;

               short shortMax = Short.MAX_VALUE;

               System.out.println("short类型的最小值为:" + shortMin);

               System.out.println("short类型的最大值为:" + shortMax);

              

               int intMin = Integer.MIN_VALUE;

               int intMax = Integer.MAX_VALUE;

               System.out.println("int类型的最小值为:" + intMin);

               System.out.println("int类型的最大值为:" + intMax);

              

               long longMin = Long.MIN_VALUE;

               long longMax = Long.MAX_VALUE;

               System.out.println("long类型的最小值为:" + longMin);

               System.out.println("long类型的最大值为:" + longMax);

              

               /**4.浮点类型 :float double*/

               float floatMin = Float.MIN_VALUE;

               float floatMax = Float.MAX_VALUE;

               System.out.println("float类型的最小值为:" + floatMin);

               System.out.println("float类型的最大值为:" + floatMax);

              

               double doubleMin = Double.MIN_VALUE;

               double doubleMax = Double.MAX_VALUE;

               System.out.println("double类型的最小值为:"+ doubleMin);

               System.out.println("double类型的最大值为:"+ doubleMax);

              

               /**5.boolean布尔类型只有两个值true与false

                * 虽然true和false不是关键字,但是也不可以用作标识符*/

               boolean b1 = true;

               boolean b2 = false;

              

               /**6.测试char 字符类型

                * 字符型的数据需要使用单引号 ' ' 来包裹

                * char类型可以存数字,但是会从ASCII码表查出这个数字对应的字符来打印

                * 128~65535这些数字,也可以保存,但是eclispe一般显示为?*/

               char c1 = 'a';//字符型可以保存一个字母

               char c2 = '中';//字符型还可以保存一个汉字

               char c3 = '7';//字符型可以保存一个字符7

               char c4 = 97;//字符型可以保存数字,但是会查ASCII,打印的是字符a

               char c5 = 55;//字符型可以保存数字,但是会查ASCII,打印的是字符7

               char c6 = 199;

               System.out.println(c1);

               System.out.println(c2);

               System.out.println(c3);

               System.out.println(c4);

               System.out.println(c5);

               System.out.println(c6);

              

        }

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67

2.4 练习:求圆形的面积

需求:求出指定半径圆的面积
公式:圆的面积:π * r * r
创建包: cn.tedu.basic
创建类: TestCircleArea.java

package cn.tedu.basic;

import java.util.Scanner;

/**本类用于求圆形的面积*/

public class TestCircleArea {

        //1.创建程序的入口函数main()

        public static void main(String[] args) {

               /**等号右边的值赋值给等号左边的变量来保存*/

               //1.提示用户输入圆的半径:

               System.out.println("请您输入要求的半径值:");

              

               /**变量的第二种定义方式:先定义,再赋值*/

               //2.1定义一个变量用来保存圆的半径

               //double r = 5.5;

               double r ;

               //2.2接收用户在键盘上输入的数据,并把这个数据交给r保存

               //开启扫描(发出一个系统指令,准备接收控制台输入的数据)

               //nextDouble()控制用户只能输入double类型的数据,否则报错

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

              

               //根据半径值求出圆的面积

               double circleArea = 3.14 * r * r;

               //打印计算的结果

               System.out.println("圆的面积是:"+circleArea);

        }

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

2.5 练习:变量交换


需求: 接收用户输入的两个值:假设a=1,b=2,并将这两个变量的值进行互换
创建包: cn.tedu.basic
创建类: TestValueExchage.java

package cn.tedu.basic;

import java.util.Scanner;

/**本类用于练习值交换案例*/

public class TestValueExchange {

        //1.创建程序的入口函数main

        public static void main(String[] args) {

               //2.提示并接受用户在控制台输入的两个整数

               System.out.println("请输入要交换的第一个整数:");

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

               System.out.println("请输入要交换的第二个整数:");

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

               System.out.println("a的值:"+a);

               System.out.println("b的值:"+b);

              

               //3.交换 a b 这两个变量保存的值

               int t;//定义一个变量用来辅助值交换

               t = a;//把a的值交给t来保存

               a = b;//把b的值交给a来保存

               b = t;//把t的值交给b来保存

              

               System.out.println("交换后,a的值:"+a);

               System.out.println("交换后,b的值:"+b);

              

        }

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

2.6 引用类型

除了基本类型以外的所有类型都是引用类型
目前我们只遇到了String字符串类型,需要用双引号包裹
引用类型是一个对象类型,值是什么呢?
它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。如:类,接口,数组,后面讲。。。
(后续会进一步学习,略…)

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

3.1 整数类型的字面值类型是int类型

也就是说,我们只要写一个整数,就被认为是int类型

int x = 99999;

//byte y = 300;//错,300是int类型,byte存不下

//int z = 999999999999;//错,虽然是int类型,但是超出范围

long h = 999999999999L;//如果要定义long类型需要加后缀L

  • 1
  • 2
  • 3
  • 4

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

也就是说,我们只要写一个小数,就被认为是double类型

        double d = 3.14;

        //float f = 3.14;//错,3.14认为自己是double类型

        float f = 3.14F;//如果要定义float类型需要加后缀F

        double d2 = 3D;//如果要定义的小数是整数,最好加D方便阅读

  • 1
  • 2
  • 3
  • 4

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

byte b1=127;//对,

byte b2=128;//错,超出byte的范围

char c1=97;//对,对应的是码表中的'a'

char c2 =69999;//错,超出char的范围

  • 1
  • 2
  • 3
  • 4

3.4 字面值后缀L D F

long x =99999999999L;//字面值是int类型,需转成long类型的数据,加字面值后缀L即可

float b = 3.0F;//3.0字面值是double类型,加后缀F会变成float类型

double d = 3D;//3字面值是int类型,加后缀D,会变成double类型

  • 1
  • 2
  • 3

3.5 进制前缀

0b - 标识这是2进制 ,如:0b0101

0 - 标识这是8进制, 8进制是三位,如: 023

0x - 标识这是16进制,如: 0x0001

               //10进制,底数为10:10^2 10^1 10^0 =100+0+0=100

               System.out.println(100);//默认10进制,打印100

               //2进制,底数为2:2^2 2^1 2^0 =4+0+0=4

               System.out.println(0b100);//2进制,打印4

               //8进制,底数为8:8^2 8^1 8^0 =64+0+0=64

               System.out.println(0100);//8进制,打印64

               //16进制,底数为16:16^2 16^1 16^0 =256+0+0=256

               System.out.println(0x100);//16进制,打印256

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

4 基本类型的类型转换

箭头开始的地方是小类型,箭头指向的地方是大类型
我们此处所指的"大"和"小",指的是对应类型的取值范围,不是字节数哦

4.1 小到大(隐式转换)

byte m = 120;

int n = m;//小转大,右面的m是小类型,给左面的n大类型赋值,可以直接使用

float f = 3.2f; double d = f; -->可以执行

4.2 大到小(显式转换)

容量大的类型转换为容量小的类型时必须使用强制类型转换。

int x = 999;

byte y =(byte)x;//大转小,右面x给左面的y小类型赋值,不可以,需要强制类型转换

  1. 转换过程中可能导致溢出或损失精度
    例如:int i =128; byte b = (byte)i; //打印的结果是-128
    因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。
  2. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
    例如:float f = 32.7f; int a2 =(int) f; //打印的结果是32
  3. 不能对boolean类型进行类型转换。

4.3 口诀:

小到大,直接转 大到小,强制转 浮变整,小数没

低 ------------------------------------> 高

byte,short,char→ int→ long→float→double

5 运算规则(5条)

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

System.out.println(3/2);//1,int/int,得到的结果类型还是int

System.out.println(3/2d);//1.5,int/double。得到的结果是double

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

byte a = 1;

byte b = 2;

byte c = (byte)(a+b);

//a+b会自动提升成int类型,右面得运算结果就是int大类型

//给左面的byte小类型赋值,不可以,需要强转。

5.3 整数运算溢出

整数运算,类似于一个钟表,转到最大时,再转会回到最小。
计算:光速运行一年的长度是多少米?3亿m/s

//溢出的现象:

//因为做了大的整型数据的运算,会超出int取值范围。解决方法:把整数提升成long类型。

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

5.4 浮点数运算不精确

1-0.8 (这是一个现象,后续会学习解决方案)

5.5 浮点数的特殊值

Infinity 无穷大 3.14/0

NaN not a number 0/0.0 或 0.0/0

6 拓展 标识符命名风格

1.【强制】标识符命名均不能以数字开头,而且下划线或美元符号开始,也不能以下划线或美元符号结束
错误案例:1name / _ name / name_ / $ name / name $
2.【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。
注意,即使纯拼音命名方式也要避免采用。
正确案例:alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。
错误案例:DaZheModule [打折模块] / getPingfenByName() [评分]
3.【强制】类名使用 UpperCamelCase 风格,即第一个单词的首字母就要大写

1 JAVA语法基础

1.1 标识符

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

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

2. 不能以数字开头。如:123name 就是不合法

3. 标识符严格区分大小写。如: tmooc 和 tMooc 是两个不同的标识符

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

5. 标识符不能是Java的关键字

1.2 关键字

在Java中,有一些单词被赋予了特定的意义,一共有50个关键字。
这50个单词都是全小写,其中有两个保留字:const和goto。
注意,关键字不能被用作标识符!

需要注意的是,除了上述的50个关键字以外,true,false,null也不可以被用作标识符~

1.3.1 注释

几乎所有编程语言都允许程序员在代码中输入注释
因为编译器会忽略注释,所以注释并不会影响程序的运行结果。
注释的真正作用是: 它可以向任何阅读代码的人描述或者解释程序的实现思路,如何使用以及其它任何相关信息, 提高代码的可读性,方便后期的维护与复用。
Java的注释有3种:

1. 单行注释: 注释单行内容.

格式: 每行都以”//”开头.
快捷方式: Ctrl+/ 添加注释,同样的快捷键,再按一次取消注释

2. 多行注释:注释多行内容,虽然叫多行注释,也可注释单行内容.

格式: 以” /* ”开头, 以” * / ”结束.
快捷方式: 可以输入” /* ”之后按回车添加注释

3. 文档注释: 一般用来注释类和方法,通过注释内容来记录类或者方法的信息.

格式: 以” /** ”开头。 以” * / ”结尾
快捷方式: 输入 “ /** ” 之后按回车添加注释

1.3.2 练习:

创建包: cn.tedu.basic
创建类: CommentDemo.java

package cn.tedu.basic;

/**本类用于练习注释*/

public class CommentDemo {

        //我是一个单行注释

       

        /*

         * 我

         * 是

         * 一

         * 个

         * 多行注释

         */

       

        /**

         * 我是一个文档注释/DOC注释

         * 我也可以注释多行内容

         * 除此之外,我还可以添加一些作者/时间/版本...的信息

         */

        public static void main(String[] args) {

               System.out.println("我就是想测试下注释会不会执行~");

        }

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

1.4 变量

在JAVA中,我们需要记录一些数据
但这些数据的值是不固定的,总在变,我们可以把这些数据理解为变量。
我们通过三个元素来描述变量:变量类型 变量名以及变量值。
定义变量的两种格式:
格式一:声明变量时并且赋值:int age = 18;
格式二:先声明变量:String tel ; 然后给变量赋值:tel = 119;

注意:

  1. 变量名必须是一个有效的标识符
  2. 变量名不可以使用java关键字
  3. 变量名不能重复

1.5 常量

在程序运行过程中,值一直不会改变的量成为常量。(后续会进一步学习,略…)

2 数据类型

2.1 基本类型介绍(八种)

变量要保存值,这个值是存在内存中的,所以就需要向内存申请存储空间
java是一个强类型的语言
为了方便内存管理系统根据变量类型更加合理的分配内存空间
会把我们常见的数据,分成不同类型
不同类型分配的内存大小是不同的,这个大小的单位就是字节Byte

拓展:常用的转换关系:
位 bit,来自英文bit,音译为“比特”,表示二进制位。
1 Byte = 8 Bits (1字节 = 8位)
1 KB = 1024 Bytes 1 MB = 1024 KB 1 GB = 1024 MB

2.2 练习: 输入个人信息

创建包: cn.tedu.basic
创建类: TestInfo.java
需求: 在控制台打印: java架构师今年20岁,月薪100000.99,感慨java是世界上最好的语言

package cn.tedu.basic;

/**本类用于完成个人信息输出案例*/

public class TestInfo {

        //1.添加程序的入口函数main()

        public static void main(String[] args) {

               /**1.定义变量的规则:变量的类型  变量名  变量的值*/

               /**2.String是字符串类型,用来保存多个字符*/

               //2.定义变量

               String name = "泡泡";//定义一个String变量用来保存姓名"江江"

               int age = 16;//定义一个age变量用来保存年龄16

               double salary = 100000.66;//定义一个变量salary用来保存工资

               //3.我们可以通过打印语句查看变量的值

               System.out.println(name);

               System.out.println("java架构师"+name+",今年"+age+"岁,月薪"+salary+",感慨Java是世界上最好的语言!");

        }

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

2.3 练习:查看基本类型的最大值与最小值

创建包: cn.tedu.basic
创建类: TestTypeScope.java

package cn.tedu.basic;

/**本类用于测试基本类型*/

public class TestTypeScope {

        //1.创建程序的入口函数

        public static void main(String[] args) {

               /**1.整形类型:byte short int long*/

               /**2.Java给8大基本类型都提供了类型对应的“工具箱”*/

               /**3.int类型的工具箱比较特殊,叫做:Integer*/

               //2.定义对应类型的变量:格式:类型 名字 = 值 ;

               byte byteMin = Byte.MIN_VALUE;

               byte byteMax = Byte.MAX_VALUE;

               System.out.println("byte类型的最小值为:" + byteMin);

               System.out.println("byte类型的最大值为:" + byteMax);

              

               short shortMin = Short.MIN_VALUE;

               short shortMax = Short.MAX_VALUE;

               System.out.println("short类型的最小值为:" + shortMin);

               System.out.println("short类型的最大值为:" + shortMax);

              

               int intMin = Integer.MIN_VALUE;

               int intMax = Integer.MAX_VALUE;

               System.out.println("int类型的最小值为:" + intMin);

               System.out.println("int类型的最大值为:" + intMax);

              

               long longMin = Long.MIN_VALUE;

               long longMax = Long.MAX_VALUE;

               System.out.println("long类型的最小值为:" + longMin);

               System.out.println("long类型的最大值为:" + longMax);

              

               /**4.浮点类型 :float double*/

               float floatMin = Float.MIN_VALUE;

               float floatMax = Float.MAX_VALUE;

               System.out.println("float类型的最小值为:" + floatMin);

               System.out.println("float类型的最大值为:" + floatMax);

              

               double doubleMin = Double.MIN_VALUE;

               double doubleMax = Double.MAX_VALUE;

               System.out.println("double类型的最小值为:"+ doubleMin);

               System.out.println("double类型的最大值为:"+ doubleMax);

              

               /**5.boolean布尔类型只有两个值true与false

                * 虽然true和false不是关键字,但是也不可以用作标识符*/

               boolean b1 = true;

               boolean b2 = false;

              

               /**6.测试char 字符类型

                * 字符型的数据需要使用单引号 ' ' 来包裹

                * char类型可以存数字,但是会从ASCII码表查出这个数字对应的字符来打印

                * 128~65535这些数字,也可以保存,但是eclispe一般显示为?*/

               char c1 = 'a';//字符型可以保存一个字母

               char c2 = '中';//字符型还可以保存一个汉字

               char c3 = '7';//字符型可以保存一个字符7

               char c4 = 97;//字符型可以保存数字,但是会查ASCII,打印的是字符a

               char c5 = 55;//字符型可以保存数字,但是会查ASCII,打印的是字符7

               char c6 = 199;

               System.out.println(c1);

               System.out.println(c2);

               System.out.println(c3);

               System.out.println(c4);

               System.out.println(c5);

               System.out.println(c6);

              

        }

}

2.4 练习:求圆形的面积

需求:求出指定半径圆的面积
公式:圆的面积:π * r * r
创建包: cn.tedu.basic
创建类: TestCircleArea.java

package cn.tedu.basic;

import java.util.Scanner;

/**本类用于求圆形的面积*/

public class TestCircleArea {

        //1.创建程序的入口函数main()

        public static void main(String[] args) {

               /**等号右边的值赋值给等号左边的变量来保存*/

               //1.提示用户输入圆的半径:

               System.out.println("请您输入要求的半径值:");

              

               /**变量的第二种定义方式:先定义,再赋值*/

               //2.1定义一个变量用来保存圆的半径

               //double r = 5.5;

               double r ;

               //2.2接收用户在键盘上输入的数据,并把这个数据交给r保存

               //开启扫描(发出一个系统指令,准备接收控制台输入的数据)

               //nextDouble()控制用户只能输入double类型的数据,否则报错

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

              

               //根据半径值求出圆的面积

               double circleArea = 3.14 * r * r;

               //打印计算的结果

               System.out.println("圆的面积是:"+circleArea);

        }

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

2.5 练习:变量交换


需求: 接收用户输入的两个值:假设a=1,b=2,并将这两个变量的值进行互换
创建包: cn.tedu.basic
创建类: TestValueExchage.java

package cn.tedu.basic;

import java.util.Scanner;

/**本类用于练习值交换案例*/

public class TestValueExchange {

        //1.创建程序的入口函数main

        public static void main(String[] args) {

               //2.提示并接受用户在控制台输入的两个整数

               System.out.println("请输入要交换的第一个整数:");

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

               System.out.println("请输入要交换的第二个整数:");

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

               System.out.println("a的值:"+a);

               System.out.println("b的值:"+b);

              

               //3.交换 a b 这两个变量保存的值

               int t;//定义一个变量用来辅助值交换

               t = a;//把a的值交给t来保存

               a = b;//把b的值交给a来保存

               b = t;//把t的值交给b来保存

              

               System.out.println("交换后,a的值:"+a);

               System.out.println("交换后,b的值:"+b);

              

        }

}

2.6 引用类型

除了基本类型以外的所有类型都是引用类型
目前我们只遇到了String字符串类型,需要用双引号包裹
引用类型是一个对象类型,值是什么呢?
它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。如:类,接口,数组,后面讲。。。
(后续会进一步学习,略…)

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

3.1 整数类型的字面值类型是int类型

也就是说,我们只要写一个整数,就被认为是int类型

int x = 99999;

//byte y = 300;//错,300是int类型,byte存不下

//int z = 999999999999;//错,虽然是int类型,但是超出范围

long h = 999999999999L;//如果要定义long类型需要加后缀L

  • 1
  • 2
  • 3
  • 4

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

也就是说,我们只要写一个小数,就被认为是double类型

        double d = 3.14;

        //float f = 3.14;//错,3.14认为自己是double类型

        float f = 3.14F;//如果要定义float类型需要加后缀F

        double d2 = 3D;//如果要定义的小数是整数,最好加D方便阅读

  • 1
  • 2
  • 3
  • 4

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

byte b1=127;//对,

byte b2=128;//错,超出byte的范围

char c1=97;//对,对应的是码表中的'a'

char c2 =69999;//错,超出char的范围

  • 1
  • 2
  • 3
  • 4

3.4 字面值后缀L D F

long x =99999999999L;//字面值是int类型,需转成long类型的数据,加字面值后缀L即可

float b = 3.0F;//3.0字面值是double类型,加后缀F会变成float类型

double d = 3D;//3字面值是int类型,加后缀D,会变成double类型

  • 1
  • 2
  • 3

3.5 进制前缀

0b - 标识这是2进制 ,如:0b0101

0 - 标识这是8进制, 8进制是三位,如: 023

0x - 标识这是16进制,如: 0x0001

               //10进制,底数为10:10^2 10^1 10^0 =100+0+0=100

               System.out.println(100);//默认10进制,打印100

               //2进制,底数为2:2^2 2^1 2^0 =4+0+0=4

               System.out.println(0b100);//2进制,打印4

               //8进制,底数为8:8^2 8^1 8^0 =64+0+0=64

               System.out.println(0100);//8进制,打印64

               //16进制,底数为16:16^2 16^1 16^0 =256+0+0=256

               System.out.println(0x100);//16进制,打印256

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

4 基本类型的类型转换

箭头开始的地方是小类型,箭头指向的地方是大类型
我们此处所指的"大"和"小",指的是对应类型的取值范围,不是字节数哦

4.1 小到大(隐式转换)

byte m = 120;

int n = m;//小转大,右面的m是小类型,给左面的n大类型赋值,可以直接使用

float f = 3.2f; double d = f; -->可以执行

4.2 大到小(显式转换)

容量大的类型转换为容量小的类型时必须使用强制类型转换。

int x = 999;

byte y =(byte)x;//大转小,右面x给左面的y小类型赋值,不可以,需要强制类型转换

  1. 转换过程中可能导致溢出或损失精度
    例如:int i =128; byte b = (byte)i; //打印的结果是-128
    因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。
  2. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
    例如:float f = 32.7f; int a2 =(int) f; //打印的结果是32
  3. 不能对boolean类型进行类型转换。

4.3 口诀:

小到大,直接转 大到小,强制转 浮变整,小数没

低 ------------------------------------> 高

byte,short,char→ int→ long→float→double

5 运算规则(5条)

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

System.out.println(3/2);//1,int/int,得到的结果类型还是int

System.out.println(3/2d);//1.5,int/double。得到的结果是double

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

byte a = 1;

byte b = 2;

byte c = (byte)(a+b);

//a+b会自动提升成int类型,右面得运算结果就是int大类型

//给左面的byte小类型赋值,不可以,需要强转。

5.3 整数运算溢出

整数运算,类似于一个钟表,转到最大时,再转会回到最小。
计算:光速运行一年的长度是多少米?3亿m/s

//溢出的现象:

//因为做了大的整型数据的运算,会超出int取值范围。解决方法:把整数提升成long类型。

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

5.4 浮点数运算不精确

1-0.8 (这是一个现象,后续会学习解决方案)

5.5 浮点数的特殊值

Infinity 无穷大 3.14/0

NaN not a number 0/0.0 或 0.0/0

6 拓展 标识符命名风格

1.【强制】标识符命名均不能以数字开头,而且下划线或美元符号开始,也不能以下划线或美元符号结束
错误案例:1name / _ name / name_ / $ name / name $
2.【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。
注意,即使纯拼音命名方式也要避免采用。
正确案例:alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。
错误案例:DaZheModule [打折模块] / getPingfenByName() [评分]
3.【强制】类名使用 UpperCamelCase 风格,即第一个单词的首字母就要大写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值