java第二章学习笔记:基本数据类型

【因为每一章都篇幅比较长(10多页,难免有的地方会写错字,如发现请指正,本人不胜感激)】

java 中三种进制的字面常量表示方法?
【字面常量:指的是直接输入到程序中的值,比如:in myAge=26; myAge是一个int类型变量,而26是一个字面常量。】
【一个字节占两位】

1、十进制(无需任何前缀)

    //定义一个int类型变量,并分别给出初始值20,30
    //其中“20,30”为字面常量
    int length=20;
    int height=30;

2、八进制
八进制整数在计算的时候,满8进一(由阿拉伯数据0~7构成)
在java中,当需要使用八进制表示整数时,需要在该数的前面放置一个0,eg:

    int five=05;//表示八进制5
    int serven=07;//表示八进制7
    int eight=010;//表示八进制8
    int sixteen=020;//表示八进制16

注意:在日常生活中常出现011和11都表示11,但是在java中前面有0,编译器都认为是8进制,所以咋源代码中若出现“08”的字面常量,编译器会报错,因八进制不会超过7;

3、十六进制
十六进制在计算的时候满16进1,so十六进制整数由16个不同的符号构建而成,依次为0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
在java中,当需要用十六进制表示整数时,需要在该数前面加上0X,eg:

    int x=0x01;
    int y=0X7ffFF;//abcdef也可以用大写字母表示
    int z=0xCafe;

注意:十六进制中字母位(abcdef)、前缀的x以及后续即将提到的后缀标示符,在java中不区分大小写,这是仅有的几个不区分大小写的地方。建议都用大写,这样不易混淆,eg,后缀标识符“I”与1极其相似;

《2》long类型字面常量
上面的字面常量均为int类型,若需要使用long型字面常量,则需要在字面常量中添加后缀“L”<做标记,刚好是Long的首字母,一看就知道是long类型>

    long decimal=25873L;//十进制
    long oea=02674L;//八进制
    long hex=0xCAFFEL;//十六进制

《3byte型或short型》
均不需要后缀进行区分。eg:

    byte b=28;
    short a=277;
但需要注意的是:定义byte和short型字面常量时,数值超出取值范围时,编译会报错;

2.2.2 浮点型

表示有小数部分的数值,float和double均为有符号数,故有正有负,下表为它们的长度及取值范围
![这里写图片描述](https://img-blog.csdn.net/20180310001428811?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzM5ODg1Mjgy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

说明:double类型的数值精度是float的两倍,所以又称双精度
float型的字面常量默认为double型,因此,使用float型字面常量时需要添加后缀“F或f”,eg:

    float f=12.3456;//报错
    float g=12.346778f;//ture

double类型也可以将后缀D或d加上,不加也对,eg:

    double d=12.57870978;
    double g=12.578978675D;

在java SE5.0前,浮点型只能用十进制数值表示,java SE 5.0后可使用十六进制表示浮点数值,eg,0.125可以表示为0X1.0p-3.。在十六进制中,”p”表示指数,注意不是数学中的”e”

2.2.3 char型

每个char型变量占16个比特位,2个字节,用来表示一个字符
注意:java中字符的编码不是ASCII编码,而是Unicode编码;
说明:Unicode编码字符采用十六位无符号整数表示,即有2的16次方个可能性,也就是0~65535.
一般,char类型的字面常量用单引号eg:

    char chara='a';
    char chars='$';

其字面常量也可以通过Unicode编码制来表示。格式为“\uxxxx”,其中“x”表示一个16进制数字,即取值为“\u0000~\uFFFF”,正好两个字节<一个字节占两位>

    char a='\u004E';//表示大写字母N
    char b='\u03C0';//表示大写字母π

转意字符:一些特殊字符或不可见字符
常用转意字符
常用转意字符

2.2.4 boolean型

boolean型取值:非true即false,eg:
    boolean b=true;
    boolean f=false;

在C++中可以用指针或数值代替,0:false,非0:true;但java不能这样,并且boolean不能和任何其他基本类型的值进行转换;

2.3基本数据类型间的转换

基本类型转换方式:自动转换、手动强制转换、隐含强制转换;

2.3.1自动转换(源代码中无需特殊说明,自动完成)
这里写图片描述
eg:

    byte b=123;
    char c='a';
    short s=b;//将byte转为short
    int i=b;//byte转int
    long l=c;//char转long
    float f=i;//int 转float
    double d1=l;//将long转为double
    double d2=s;//将short 转double 
    double d3=123;//将int转double

注意:将int型及long型转为浮点型时,可能会包含精度损失,eg,int的123456789,当其转为float时,结果将是1.234567892E8,因为int型所包含的位数比float型所能表达的有效位多。

2.3.2 手动强制转换
自动将int型转为double,但是有时也需要将double转为int,类似上述逆箭头方向的转换就需要编写代码来实现。
强制类型转换语法格式为:圆括号中给出目标类型,后面的不变,eg:

    double d=5.988;
    int i=(int)d;//i=5
    byte b=(byte)5.998;//b=5

注意:强制类型转换时把占用空间大的类型转换为占用空间小的类型时,采用截取法,不会进行四舍五入,因此,强制转换时会损失精度,甚至值完全不同,eg,(int)40000000000L的结果为“1345294336”

2.3.3隐含强制类型转换
byte b=123;不应该编译报错吗?将int类型转为byte
其实这是java中一种特殊情况,因为没有专门的后缀来表示byte,short,so允许编写代码时用int字面常量表示byte,short,由系统自动转换eg:

    byte b=123;
    short s=123;

将0~65535整数字面常量直接赋给char型变量也是类似,eg.char c=123;
系统将123变为byte类型而不是int
但是这样不行:
这里写图片描述
上述代码在编译时会报“可能损失精度“的错误;

2.4标识符的命名规范《即类,变量名,方法名的命名规则》
java中的类,变量名,方法名等都是标识符
标识符以字母开头,有字母或数字组成规则如下:
1、字母包括大小写的a~z,’_’,’$’以及在某种语言中代表字母的任何Unicode字符
提示:与大多数编程语言相比,java中的字母范围更大,,不但有英文还包含希腊开发人员在标识符中使用的π
2、数字包含0~9
3、+和©这样的特殊字符不能出现在标识符中,空格也不行
4、标识符对大小写敏感,and长度没有限制
5、不能将关键字用作标识符(eg:int 、double)
下图为 java中的所有关键字
这里写图片描述
关键字 含义
abstract 表明类或者成员方法具有抽象属性
assert 用来进行程序调试
boolean 基本数据类型之一,布尔类型
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class 类
const 保留关键字,没有具体含义
continue 回到一个块的开始处
default 默认,例如,用在switch语句中,表明一个默认的分支
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
package 包
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中

提倡的命名习惯:
1、包名:尽可能全部小写 eg:com.utilites
2、类名、接口名:由名词组成,首字母大写 eg:HttpPostResult
3、方法名:通常第一个单词为动词子一个字母小写,其他单词首字母大写 eg:isEntry()
4、变量名成员变量大小写规则和方法名相同,局部变量尽可能全部小写,只有临时变量(eg;循环变量)可以使用单字符eg:currentIndex、name、i
5、常量名:名字 应该全大写,用下划线分隔单词 eg :MAX_HEIGHT
提示:C++中的标识符采用的是葡萄牙命名法的命名规则,所以阅读困难

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值