第一章 - Java基本语法

系列文章目录

Java基础篇之jdk、jre环境变量的配置
第六章 - Java集合
第七章 - Java网络编程



一、标识符

标识符定义:

​ 对程序中的各个元素命名时使用的记号称为标识符(identifier)(凡是自己可以起名字的地方都叫标识符,比如:类名、变量名、方法名、接口名、包名…)。

标识符的命名规则(需严格遵守、否则编译不通过):

1.由26个英文字母大小写,0-9,或$组成。

2.数字不可开头。

3.不可以使用关键字和保留字,但能包含关键字和保留字。

4.Java中严格区分大小写,长度无限制。

5.标识符不能包含空格。

Java中的名称命名规范:

包名:多单词组成时所有字母都小写:xxxyyyzzz。

类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz。

变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz。

常量名:所有字母大写。多个单词时每个单词用下划线连接:XXX_YYY_ZZZ。

命名时尽量做到见名知意。

二、变量

java定义变量的格式:

数据类型 变量名 = 变量值; 如:

int myAge = 20;
说明:

1.变量需要先声明,后使用。

2.变量都定义在其作用域内。在作用域内,它是有效的。

3.同一个作用域内,不可以声明两个同名的变量。

三、Java定义的数据类型

(一)、变量按照数据类型来分
基本数据类型:

​ 整数:byte(1字节) \ short(2字节) \ int(4字节) \ long(8字节)

​ 浮点型 : float (4字节)\ double(8字节)

​ 字符型 : char(1字符=2字节)

​ 布尔型 : boolean

​ 1.byte范围:-128~127

byte b1 = 12byte b2 = -128

​ 2.声明long类型变量,必须以"l"或者 "L"结尾

`long l1 = 34324234324L`

​ 3.浮点型,表示带小数点的值

​ 4.float表示的数值范围比long还大

​ 5.定义float类型变量时,变量要以"f"或者"F"结尾

​ 6.通常定义浮点型用double型(范围大,精度高)

​ 7.定义char类型变量,通常使用一对’',内部只能写一个字符;

​ 表示方式:

​ 7.1声明一个字符

​ 7.2转义字符

​ 7.3直接使用Unicode值来表示字符型常量

char c1 = 'a';char c2 = '\n';char c3 = '\u0043';

​ 8.布尔型:boolean,只能取两个值之一:true \ false,常在条件判断、循环结构中使用

引用数据类型:

​ 类(class)

​ 接口(interface)

​ 数组(array)

(二)、变量在类中声明的位置来分

​ 成员变量

​ 局部变量

(三)、基本数据类型之间的运算规则

​ 前提:这里讨论只是7种基本数据类型变量间的运算。不包含boolean类型的

​ 1.自动类型提升:

​ 当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。byte \ char \ short --> int --> long --> float --> double

​ 特别的:当byte、char、short做运算时结果为int型

​ 2.强制类型转换:自动类型提升运算的逆运算

​ 2.1需要使用强转符:()

​ 2.2注意点:强制类型转换,可能会导致精度损失

​ //精度损失举例1:

double d1 = 12.9;
int i1 = (int)d1;//结果:12 截断操作

​ //没有精度损失

long l1 = 123;short s2 = (short)l1;

​ //精度损失举例2

int i2 = 128;byte b = (byte)i2;//结果:-128
(四)、变量运算规则的两个特殊情况

​ 1.编码情况一:

long l = 123123;System.out.println(l);

//编译失败:过大的整数//long l1 = 2321432432434324234;(不加L默认为int型,此时超出int的取值范围)long l1 = 2321432432434324234L;(这样就没问题)

​//编译失败float f1 = 12.3     (不加f默认为double类型,再赋值给float类型,自然会失败,除非强制类型转换)2.编码情况2:

​//整形常量,默认类型为int型//浮点型常量,默认类型为doublebyte b = 12;//byte b1 = b + 1;//编译失败//float f1 = b + 12.3//编译失败
(五)String类型变量的使用

