疯狂java讲义第三章知识点

注释和API

  • 单行注释:用 // 来实现
  • 多行注释:用 /**/ 来实现
  • 文档注释::例如java的API,在cmd窗口中可用javadoc命令使文档注释生成API
  • javadoc 命令还包含了大量其他选项,读者可以通过在cmd执行 javadoc -help查看 javadoc 命令的所有选项
  • API 文档类似产品使用说明,通常使用说明书只需要介绍那些暴露供用户使用的部分,Java 中只有
    public,protected修饰的内容才是希望暴露给别人使用的,因此javadoc 默认只处理 public protcted
    修饰的内容。 如果开发者确实希望javadoc工具可以提取private修饰的内容,则可以在使用 javadoc
    工具时增加-private 选项.
  • 注释的作用:增加可读性,方便找错

标识符和关键字

  • Java 语言里的分号( ; )、花括号({})、方括号([])、圆括号 (())、空格、圆点(.)都具有特殊的分隔作用,因此被统称为分隔符。

  • Java 语句可以跨越多行书写,只要在最后结束的地方使用分号结束即可。

  • 但是字符串、变量名不能跨越多行。

  • 虽然 Java 语法允许跨行书写多个语旬,但从程序可读性角度来看,应该避免在跨行书写多个语句。

  • 标识符就是用于给程序中变量、类、方法命名的符号 ,Java语言的标识符必须以字母、下画线(_)、美元符($)开头,后面可以跟任意数目的字母,数字、下画线和美元符.此处的宇母并不局限于 26 个英文字母,甚至可以包含中文字符、日文字符等。

  • java 是区分大小写的,因此 abc和ABC是两个不同的标识符。

  • 不允许使用单独的下画线(_)作为标识符

  • 标识符可以由字母、数字、下画线( )和美元符($)组成,其中数字不能打头。

  • 标识符不能是 Java 关键字和保留字,但可以包含关键 和保留字。

  • 标识符不能包含空格

  • 标识符只能包含美元符($) ,不能包含@、#等其他特殊字符

java关键字

  • java语言中有一些具有特殊用途的单词被称为关键字,当定义标识符时,不要让标识符和关键字相同,则将引起错误。
  • java 的所有关键字都是小写的, TRUE,FALSE,NULL 都不是 java 关键字。但它们属于特殊的直接量,标识符也不能同名
  • goto和const是保留字,表示现在用不到,以后可能会用到

数据类型的分类

基本类型:

基本类型分为boolean类型数值类型

数值类型分为整数类型浮点类型

整数类型:byte,short,int,long,char

浮点类型:float,double

char 代表字符型,实际上字符型也是一种整数类型,相当于无符号整数类型

引用类型

引用类型:类,接口,数组,null类型

空引用( null )只能被转换成引用类型 不能转换成基本类型,因此不要把一个 null值赋给基本数据类型的变量

Java 只包含这8种基本数据类型,需要注意的是,字符串不是基本数据类型,字符串是一个类,也就是一个引用数据类型

  • 各类型的占位数:
    byte: 一个 byte 类型整数在内存里占8位,
    short: 一个short 类型整数在内存里占 16 位,
    int: 一个 int 类型整数在内存里占 32 位,
    long: 一个long类型整数在内存里占 64 位

  • 这里说一下bit和Byte的关系:
    1Byte(字节)=8bit(位)
    所以,也可以说一个byte类型整数占一个字节

1024Byte=1KB
1024KB=1MB
1024MB=1GB
1024GB=1TB

  • 在不同编码里,字符和字节的对du应关系不同:

1、ASCII码中,一个数字或者英文字母(不分大小写)占一个字节的空间,一个中文汉字(含繁体)占两个字节的空间。

2、UTF-8编码中,一个数字或一个英文字母(不分大小写)等于一个字节,一个中文(含繁体)等于三个字节。

3、Unicode编码中,一个数字或一个英文字母(不分大小写)等于两个字节,一个中文(含繁体)等于两个字节。符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。

4、在GBK中,一个数字或英文字母(不分大小写)占一个字节,一个中文(含繁体)占两个字节

关于数据类型的转换以及数据类型的提升,可关注我的另一篇博客: 数据类型的转换(宽窄转换,数据类型的提升)

Java 中整数值有4种表示方式:十进制、二进制、八进制和十六进制,其中二进制的整数以0b或者0B开头;八进制的整数以0开头:十六进制的整数以 0x 或者 0X 开头,其中 10-15 分别以 a-f (大小写均可)来表示。

