Java基础学习(一):类名规范、返回值、注释、数据类型
目录
- 一、类名规范
- 二、返回值
- 三、注释
- 四、数据类型
- 1. 基本类型
- 2. 引用类型
- 3. 强制数据类型转换
- 4. 进制
- 5. 进制的转换
- 6. 超范围运算
了解一些关于Java的术语:
缩写 术语名 作用 JDK Java Development Kit 编写Java程序 JRE Java Runtime Environment 运行Java程序 SE Standard Edition Java的一些核心语法规则,用于桌面或简单服务器应用的Java平台 EE Enterprise Edition Java的web开发,用于复杂服务器应用的Java平台 ME Micro Edition 手机开发 SDK Software Development Kit 用于描述1998~2006年间的JDK
一、类名规范
规范 | 示例 | 作用于 | |
---|---|---|---|
大驼峰 | FirstSample | 多个单词,每个单词首字母大写 | 类名 |
小驼峰 | firstSample | 多个单词,第一个单词首字母小写,剩下的单词首字母大写 | 变量名、方法名、文件名、文件夹名 |
全大写 | FIRSTSAMPLE | 字母全大写 | 一般用作常量,只能第一次赋值,后续不能在赋值,永远不变,如Π:PI=3.14 |
二、返回值
void
:没有返回值public static void sort(int[] arr) { }
int
:要有返回return的数据public static int g(int x) {return 3*x-8; }
三、注释
//
:单行注释/* */
:多行注释,/*
开始,*/
结束/* * 这是一个多行注释 * 可以跨越多行 */
/** */
:文档注释,/**
开始,*/
结束- 代码作者
- 最后一次维护
- 联系邮箱
- 此类作用
/*** 这是一个文档注释* 通常用于描述类、方法或字段的功能* * @param name 用户名* @return 欢迎消息*/
四、数据类型
1. 基本类型
8种四类
类型 | 种类 | 占几字节 | 占几bit | 取值范围 |
---|---|---|---|---|
整数 | byte | 1字节 | 8bit | 282^828-128~127 |
整数 | short | 2字节 | 16bit | 2162^16216-322768~32767 |
整数 | int | 4字节 | 32bit | -2147483648~2147483647(超过20亿) |
整数 | long | 8字节 | 64bit | |
浮点数 | float | 4字节 | 32bit | |
浮点数 | double | 8字节 | 64bit | |
布尔型 | boolean | |||
字符串 | char |
注意:
- 1字节=8bit
- 取值范围中0归为正数
- int型不能存手机号
整数
- int默认值为0
- 第一位表示符号位,剩余的表示数值位。
- 符号位中:0代表正数,1代表负数。
- byte、short、int、long后续做运算,默认转换为int类型,所以需要进行强制类型转换
byte a = 125; byte b = (byte) (a+1); //long x = 1000L;
浮点数
- 浮点数默认值为0.0
float
:第一位表示符号位,8位表示阶位,23表示数值位;- 表示小数:设阶位为x(256),数值位为y,2(x-127) *y,阶位的值小于127可表示小数
float a=0.25F
或float b=0.75f
double
:第一位表示符号位,11位表示阶位,52表示数值位。- 表示小数:设阶位为x(256),数值位为y,2(x-1023) *y,阶位的值小于1023可表示小数
double c=1.56D
或double d=1.89d
- 浮点数中,数据默认转换为double类型存储。
问题1:float和int谁的精度更高?
数值越小float精度越高,数值越大int精度越高。
问题2:float和double谁的精度更高?
double表示的浮点数的数值精度是float的两倍。绝大部分程序采用的是double类型。
char类型:字符
- char类型默认值为空字符
- 要用单引号括起来
布尔型
- 布尔类型默认值为false
- 有两个值:true或false,用来判断逻辑条件
- 整数值和布尔值之间不能进行转换
2. 引用类型
- 引用类型默认值为空
- 除了基本类型的8中四类之外,剩下的都是引用类型,如:Byte、Long、String等。
3. 强制数据类型转换
基本语法:
目标类型 变量名 = (目标类型) 要转换的值或变量;
示例:
//将double类型数据转换成int类型
double d = 3.1415926;
int i = (int) d;//截断小数部分
System.out.println(i)//输出结果:3
实心箭头表示无信息丢失的转换;虚箭头表示可能有精度损失的转换。
- 数值类型之间的强制转换
- double - > int
- long - > int
- int - > byte
- 浮点数和整数之间的转换
- float - > int
- double - > float
- int - > float(自动转换)
- char类型的强制转换
- int - > char
- char - > int(不需要强制转换)
- 对象类型的强制转换
- 自动装箱和拆箱中的强制转换
// 基本类型 -> 包装类 (自动装箱) Integer integer = 100;// 包装类 -> 基本类型 (自动拆箱) int i = integer;// 强制转换示例 Double d = 123.456; int i2 = (int) (double) d; // 先拆箱为double,再强制转换为int System.out.println(i2); // 输出: 123
注意:布尔类型不能于其他基本类型相互强制转换。
4. 进制
计算机底层存储的是二进制数据。
- 十进制:平常使用的是十进制数据,0~9,逢十进一;
- 二进制:数据前加
0b
,0~1,逢二进一; - 八进制:数据前加
0
,0~7,逢八进一; - 十六进制:数据前加
0x
,0~f(a=10,b=11,c=12,d=13,e=14,f=15),逢十六进一;
int x1 = 10;//十进制
int x2 = 0b11;//二进制
int x3 = 07654;//八进制
int x4 = 0x4ac;//十六进制
5. 进制的转换
任意进制转换为十进制: 数字乘进制的多少次方在相加
十进制拆解:2412=2∗103+4∗102+1∗101+2∗1002412 = 2*10^3 + 4*10^2 + 1*10^1 + 2*10^02412=2∗103+4∗102+1∗101+2∗100
二进制转换为十进制:1011=1∗23+0∗22+1∗21+1∗20=111011 = 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 111011=1∗23+0∗22+1∗21+1∗20=11
十进制转换任意进制: 数据除进制取余,直到商为0,倒序取余数
十进制转换成二进制:10 = 1010
过程:
10 ÷ 2 = 5 余 0
5 ÷ 2 = 2 余 1
2 ÷ 2 = 1 余 0
1 ÷ 2 = 0 余 1
6. 超范围运算
计算机底层存储的是二进制数据。
反码: 正数和源码一样,负数符号位不变,其余取反
补码: 正数和源码一样,负数补码是反码+1
计算机底层使用的是补码做运算。
byte x1 = 127;//01111111 + 00000001 = 10000000
byte x2 = (byte)(x1+1);
System.out.println(x2);//输出结果:-128