极客java01

1.从加减乘除到变量

1
2
3
4
5
public class MathCacl {
public static void main(String[] args) {
System.out.println("5+6");
}
}
  • 如果我们想让计算机输出5+6的计算结果
  • 我们应该去除双引号
基本数据类型
  • int:用来表示一个整数,取值范围在-2^31~2^31-1
关键字和标识符

标识符

  • 由大小写英文字符,数字和下划线组成,区分大小写,不能以数组开头
  • 可以用作java中的各种东西的名字,如类名,方法名
  • 标识符是区分大小写的

关键字是java语法中的保留字,不能用来做名字

  • public class static void int
变量
  • 如何创建变量: int a;
  • 如何给变量一个值 : int a = 10;
  • 如何使用变量 : 直接使用变量的名字

2.再谈计算加减乘除的程序

  • 表达式:java中最基本的运算,比如一个加法运算表达式。1+1,a+b
  • 语句:类似于平时说话的一句话,由;结束 int a = 32;
  • 代码块:一对大括号括起来就是一个代码块
java是区分大小写的
  • 关键字和标识符都是区分大小写的
  • 类名必须与文件名一致,包括大小写要求
  • 使用变量时,名字必须和声明变量时的标识符大小写一致
  • 方法名,也是区分大小写的
  • 类型也区分大小写,int是类型,而Int不是
  • System.out.println 可以被识别,而SYSTEM.OUT.PRINT不可以
字面值
  • 整数的字面值类型默认是int
  • 超过int的范围,需要使用取值范围更大的类型

3.java中的基本数据类型

认识二进制
  • 十进制:每一位可以是0~9这十个值,到10进位。一百用十进制表示是100,十是10
  • 二进制:每一位可以是0和1这两个值,到2进位,100用二进制表示是1100100,十就是1010
  • 十六进制:每位可以十0~f这16个值,到16进位,一百用16进制表示十64,十就是A
  • bit和byte
    • 一个二进制的位叫做bit。网络带宽中的单位都是bit
    • 八个二进制的位组成一个byte。硬盘等存储的单位,都是byte
    • byte是计算机中衡量存储的单位,
数字的基本数据类型
  • 整数类型
    • byte占用一个byte,值域为-128~127
    • short占用2个byte,值域是-32768~32767
    • int占用4个byte,值域是-2147483648~2147483647。java中整数缺省是int类型
    • long占用8个byte,值域是-9223372036854774808~9223372036854774807
  • 浮点数类型
    • float占用4分byte,有精度,值域复杂
    • double的精度是float的两倍,占用8个byte。java中浮点数缺省是double类型
  • 符号位
  • 布尔和字符数据类型
    • boolean占用一个byte,值域是true,false
    • char 占用2个byte,值域是所有字符

4.java中的运算符

  • 运算符对一个或多个值进行计算,并得出运算结果
  • 运算符的运算结果类型有的是固定的,有时候根据被计算的值变换,两个int相加,结果就是int
  • 混淆点,除了赋值运算以外,运算符本身不会改变变量的值
%取模运算符
  • 用来计算余数
  • 负数也可以被取模
  • 负数也可以取模
  • 小数也可以取模
整数的除法运算

int 除以 int 结果还是int ,不会变成浮点数

比较运算符和布尔运算符

比较运算符:>,>=,<,<= ,!=, ==

布尔运算符

  • !叫做非运算符,not运算符,!true是false ,!false是true
  • &叫做且运算符,and运算符 true&true是ture,true & false 是false
  • &&叫做且且运算符,运算结果和&一样
  • | 叫做或运算符 or 运算符 true | false 是true ,false | false 是false ,true | true 是true
  • ||叫做或或运算符,运算结果和| 一样
小括号运算符

小括号中可以包括任何运算符,决定运算的顺序

运算符优先级
  • ()
  • !
  • *,/,%
  • +,-
  • “>” “>=” “<” “<=”
  • ==
  • !=
  • & && | ||
  • =
理解运算符,灵活记忆优先级
  • 为什么=优先级最低
    • 需要等待右面的值算出来
  • 为什么布尔运算符的优先级低于比较运算符
    • bool值由比较运算符得到
  • 为什么比较运算符的优先级比算术运算符低
    • 比较的数可能是算数出来的

5.java中的位运算符

字面值的八进制和十六进制

以0开头的整数为8进制

  • 05就是十进制的5
  • 011就是十进制的9

以0x开头的整数为十六进制

  • 0xF就是十进制的15
  • 0x11就是十进制的17
按位运算符
  • 按位并:&
  • 按位或:|
  • 按位异或:^
  • 按位取反:~
位移运算符
  • “>>”:符号位不动,其余位右移符号位后面补零吗,又称带符号右移
  • “>>>”:符号位一起右移,左边补零,又称无符号 右移
  • “<<”:左移,右边补0。左移没有带符号位有一说,因为符号位在最左面