​ 1.String属于引用数据类型

​ 2.声明String类型变量时,使用一对""

​ 3.String可以和8种基本数据类型做运算,且运算只能是连接运算:+

int number = 1001;

String numberStr = "学号:";String info = numberStr + number;//+ : 连接运算

​ 4.运算结果仍然是String类型
练习1:

char c = 'a';  //97   A : 65

int num = 10;String str = "hello";System.out.println(c + num + str);//107helloSystem.out.println(c + str + num);//ahello10System.out.println(c + (num + str));//a10helloSystem.out.println((c + num) + str);//107helloSystem.out.println(str + num + c );//hell010a

​ 练习2:

System.out.println("*       *");System.out.println('*' + '\t' + '*');System.out.println('*'+"\t" +'*');System.out.println('*'+'\t'+"*");System.out.println('*'+('\t' + "*"));

四、进制

(一)关于进制
  1. 所有计算机底层都以二进制形式存在
  2. 对于整数,有四种表示方式

二进制:0,1 满2进1,以0b或0B开头

十进制:0-9,满10进1

八进制:0-7,满8进1,以数字0开头表示

十六进制:0-9及A-F,满16进1,以0x或0X开头表示。此处的A-F不区分大小写

如:0x21AF + 1 = 0X21B0

进制之间对应规则:

十进制十六进制八进制二进制
0000
1111
22210
33311
444100
555101
666110
777111
88101000
99111001
10A121010
11B131011
12C141100
13D151101
14E161110
15F171111
16102010000
17112110001
(二)二进制的原码、反码、补码

1 * 2^3 + 1* 2^2 +1 * 2^1 = 14

符号位
原码00001110

符号位:

1:正数

0:负数

-14

原码10001110
反码11110001
补码11110010

原码:符号位为1

反码:在原码基础上除符号位外,各个位取反

补码:在反码的基础上+1

计算机底层都以补码的方式来存储数据

给你一个二进制怎么推出十进制是多少?

补码10111011
反码10111010
原码11000101

1.根据补码-1得出反码

2.反码的符号位不变,各位取反得到原码

+12701111111
-127的原码11111111
-127的反码10000000
-127的补码10000001
-12810000000
(三)进制间的转换

​ 1.十进制 二进制互转

二进制转成十进制 乘以2的幂数
00001010对应的十进制就是1*2^1 + 1*2^3 = 10
十进制转成二进制 除以2取余数
15转化成二进制就是
15/2 = 7 余数为1
7/2  = 3 余数为1
3/2  = 1 余数为1
1/2 =  0 余数为1
得出15对应的二进制为1111

​ 2.二进制 八进制互转

二进制转为八进制
010101001转为八进制
每三位做运算
1*2 ^ 1 = 2
1*2 ^ 0  +  1*2 ^ 2 = 5
1*2 ^ 0 = 1
对应的八进制为251
八进制转为二进制
255转换为二进制为
010101101

​ 3.二进制十六进制互转

二进制转换为十六进制
1011010100011010
转为十六进制
每四位做运算
得1*2 ^ 0+1*2 ^ 1 + 1* 2 ^ 3 = 11B
1* 2 ^ 0 + 1* 2 ^ 2 = 5
1 * 2 ^ 0 = 1
1 * 2 ^ 1 + 1* 2 ^ 3 = 10A
得到十六进制为B51A
十六进制转为二进制
D3F9转为二进制为
每一位分为四个二进制位得到
D = 13 = 4+8+1 = 1101
3 = 0011
F = 15 = 8 + 4 + 2 + 1 = 1111
9 = 8 + 1 = 1001
十六进制为1101001111111001

​ 4.十进制 八进制互转

以二进制作为中间枢纽进行转换即可

​ 5.十进制 十六进制互转

以二进制作为中间枢纽进行转换即可
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿坤...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值