JAVA基础知识(关键字-标识符 -注释 -常量,进制和进制转换-变量-数据类型和类型转换) - Go语言中文社区

JAVA基础知识(关键字-标识符 -注释 -常量,进制和进制转换-变量-数据类型和类型转换)


一,关键字

1,关键字的概述

被java语言赋予了特殊含义的单词

2,关键字的特点

组成关键字的字符全部小写
类似notepad++的高级记事本软件,针对关键字都有特殊颜色的标记

二,标识符

1,标识符概述

就是给类,接口,方法,变量,包等起名字的时候使用的字符序列

2,组成规则

  • 英文大小写字母
  • 数字字符
  • $ 和 _

3,注意

  1. 不能以数字开头

  2. 不能是java中关键字

  3. 区分大小写

  4. 要做到见名知意
    举例

 //定义一个学生类
      class Student{
   
   }

4,包

  • 其实就是文件夹,作用是用来把想同的类名进行区分,进行分类存储
  • 给包命名的时候全部小写
  • 分类:
    单级包 momo
    多级包 com.momo
     com
      -momo

5,类或者接口(大驼峰)

  • 一个单词:单词的首字母必须大写
    Student Dog Cat …
  • 多个单词:每个单词的首字母都大写
    HelloWorld MeiNv …

6,方法或者变量(小驼峰)

  • 一个单词:单词小写
    int age  String name  max()  min()
  • 多个单词:从第二个单词开始,每个单词的首字母大写
    int studentAge
    String studentName
    showAll()

7,常量

一个单词:全部大写
PI AGE NAME

多个单词:每个单词的每个字母都大写,每个单词之间用_隔开
MAX_AGE   MIN_AGE  STUDENT_MAX_AGE

class Demo{
	public static void main(String[] args){
		//正确的
		int age = 18;
		//int 2age = 20;//错误的
		int _age2 = 20;
	    // 非法的表达式开始
	    //int public = 55;
	
	    int Public = 66;
	
	    int MAX_AGE = 777;
	    System.out.println(age);
	    }
}

三,注释

1,注释概述

用于程序解释说明的文字

2,java中注释的分类

  • 单行注释
    格式://注释内容
  • 多行注释
    格式:/* 注释内容 */
    注意:不能嵌套使用
  • 文档注释
    格式:/** 注释内容 */

3,作用

  • 解释说明程序
  • 提高程序的阅读性
  • 可以帮助我们简单的调式程序(后面有高级调式)
//这是注释案例演示
class Demo2{
	//这里是主方法
	//是程序的入口
	//被jvm调用
	public static void main(String[] args){
		//我要输出我是大帅哥
		//需要一个输出语句
		System.out.println("我是一个大帅哥");
		System.out.println("我是一个大帅哥");
		System.out.println("我是一个大帅哥");
		//System.out.println("我是一个大帅哥");
		//System.out.println"我是一个大帅哥");
	}
}

4,文档注释

文档注释是java特有的,可以被javadoc命令解释,生成一套网页形式的说明文档(后面讲)。

5,注意

  • 注释是一个有序程序员必须有的良好的习惯
  • 大家以后写代码的时候先写注释再写代码
  • 把自己的思路用注释先整理出来,然后再用代码去体现,代码仅仅是思想的一种具体体现而已。

四,常量

1,常量概述

在程序执行过程中其值不可以发生改变

2,分类

字面值常量

  • ​ 字符串常量:用""括起来的
    ​ “helloworld” “123” “abc”…
  • ​ 整数常量:所有的整数
    ​ 1,111,11111,65464
  • ​ 小数常量:所有的小数
    ​ 1.11 3.14 5.2666
  • ​ 字符常量:用 单引号 括起来的 单个内容
    ​ ‘a’ ‘0’
    'abc’这个是错的
  • ​ 布尔常量:比较特殊 只有true和false
  • ​ 空常量: null
class Demo3{
	public static void main(String[] args){
		//字符串常量的输出
		System.out.println("我是一个大帅哥");
		//整数常量的输出
		System.out.println(123);
		//小数常量的输出
		System.out.println(1.23);
		//字符常量的输出
		System.out.println('a');
		System.out.println('A');
		System.out.println('0');
		//布尔常量的输出
		System.out.println(true);
		System.out.println(false);
	}
}