由于计算机底层保存字符时,实际是保存该字符对应的编码,因此 char 类型 的值也可直接作为整型值来使用,它相当于 16 位的无符号整数 表数范围是0~65535。

char类型的变量,值完全可以参与加减乘除等数学运算,也可以比较大小,实际上都是用该字符对应的编码参与运算。

三个特殊的浮点类型:正无穷大,负无穷大,非数

  • 正无穷大:正浮点数除以零,用double或者float类的POSITIVE_INFINITY表示,正无穷的的数都是相等的
  • 负无穷大:负浮点数除以零,用double或者float类的NEGATIVE_INFINITY表示,负无穷大的数都是相等的
  • 非数:0.0除以0.0或者是对一个负数开平方,用double或者float类的NaN表示,不和任何值相等,甚至和NaN也不相等

为了直观的分辨过大的数值,java7引入了一个新的功能:无论值整数还是浮点数,可以用下划线分隔。 例:

int a = 0B0010_0000_0010_0001;
double pi = 3.14_15_92_6;
System.out.println(a);
System.out.pringln(pi);

类型转换

类型转换分为自动类型转换强制类型转换

  • 自动类型转换:表数范围小的值赋给另一个表数范围大的值,系统可以进行自动类型转换。
  • 任何基本类的值和字符串值进行连接运算时,基本类型的值将自动类型转换为字符串类型。所以可以把基本类型的值和一个空字符串进行连接(+不仅可以用来加法运算,也可以作为字符串连接符使用)
 System.out.println(1+2+"abc");//结果:3abc
 System.out.println("abc"+1+2);//结果:abc12
  • 强制类型转换的语法格式是 (targetType )value ,强制类型转换的运算符是圆括号 () 。
    自动类型转换图
    图中箭头左边类型的直接量可以直接赋给箭头右边类型的变量,这是自动类型转换。如果需要把图中箭头右边类型的直接量赋给箭头左边类型的变量,则需要强制类型转换

  • 关于字符串直接量有一点需要指出,当程序第一次使用某个字符串直接量时,Java 会使用常量池 (constant pool)来缓存该字符串直接量 ,如果程序后面的部分需要用到该字符串直接量时 Java 会直接使用常量池 (constant pool)中的字符串直接量。

运算符

  1. 算术运算符
  • +:加法运算符
  • -:减法运算符
  • *:乘法运算符
  • /:除法运算符
  • %:求余运算符
  • ++:自加

自加运算符既可以出现在操作数的左边,也可以出现在操作数的右边 但出现在左边和右边的效果是不 一样的。如果把++放在左边,则先把操作数加1,然后才把操作数放入表达式中运算;如果把++放在右边,则先把操作数放入表达式中运算,然后才把操作数加1。

int a = 5;
System.out.println(a++);//a=5
int a = 5;
System.out.println(++a);//a=6
  • –:自减
    用法和自加相似

自加和自减只能用于操作变量,不能用于操作数值直接量、常量或表达式。例如,5++,6- -等写法都是错误的。

  1. 赋值运算符
    赋值运算符用于为变量指定变量值,java使用=作为赋值运算符
    可以把变量当成一个可盛装数据的容器,而赋值运算就是将被赋的值"装入"变量的过程,赋值运算符是从右向左执行计算的,程序先计算得到 = 右边的值,然后将该值"装入" = 左边的变量,因此赋值运算符( = )左边只能是变量。

  2. 位运算符

  3. 拓展后的赋值运算符

  4. 逻辑运算符
    关于这三种运算符,感兴趣的朋友可以去搜一下,我就不再赘述了。

  5. 比较运算符
    (>):大于
    (<):小于
    (>=):大于等于
    (<=):小于等于
    (==):等于 用来比较,区别于 = 赋值运算符
    基本类型的变量、值不能和引用类型的变量、值使用进行比较, boolean 类型的变量、值不能与其他任意类型的变量、值使用进行比较;如果两个引用类型之间没有父继承关系,那么它们的变量也不能进行比较。
    !=:不等于

  6. 三目运算符

三目运算符只有一个:(?:)
我们直接上例子:

String str = 5 > 3 ? "5大于3 " : "5不大于3 ";
System.out.println(str); //输出5大于3

表达式 值1 值2
表达式为ture,结果为值1,表达式为false,结果为值2

运算符优先级

上一行运算符的优先级大于下一行运算符的优先级
运算符优先级

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值