栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

CGB2105-Day02笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CGB2105-Day02笔记

1JAVA语法基础 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 注释

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

  1. 单行注释: 注释单行内容.
    1) 单行注释 // 可以注释单行内容

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

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

1.3.1 注释练习
public class HelloWord
{
    // 单行注释
    

    

    // 程序入口函数
    public static void main(String[] args)
    {
        System.out.println("HelloWord!");
    }
2 变量

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

注意:

  1. 变量名必须是一个有效的标识符
  2. 变量名不可以使用java关键字
  3. 变量名不能重复
2.1 数据类型 2.1.1 基本类型介绍(八种)

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

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

2.1.2 案例练习

输出个人基本信息 姓名 年龄 月薪

public class TestInfo
{
    public static void main(String[] args)
    {
        System.out.println("欢迎来到JAVA世界");

        // 需求:XXX今天多少岁,XX月薪
        
        String name = "贞子";
        int age = 22;
        double money = 25000.0;
        
        System.out.println(name + "今年" + age + "岁" + "月薪" + money + "," + "并且高声呼喊道JAVA是世界上最好的语言");
    }
}
2.1.3 案例练习查看基本类型的最大值与最小值
public class TestTypeScope
{
    public static void main(String[] args)
    {
        // 整形 byte short int long
        byte byteMax = Byte.MAX_VALUE; // 最大值为:127
        byte byteMin = Byte.MIN_VALUE; // 最小值为:-128
        System.out.println("byte的最大值为:" +byteMax + "n" + "最小值为:" + byteMin);

        short shortMax = Short.MAX_VALUE; // 最大值为:32767
        short shortMin = Short.MIN_VALUE; // 最小值为:-32768
        System.out.println("short的最大值为:" +shortMax + "n" + "最小值为:" + shortMin);

        int intMax = Integer.MAX_VALUE; // 最大值为:2147483647
        int intMin = Integer.MIN_VALUE;// 最小值为:-2147483648
        System.out.println("int的最大值为:" +intMax + "n" + "最小值为:" + intMin);

        long longMax = Long.MAX_VALUE; // 最大值为:9223372036854775807
        long longMin = Long.MIN_VALUE; // 最小值为:-9223372036854775808
        System.out.println("long的最大值为:" +longMax + "n" + "最小值为:" + longMin);

        // 浮点型 double float
        float floatMax = Float.MAX_VALUE; // 最大值为:3.4028235E38
        float floatMin = Float.MIN_VALUE; // 最小值为:1.4E-45
        System.out.println("float的最大值为:" +floatMax + "n" + "最小值为:" + floatMin);

        double doubleMax = Double.MAX_VALUE; // 最大值为:1.7976931348623157E308
        double doubleMin = Double.MIN_VALUE;// 最小值为:4.9E-324
        System.out.println("double的最大值为:" +doubleMax + "n" + "最小值为:" + doubleMin);

		
		boolean b1 = true;
		boolean b2 = false;
		
		
		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);
    }
}
3 变量交换

小转大 直接转–隐式转
大转小 强制转–显示转
注意:如果大类型存储的值超出小类型的范围,数据会出错
浮变整 小数没

3.1 变量交换案例练习
public class TestValueExchange
{
    public static void main(String[] args) {
        System.out.println("请输入一个整数:");
        int a = new Scanner(System.in).nextInt();
        System.out.println("请输入第二个整数:");
        int b = new Scanner(System.in).nextInt();

        int t; // 定义第三个变量
        t = a;
        a = b;
        b = t;
        System.out.println("交换后a的值为:" + a);
        System.out.println("交换后b的值为:" + b);
    }
}
4 引用类型

除了基本类型以外的所有类型都是引用类型
目前我们只遇到了String字符串类型,需要用双引号包裹
引用类型是一个对象类型,值是什么呢?
它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。

4.1 基本类型的字面值 4.1.1 整数类型的字面值类型是int类型

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

int x = 99999;
//byte y = 300;//错,300是int类型,byte存不下
//int z = 999999999999;//错,虽然是int类型,但是超出范围
long h = 999999999999L;//如果要定义long类型需要加后缀L
4.1.2 浮点数类型的字面值类型是double类型

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

	double d = 3.14;
	//float f = 3.14;//错,3.14认为自己是double类型
	float f = 3.14F;//如果要定义float类型需要加后缀F
	double d2 = 3D;//如果要定义的小数是整数,最好加D方便阅读
4.1.3 byte,short,char三种比int小的整数可以用范围内的值直接赋值
byte b1=127;//对,
byte b2=128;//错,超出byte的范围
char c1=97;//对,对应的是码表中的'a'
char c2 =69999;//错,超出char的范围
4.1.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类型
4.1.5 进制前缀
  1. 二进制:由数字0和1 组成的数字序列。在JDK 7以后,允许使用二进制字面值来表示整数,此时二进制数值前面要以0b或0B开头,目的是为了和十进制进行区分,如:0b01101100、0B10110101。
  2. 八进制:以0开头,并且其后由0 ~7范围(包括0和7)内的整数组成的数字序列,如:0342。
  3. 十六进制:以0x或者0X开头,并且其后由09、AF(包括0和9、A和F)组成的字符序列,如:0x25AF。
	//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
5 基本类型的类型转换

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

5.1 小到大(隐式转换)
  • 自动类型转换:
    自动类型转换也叫隐式类型转换,指的是两种数据类型在转换的过程中不需要显式地进行声明。当把一个类型取值范围小的数值 直接赋给另一个取值范围大的数据类型变量时,系统就会进行自动类型转换。
byte m = 120;
int n = m;//小转大,右面的m是小类型,给左面的n大类型赋值,可以直接使用
float f = 3.2f; double d = f; -->可以执行
5.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类型进行类型转换。
6 运算规则

1)运算结果的数据类型与最大数据类型保持一致
2)byte short char 运算时会自动提升成int再参与计算
3)整数运算溢出–要避免
4)浮点数运算不精确问题
5)浮点型数据的特殊值Inifinity NaN

6.1 计算结果的数据类型,与最大数据类型一致
System.out.println(3/2);//1,int/int,得到的结果类型还是int
System.out.println(3/2d);//1.5,int/double。得到的结果是double
6.2 byte,short,char三种比int小的整数,运算时会先自动转换成int

byte a = 1;
byte b = 2;
byte c = (byte)(a+b);
//a+b会自动提升成int类型,右面得运算结果就是int大类型
//给左面的byte小类型赋值,不可以,需要强转。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351649.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号