3,java中针对整数常量提供了4中表现形式

  • 二进制
  • 八进制
  • 十进制
  • 十六进制

4,进制

  • 概述:进制就是进位制,是一种进位方法

  • 对于任何一种进制,x进制,就表示某一位置上的数运算的时候就是逢x进一位,

    二进制逢二进一 八进制逢八进一 十进制逢十进一 十六进制逢十六进一。

5,二进制的由来

  • 任何数据在计算机中都是以二进制的形式存在的
  • 二进制早期是由电信号开关演变而来的
  • 一个整数在内容中也是二进制,但是使用一串1或者0组成的数值进行使用的话很麻烦
    在这里插入图片描述

6,不同进制的数据组成

  • 二进制:由1和0组成 以0b开头
  • 八进制:由0,1,2…7 以0开头
  • 十进制:0,1,2,3.。。。9 整数默认是十进制
  • 十六进制:由0,1,2…9,abcdef组成,以0x开头
//不同进制的数据组成
class Demo4{
	public static void main(String[] args){
		System.out.println(100);//默认十进制
		System.out.println(0b100);//二进制
		System.out.println(0100);//八进制
		System.out.println(0x100);//十六进制
	}
}

7,进制的转换

  • 其他进制到十进制: 系数*基数的权次幂相加
    在这里插入图片描述

    -练习:计算下面数据的十进制
    0b101:82+80=65

  • 十进制到其他进制
    十进制到其他进制

    -练习:获取下面数据的二进制,八进制,十六进制
    55
    88

  • 十进制和二进制的快速转换
    8421码可以实现十进制和二进制之间的快速转换,是大陆的叫法,是BCD码中最常用的一种。
    在8421码中每一位上的1都有一个固定的数值。
    把每一位上的1所表示的十进制数值加起来,就能够得到最终的十进制结果
    1  1  1  1 1 1  1 1
    128 64 32 16 8 4 2 1

  • 二进制和八进制,十六进制可以使用十进制作为桥梁 先拆分,在组合
    -任意的x进制到y进制的转换,怎么转?
    x进制----------十进制
    十进制---------y进制

8,有符号的数据的表示

在计算中,有符号的数据有3中表示方法:原码,反码,补码
所有的数据在运算的时候都是采用补码进行运算的

  • 原码:就是数据的二进制表示,最高位是符号位,0表示正 1表示负,其余都是数值位

  • 反码:正数的反码和原码一样,负数的反码是对原码逐个取反(0变1,1变0)但是符号位除外

  • 补码:正数的补码和原码一样,负数的补码是在反码的基础上加1
    在这里插入图片描述

    练习:假设某数据x的原码是 1011 0100 求x的补码和反码

​ 反码: 1100 1011

​ 补码: 1100 1100

​ 练习:假设某数据x的补码是 1011 0100 求x的原码

​ 反码: 1011 0011

​ 原码: 1100 1100

五,变量

1,变量概述

在程序执行过程中其值可以在某个范围发生改变的量

2,组成规则

  • 必须对其进行限定,使用数据类型
  • 我们在运算的时候,不可能拿些这个空间去运算,真正要用的是这个空间中的值,我们就给空间起一个名字----- 变量名
  • 类型有了,名字有了,但是如果这个空间里面没有值,就没有意义,它就是一个垃圾空间,需要给它一个初始化值

3,变量的定义格式

  • 数据类型 变量名 = 初始化值 格式是固定的
  • 从本质上讲,变量其实是内存中的一个小区域,使用变量名来访问这个区域。所以每一个变量使用先必须先申请(声明)然后赋值,才能使用。
  • 为什么要定义变量?
    用来不断存放同一类型的常量,并且可以重复使用。

六,数据类型

1,java语言是强类型语言

对于每一种数据都定义了明确的具体的数据类型
在内存中分配了不同大小的空间

2,数据类型分类

基本数据类型 4类8种

数值型

