自掘Java----②java基础定义

一 Java基础语法

class HelloWorld {
    public static void main(String[] args) {
        System.out.println("HelloWorld");
    }
}

1.1 关键字(keyword)

  1. 定义:关键字是Java语言中预先规定的具有固定功能和意义的单词。如:public static void class
  2. 特点:小写字母
  3. 一共50个,其中constgoto保留字(reserved word),truefalsenull是字面量。
  4. 官方查询:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
    在这里插入图片描述
    在这里插入图片描述

1.2 标识符( identifier)

Java中为变量方法等要素命名时使用的字符序列,称为标识符

  1. 规则:
    • 标识符由字母、数字、_$组成的任意字符序列
    • 数字不能用于开头
    • 汉字可以作为标识符
    • 区分大小写
    • 长度无限制
    • 标识符不能使用关键字*
  2. 规范:
    • 包名:多单词组成时所有字母都小写:java.langcom.atguigu.bean
    • 类名接口名:多单词组成时,所有单词的首字母大写:HelloWorldStringSystem
    • 变量名方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:agename
    • 常量名:所有字母都大写。多单词时每个单词用下划线连接:MAX_VALUEPI

更多细节详见《代码整洁之道_关于标识符.txt》《阿里巴巴Java开发手册-1.7.1-黄山版》

1.3 注释

1.3.1 注释的分类

用来解释说明的内容,分为单行注释多行注释文档注释

  • 单行注释:ctrl+/
//注释的内容         
ctrl+/
  • 多行注释:ctrl + shift + /
/*注释的内容*/      ctrl+shift+/
  • 文档注释:
/**注释的内容*/
  • 取消注释
    取消单行注释:ctrl+/
    取消多行注释:光标放到注释处 ctrl + shift + /

1.3.2 注释的作用

  1. 用来解释说明,增强了程序的可读性和可维护性;
  2. 可以帮助我们查找错误;

1.3.3 注释的注意事项

单行注释可以嵌套;多行注释不可以嵌套

原因是多行注释遇到*/结束,再次出现就报错,
同理,多行注释中可嵌套单行注释

1.3.4 文档注释打开方式

文档注释内容可以被 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档

javadoc HelloWorld.java

在这里插入图片描述
index.html文件就是文档注释

1.4 变量的声明和初始化

  • 变量(Variable)是计算机程序运行过程中其值可以发生改变的量。它通常用于存放程序运行时输入、处理和输出过程中所涉及的各种数据。
  • 变量由数据类型变量名(Variable Name)两部分来表示。
  • 数据类型决定了该变量的数据存储结构、取值范围及可进行的操作(运算);
//先声明,后初始化
char gender;
gender = '女';

//声明同时初始化
char genderr = '女';

二 数据类型

Java 中数据类型可分为基本数据类型引用数据类型

在这里插入图片描述

2.1 基本数据类型的分类

基本数据类型: 整型、浮点型、字符型、布尔型
在这里插入图片描述

基本数据类型
序号数据类型长度(字节)取值范围举例说明所属
1byte1个字节-128~127(默认:0)byte b = 10;整型
2short2个字节-32768~32767(默认:0)short s = 10;
3int4个字节-2147483648~2147483647(默认:0)int i = 10;
4long8个字节-2^63 - 2^63-1(默认:0)long l = 10(l/L);
5float4个字节1.401298e-45~3.402823e+38(默认:0.0)float f = 10.0f; float f = 10.0F;浮点型
6double8个字节4.9000000e-324~1.797693e+308(默认:0.0)double d = 10.0(D/d);
7char2个字节0 - 2^16-1(默认:空)char c = 'c';字符型
8boolean1个字节true / false(默认:false)boolean b = true;布尔型

2.1.1 整型

  1. 赋值:当我们给long类型变量赋值的时候,建议在后面加上L或者l
    不加的话,当数较大时会报错,这是因为整数默认int类型

2.1.2 浮点型

  1. 赋值:float常量要么后面有F/f,要么可以写成整数形式(输出仍为浮点型)
    赋值double时后缀可加可不加,这是因为小数默认为double类型
  2. 浮点数的精度:浮点数不能精确的表示0.1、0.01、0.001等10的负次幂,如果需要精确数字计算或保留指定位数的精度,需要使用BigDecimal

在这里插入图片描述

2.1.3 字符型

Java中的所有字符都使用Unicode编码,故一个字符(占2字节)可以存储一个字母、一个汉字其他书面语的一个字符。

  1. 四种赋值形式:
    • 使用单引号括起来单个字符:char c1 = 'a';
    • 直接使用 Unicode值来表示字符型常量:'\uXXXX',XXXX代表一个十六进制整数:\u0023 表示 #
    • 转义字符\来将其后的字符转变为特殊字符型常量:char c3 = '\n';'\n'表示换行符
    • 用ASCII码赋值:char c4 = 96;,参与运算时,char的值即为ASCII码
转义字符说明Unicode表示方式
\t制表符\u0009
\"双引号\u0022
\'单引号\u0027
\\反斜线\u005c
\b退格符\u0008
\r回车符\u000d

2.1.4 布尔型

boolean 类型用来判断逻辑条件,一般用于流程控制语句中,只有两个值:truefalse,不可以使用0或非0的整数替代