注意:按位和以为,并不会改本其本身的值

位运算符的用处

按位运算符

  • 掩码(MASK)

位移运算符

  • 高效除2

6.基本数据类型的更多语法点

变量要先赋值后使用

计算并赋值运算符
  • 作用是为了让代码更简洁,比如a = a + 10,可以简化为 a += 10;
  • +=
  • -=
  • /=
  • *=
  • %=
  • &=
  • |=
  • ^=
  • “<<=”
  • “>>=”
  • “>>>=”
数据类型的自动转换
  • 自动类型转化

    • 不会出现问题的类型转换,编程语言可以做自动类型转换,比如低精度到高精度
    • 自动类型转换可以发生在算数运算,也可以发生在赋值
  • 数值精度顺序double > float > long > int >short > byte

  • char可以转换为int

    • 虽然同样是两个byte,但是因为char是无符号数,值域超过了short可以表示的范围
    • 所以不可以转为short
  • 强制类型转换

    • 可能出现问题的的类型转换,需要使用强制类型转换,比如高精度数值向低精度数值转换
    • 强制类型准换也是操作符
    • 语法是使用小括号括起来的目标类型放在被转换的值的前面
    • 强制转换会造成数据精度丢失
  • 数值溢出

    • 数值计算一旦溢出,结果将失去意义
    • 要对能够处理的值有大概的估计

7.字符集和编码

什么是字符集charset
  • 字符集就是字符的集合,一般会包含一种语言的字符。比如gbk包含所有汉字字符的字符集
  • ascll包含英文字符的字符集
  • 字符就是java中的char, character的缩写
什么是编码
  • char代表一个字符,char本质也是数字看。将数字映射到字符就叫编码
  • 将一个字符集映射到数字,,就是给这个字符集编码。编码是有标准的
  • 所有计算机按照同一个编码标准执行
  • 有时候编码和字符集会混用
编码和字符集介绍
常用的字符集
  • ASCII
  • Unicode 包含世界上所有常用字符 ,UTF-8, UTF-16
  • Unicode GBK等常用的字符集,都会兼容ASCII
java中的字符集
  • java中使用UTF-16编码的Unicode
  • UTF-16用16个bit,即两个byte,这也是char占用两个bytr的原因,当把char转成数字的时候,需要用int
如何输出特殊字符
  • 可以ascii码+char
转义符语法和常用的转义符
  • \n.换行符
  • "双引号
  • \t制表符
  • \uXXXX。unicode编码对应的字符
字符串的 “加法”
  • 将变量穿插在字符串中输出
    • 字符串可以和任何类型进行加法运算,会将这个值拼接到字符串上
    • 字符串也可以使用+= 操作符来拼接
    • 字符串的加法运算符号加法运算本身的优先级
  • 字符串不是java中的基本数据类型
    • String不是java中的保留字
  • String的加法不会改变原来String变量的值,值的改变需要赋值语句

8.操作符和数据类型总结

  • 自增自减操作符是可以直接改变变量值的操作符
  • 前加加和前减减
  • 后加加和后减减
  • 其实是一个+1操作和一个赋值操作的缩写
  • ++a先加后使用
  • a++先使用后加
打印26个连续字符
  • 自动类型转换:char到int
  • 强制类型转换:int到char
  • 字符和数字的对应关系,字符集和编码
  • 字符串的加法:任何数据和字符串都可以相加
  • 自增操作符
找到可以被整除的数
  • 取模运算:整数的取模运算
  • 布尔运算:==操作符
  • 自增运算

9.程序执行流程之if-else语句

顺序执行
  • 代码块的执行是顺序执行
if_else语法
1
2
3
4
5
if (boolean) {
if语句块
} else {
else语句块
}
  • if-else中只有一个语句块被执行
  • if和else都是java中的关键字
  • if语法
  • 把if-else看成一个表达式,整体还是顺序执行
if-else的嵌套
  • if-else就是一个语句,可以是另一个语句的一部分,也可以是if-else的一部分
  • 求a ,b,c中最大数
if-else的简化
  • 如果if或者else的语句块只有一个语句,可以省略大括号

10.程序循环之for语句

  • 让程序在满足条件时,重复执行某个代码块。for是关键字
1
2
3
4
for (初始化语句;循环条件表达式;循环体后语句)
{
for循环体;
}
  • 初始化语句在for循环开始前执行一次,以后不再执行;循环条件表达式在每次循环体执行前执行如果为
  • true则执行循环体,否则循环结束;循环体后语句会在每次循环执行后执行
Break语句
  • break可以结束循环
continue语句
  • 结束本次循环,开始下一次循环体的执行=
你的支持是我最大的动力!
0%