整数类型 占用的字节  取值范围
​byte    1     -128到127
​short    2     -215到215-1
​int     4     -231到231
​long    8      -263到263 -1
​浮点类型
​float    4
double   8

字符型

​ char 2

布尔型

​ boolean 1

  • 整数默认是int类型 浮点型默认是double类型
  • 长整型后面要使用L或者l标记 建议用L
  • 单精度浮点数据要用F或者f来标记 建议用F
class Demo5{
	public static void main(String[] args){
		//定义一个变量   数据类型 变量名  = 初始值
		//定义一个字节类型
		byte b = 11;
		System.out.println(b);
		System.out.println(11);
		b = 22;
		System.out.println(b);
        //定义一个短整型类型
        short s = 111;
        System.out.println(s);

        //定义一个整型类型
        int i = 1111;
        System.out.println(i);
        //错误: 过大的整数
        //i = 1111111122222;
        System.out.println(i);

        //定义一个长整型类型
        //long l = 11111;
        //long l = 1111111122222;// 过大的整数
        long l = 1111111122222L;
        System.out.println(l);

        //定义浮点数据
        // 错误: 不兼容的类型: 从double转换到float可能会有损失
        float f = 12.13F;
        System.out.println(f);

        double d = 12.13;
        System.out.println(d);

        //字符型变量
        char ch = 'a';
        System.out.println(ch);

        //布尔类型
        boolean boo = true;
        System.out.println(boo);
    }
}

-引用数据类型

​ 类    class
​ 接口   interface
​ 数组   []

3,变量的注意事项

  • 作用域
    变量定义在哪一级的大括号中,这个括号的范围就是这个变量的作用域
  • 相同的范围内不能出现同名的变量
  • 初始值
    没有初始值的变量不能使用
    只要在使用之前给值就行,不一定要在定义的时候就给它
  • 建议一行上面之定义一个变量
    可以定义多个,但是不建议
class Demo6{
	public static void main(String[] args){
		//定义一个变量
		int x = 100;
		x = 111;
		//int x = 111;错误: 已在方法 main(String[])中定义了变量 x
		System.out.println(x);
		{
			System.out.println(x);
        int i;
            //使用之前那给值就行
            i = 55;
            // 错误: 可能尚未初始化变量i
            System.out.println(i);
        }
        //错误: 找不到符号
        //System.out.println(i);
        //一行上可以定义多个,但是不建议
        //int a = 5;int b = 6;int c = 7;
        int a = 5;
        int b = 6;
        int c = 7;

        //int ii;int jj;
        //int ii,int jj;错误的
    }
}
/*
+是一个运算符,可以做加法运算

一般来说我们在运算的时候,要求参与运算的数据类型必须一致。
不一致也可以,但是会有类型的转换过程
注意:boolean类型不能转换成其他类型

默认转换(从小到大的转换)
	byte,short,char------int----long----float---double
	byte,short,char他们之间不转换,他们参与运算的时候都会先转成int类型
*/
class Demo7{
	public static void main(String[] args){
		//直接输出2个常量做加法运算
		System.out.println(5+6);
		
        //2个int类型
        int x = 5;
        int y = 6;
        int z = x+y;
        System.out.println(x+y);
        System.out.println(z);

        //一个byte,一个int
        byte b = 6;
        int i = 6;
        System.out.println(b+i);//12
        // 错误: 不兼容的类型: 从int转换到byte可能会有损失
        //byte c = b+i;
        int c = b+i;
        System.out.println(c);

        byte bb = 5;
        short ss = 3;
        // 不兼容的类型: 从int转换到short可能会有损失
        //short sss = bb+ss;
        int sss = bb+ss;
        System.out.println(sss);
        System.out.println(bb+ss);
    }
}

4,类型转换

  • boolean类型不能转换成其他类型

  • 默认转换(从小到大的转换)
    byte,short,char------int----long----float—double
    byte,short,char他们之间不转换,他们参与运算的时候都会先转成int类型

  • 强制转换(从大到小的转换)
    目标类型 变量名 = (目标类型)(要被转换的数据)

  • 注意:不要随便使用强制转换,因为它有可能会损失精度