boolean值在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false用0表示

2.2 引用数据类型

引用数据类型包括数组(array)、 类(class)、接口(interface)、枚举(enum)、注解(annotation)、记录(record)

2.2.1 String 类(class)

  1. 赋值:使用双引号来表示一个字符串,内部可以包含0、1个或多个字符:String str = “”
  2. 运算:任意八种基本数据类型(包括boolean)与String类型只能进行连接“+”运算,且结果一定也是String类型
  3. String类型不能通过强制类型转换转为其他的类型,只能使用Integer.parseInt
String str = "123";
int num = (int)str;//错误的
int num = Integer.parseInt(str);

2.3 数据类型的转换

2.3.1 隐式类型转换

隐式类型转换就是指存储范围小的数据类型会自动提升为存储范围大的数据类型

即:当多个数据类型参与运算的时候,存储范围小的数据类型会自动提升为存储范围大的数据类型

  • boolean类型不能和其他数据类型相互转换
  • 字节长不等于存储范围大,float(4字节)储存范围大于long(8字节)
  • 特别的:byteshortchar各自和互相的运算都会转为int

2.3.2 强制类型转换

强制类型转换是指大的数据类型被强制转换成小的数据类型

//小的数据类型 小的数据类型的变量名 = (小的数据类型)大的数据类型的变量名;
int i = 130;
byte b = (byte)i;

注意:我们能不使用强制转换,尽量不要使用,因为会出现意想不到的结果,譬如浮点数截断、整型溢出

在Java中,针对byte类型和short类型的时候,当程序不确定是否超范围时,均报错,而C正常运行
即:当定义只要byte类型和short类型的时候,右边有一个是变量,就会编译报错

byte b1 = 1;
byte b2 = 2;
byte b3 = b1 + b2;
System.out.println(b3);//编译报错

2.4 不同进制的表示方式

在十六进制中 10 -> A、11 -> B、12 -> C……15 -> F

  • 十进制(decimal)

    • 数字组成:0-9
    • 进位规则:满十进一
  • 二进制(binary)

    • 数字组成:0-1
    • 进位规则:满二进一,以0b0B开头
  • 八进制(octal):很少使用

    • 数字组成:0-7
    • 进位规则:满八进一,以数字0开头表示
  • 十六进制

    • 数字组成:0-9,a-f
    • 进位规则:满十六进一,以0x0X开头表示。此处的 a-f 不区分大小写
进制表示方式例子
二进制(binary)0b 前缀0b1001
十进制(decimal)无前缀456
八进制(octonary)0 前缀0456
十六进制(hexadecimal )0x 前缀0x45f

2.5 计算机数据的存储

参照本人另一篇文章大一C语言挣扎之路2(数据类型、常量、变量、存储形式)

  • 计算机数据的存储使用二进制补码形式存储,并且最高位是符号位

    • 正数:最高位是0
    • 负数:最高位是1
  • 规 定

    • 正数的补码与反码、原码一样,称为三码合一
    • 负数的补码与反码、原码不一样:
      • 负数的原码:把十进制转为二进制,然后最高位设置为1
      • 负数的反码:在原码的基础上,最高位不变,其余位取反(0变1,1变0)
      • 负数的补码:反码+1

二进制转十进制:权相加法

  • 例如:byte类型(1个字节,8位)

    25 ==> 原码 0001 1001 ==> 反码 0001 1001 -->补码 0001 1001

    -25 ==>原码 1001 1001 ==> 反码1110 0110 ==>补码 1110 0111

整数:
正数:25   00000000 00000000 000000000 00011001(原码)
正数:25   00000000 00000000 000000000 00011001(反码)
正数:25   00000000 00000000 000000000 00011001(补码)

负数:-25  10000000 00000000 000000000 00011001(原码)
负数:-25  11111111 11111111 111111111 11100110(反码)
负数:-25  11111111 11111111 111111111 11100111(补码)

三 常量 (待修改)

常量是永恒不变的量。分为字面值常量自定义常量

3.1 字面值常量

3.1.1 整数常量

例如:1,2,12

System.out.println(1);

3.1.2 小数常量

例如:3.14,1.2

System.out.println(1.2);

3.1.3 字符常量

例如:‘a’, ‘b’, ‘1’, ‘#’, ‘在’, ’ ’ 都是字符常量
而’abc’, ‘’ 不是字符常量

注意:
①字符常量是必须用单引号括起来的
②引号里面有且只能有一个字符,不能没有字符

System.out.println('b');
System.out.println(' ');
System.out.println('abc');        //程序报错
System.out.println('');          //程序报错

3.1.4 字符串常量

例如:“a”, “ab”, “123”, “abc123”, “”

注意:
①字符串常量是必须用双引号括起来的
②双引号里面可以有一个数据,可以有多个数据,可以没有数据

System.out.println("雁丘");
System.out.println("a");
System.out.println("ab");
System.out.println("123");
System.out.println("123");
System.out.println("");

3.1.5 布尔常量

只有2个值:truefalse

System.out.println(true);
System.out.println(false);

3.1.6 空常量

只有一个值:null
空常量不能用System.out.println语句输出

System.out.println(null);   //报错

3.2 自定义常量(待补充)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值