class Demo8{
	public static void main(String[] args){
		byte a = 3;
		int b = 4;
		
        //int c = a+b;//肯定没有问题
        //System.out.println(c);

        byte aa = 7;
        //byte cc = a+b;//这个有问题
        //可以使用强制类型转换
        byte cc = (byte)(a+b);
        System.out.println(cc);
    }
}
  • 大家看下面这个有没有问题
    double d = 12.345;
    float f = d;

  • 大家看下面的有没有区别
    float f1 = (float)12.345;
    float f2 = 12.345F;

class Demo9{
	public static void main(String[] args){
		//double d = 12.345;
		//float f = (float)d;
        float f1 = (float)12.345;
        float f2 = 12.345F;
        //f1是通过double类型强转而来
        //f2本身就是一个float类型
    }
}
/*
  byte b1 = 3,b2 = 4,b;
  b = b1+b2;
  b = 3+4;
  问,那句会编译失败?为什么?
   b = b1+b2;这个有问题,
   这个是变量相加,先看类型,最后结果赋值的时候也要考虑类型
   常量相加,先做加法运算,然后看结果是否在赋值的类型范围内,在就不错,不在才报错。
*/
class Demo9{
	public static void main(String[] args){
		//定义了3个byte类型的变量  b1,b2,b1  b1的值是3,b2的值是4,b没有值
		byte b1 = 3,b2 = 4,b;
		//b = b1+b2;错误: 不兼容的类型: 从int转换到byte可能会有损失
		//b = 3+4;//先加计算结果  7  看在不在byte范围内  在  不报错
		//byte bb = 3+4;//7   byte bb = 7;
	System.out.println(b);
	}
}
/*
问:byte b = 130;有没有问题?如果有怎么可以让它不报错?结果是多少?为什么?
分析:
	要知道结果为什么是-126 ,我们需要知道它是如何计算的
	前面我们说过数据都是采用补码进行运算的,要获取补码先要获取原码
	原码简单说就是数据的二进制表示
	130的二进制:00000000 00000000 00000000 10000010
	因为是正数,所以这即使原码也是反码也是补码
	

然后我们进行了强制转换(byte占用一个字节)所以进行截取、
		符号位    数值位
 补码   1         0000010    符号位是1表示是负数
 反码   1         0000001
 原码	  1         1111110           -  64+32+16+8+4+2=  -126
*/
class Demo10{
	public static void main(String[] args){
		//byte 的范围是-128到127  130超范围了,所以报错
		//byte b = 130;// 错误: 不兼容的类型: 从int转换到byte可能会有损失
		//使用强制类型转换
		byte b = (byte)130;
		System.out.println(b);//-126
	}
}
  • 练习:byte b = 330;

  • 字符参与运算(ASCII表)

/*
 通过这个简单的演示,字符可以和整数相加,结果是一个整数
 为社么呢?因为每个字符其实都有一个对应的数值
 这个值在  ASCII表中
	简单看过这个表之后我们需要记住3个即可
	'a'   97
	'A'   65
	'0'   48


*/
class Demo12{
	public static void main(String[] args){
		//输出一个字符
		System.out.println('a');//a
		//输出一个字符和一个整数相加
		System.out.println('a'+1);//98
	}
}
  • ***字符串参与运算
/*
字符串数据和其他数据做+,结果是一个字符串
这里的+就不在是+运算,而是字符串连接符
*/
class Demo11{
	public static void main(String[] args){
		//输出一个字符串
		/*
		System.out.println("aaa");
		System.out.println("aaa"+111);
		System.out.println(111+"aaa");
		System.out.println(11+"aaa"+11);
		System.out.println(11+22+"aaa"+111);//33aaa111
		System.out.println("aaa"+true);
		*/
		System.out.println("hello"+'a'+1);//helloa1
		System.out.println('a'+1+"hello");//98hello
	
        System.out.println("6+6="+6+6);//6+6=66
        System.out.println(6+6+"=6+6");//12=6+6
        int a = 5;
        int b = 6;
        System.out.println("a="+a);
        System.out.println("b="+b);
        System.out.println("a="+a+",b="+b);

        }
}
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_39497997/article/details/108568787
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