Java笔记第一章--Java基础

为了方便学习同时为了巩固知识,在这里开始记录笔记

JAVA基础

1.标识

(1)关键字

  • 基本类型
  • boolean(布尔型)byte(字节型)char(字符型)double(双精度)
    float(浮点)int(整形)long(长整形)short(短整型)
  • 程序控制语句
  • break(跳出循环)continue(继续)return(返回值)do(运行)
    while(循环)if(如果)else(反之)for(循环)
    instanceof(实例)switch(开关)case(分支)default(默认)
  • 访问控制
  • private(私有的)protected(受保护的)public(公共的)
  • 类、方法和变量修饰符
  • class(类)extends(继承)abstract(抽象)interface(接口)
    implements(实现)final(不可改变)native(本地)new(创建)
    static(静态)strictfp(严格)synchronized(同步)transient(短暂)
    volatile(易失)   
  • 变量引用
  • super(父类)this(本类)void(无返回值)
  • 错误处理
  • try  catch(处理异常)finally(始终执行)throw(抛出异常对象)throws(声明异常)
  • 包相关
  • package(包)import(引入)

(2)用户定义标识符

  • 以字母、下划线或¥开头的字符序列
  • 先定义后使用,注意大小写
  • 不与关键字同名
  • 不与具有特定意义的值同名
  • 使用简单易懂的名字提高程序可读性

2.变量

  1. 数据存储空间的标识
  2. 变量赋值=内存引用的变化
  3. 在声明任何变量的时候,应该为变量指定一种数据类型。

3.基本数据类型

(1)布尔型  boolean

       通过boolean声明,只允许取值true和false。与C/C++可用0表示false用大于0的值表示true不同,Java不允许数值类型和布尔类型间相互转换。

(2)整数型  byte   short   int   long

  • 十进制整形    102,-130,0
  • 八进制整形(以数字0开头)    0102
  • 十六进制整数(以0x开头)    0x0102

        默认整数类型为Int,给long型赋值时要在数字后加L    如130L

        Java中不能定义无符号数(unsigned),有需要时可以通过位运算符得到

类型占用储存空间 / B表示范围
byte1-128 ~ 127
short20-2E15 ~ (2E15) -1
int4-2E31 ~ (2E31) -1
long8-2E63 ~ (2E63)-1

(3)浮点型

  1. 十进制数    3.14
  2. 科学记数法    3.14e2
默认浮点数类型为double,对float类型变量赋值时必须添加 F 或者 f    如float a=5.5f
类型占用储存空间 / B表示范围
float4-3.4E38 ~ 3.4E38
double8-1.7E308 ~ 1.7E308

(4)字符型

用单引号 ' ' 括起来的单个字符,表示字母、数字、标点符号以及其他特殊字符,如char ch='w'。

Java基于Unicode表示字符,每个字符占2B,因此可以十六进制编码形式表示,如char uc='\u0061'。

常用的转义符号
回车\r换行\n
Tab\t换页\f
退格\b单引号\'
双引号\''  

Java定义了一些用来格式化输出的特殊字符,这些转义字符要在字符串中处理

(5)基本类型转换

  1. 不同类型的变量赋值或运行时,容量小的变量类型自动转换为容量大的类型(兼容:自动小转大)。
容量从小到大    byte,short,char<int<float<double  (byte , short , char3种类型间不会相互转换,计算时首先转为 int)
  1. 容量大转容量小的类型时,必须加上强制转换符,因此可能会有精度降低或者溢出。
  2. 多种类型混合计算时,系统首先自动转换为容量最大的类型,然后继续计算。

(6)常量

也被称为字面量,用来表示一个固定值。与字符型一样,也可以用Unicode字符表示。

final 是保留字,可以修饰变量声明,一旦将变量用 final 修饰,则称该变量为常变量,即它不能被重新赋值。

4.运算符和表达式

(1)算术运算符

  • 双目运算符
    +-
    */
    %求余  
  • 单目运算符
    +取正++自增
    -去负--自减

整数被0除或对0取余属于非法运算。

两个运算变量的计算结果的符号与求余运算符左侧的运算变量符号一致。(多种类型混合计算时,系统自动转换成这几个类中容量最大的再进行计算)

单目运算符区分方法是运算符在操作数的前面还是在后面,在前面(++i)则先自增、自减在后面(i++)则先参与运算,再自增、自减

(2)关系运算符

==等于!=不等于
<小于<=小于等于
>大于>=大于等于
instanceof对象运算符  

关系运算符两边的数据类型应一致。

表达式的结果为布尔型,即关系式成立结果为true,不成立结果为false.

(3)逻辑运算符

运算符用法含义结合方向
&&a && b左到右
||a || b左到右
! a右到左

逻辑运算符的操作数必须是boolean型数据。

       如 flag =(i<3) && (i>4); 逻辑运算符左右是括号扣起来的比较运算符,比较运算符的结果是boolean型数据。

操作数a操作数ba && ba || b! a
11110
10010
01011
00001
与运算符全1出1,其余出0;或运算符全0出0,其余出1;非运算符取反

(4)赋值运算符

赋值是双目运算符=,将右边的表达式赋给左边的变量。

  1. 左边只能是变量
  2. 右边表达式的数据类型与左边一致或者可以实现自动转换(前一块基本类型中有容量比较)

(5)位运算符

主要针对二进制

&
|^

异或

<<移位运算符…………
  1. 与运算符对操作数执行按位(二进制数位)与操作,当两个操作数的对应位都为1时结果位1,否则为0(仅输出二进制中的相同位);
  2. 或运算符执行按位或运算,当操作数的来给你个对应位中有一个为1,结果是1;
  3. 非运算符执行按位取反;
  4. 左移运算符用<<表示,将运算符左边的变量移动指定的位数且再低位补0。左移n位,相当于乘上2的n次方;
  5. 无符号右移运算符用>>>表示,将运算符左边的变量向右移动指定的位数且再高位补0。右移n位相当于除以2的n次方;
  6. 有符号右移运算符用>>表示,将运算符左边的变量向右移动指定的位数且,如是正数高位补0,负数则高位补1。右移n位相当于除以2的n次方;

(6)表达式

运算符、常量和变量遵循规则的组合。

表达式返回值的类型依赖于表达式里的元素。

(7)运算符优先级

同一表达式中多个运算符被执行的次数,表达式求值时,按运算符的优先级由高到低的次序执行。

优先级设计的运算符j合性
1括号  []  .  ()(函数调用)
2! ~ ++ -- +- ()(类型转换) new从右到左
3* / %从左到右
4+ -从左到右
5<<  >>  >>>从左到右
6<<=   >>=   instanceof从左到右
7==  !=从左到右
8&从左到右
9^从左到右
10 | 从左到右
11&&从左到右
12||从左到右
13?:从右到左
14=+=  -= *= /= %= ^=  <<=  >>= >>>=

从右到

但是在实际运用中,不需要记忆运算符的优先级别,因为可以直接使用括号把优先级提高,加上括号后书写代码逻辑性更好,也便于代码的阅读和维护。

5.语句

(1)if语句

if - then是最基本的控制流语句,根据测试条件的结果选择执行流程。测试条件可以是逻辑表达式也可以是一个值,执行分支取决于逻辑表达式的结果。

if 条件 { //只有当测试条件返回值为true时'then'执行下面代码
   代码
}

与其类似的有 if - then - else 选择语句,这里提供了 if 测试为false时的情况。

if 条件 {  //测试值返回值为true时执行代码1
    代码1
}
else {    //返回值为false时执行代码2
    代码2
}

(2)switch语句

switch语句有多个可能的执行路径,switch的测试路径可以是byte , short , char , int 等基本类型,也可以是枚举类型、String类和特殊的原生类型包装类。

switch(分支表达式) {
case 常量表达式 1:...
     brake;
case 常量表达式 2:...
     brake;
case 常量表达式 n:...
     brake;
default:
}

计算分支表达式的值,如果表达式的值和后面某个case值相同,就执行case里的语句,直到遇到break。如果没有遇到相同的值就执行default分支。

若没有break语句则swtich会按顺序执行多个case,而不管case标签的表达式是否符合条件,直到遇到一个break语句。

(3)for语句

for语句经常用于在一定范围内遍历,通过循环得到遍历的效果。

for(起点--初始化语句;终点--结束表达式;用于标记的叠加次数--自增表达式){
    每次循环执行的代码
}

  1. 初始化语句:初始化循环变量,只作为循环的开始执行一次;
  2. 结束表达式:计算为false时,循环结束;
  3. 自增表达式:在循环中次执行,即在一个循环中最后执行。但也有建议for中只有初始化语句和结束表达式,自增表达式加到代码块最后,可能这样更有助于理解代码?

(4)while和do - while语句

while语句当测试条件为true时执行重复执行代码块直到false时退出。若第一次为false则不执行循环体内任何动作;若永远为true那就进入死循环。

while(测试条件){
    代码块
}

do - while语句与while语句不同其while语句在代码块后面

do {
    代码块
}while(测试条件)

与while语句不同,do-while语句先执行后判断,即使第一次判断为false,do - while语句至少会执行一次代码块;而while语句中若第一次while为false代码块执行0次。

(5)break语句和continue语句

break语句是终止某个语句块的执行,使应用程序从该语句块后的第一个语句处开始执行。break语句可以结束for、while、do-while循环。

continue语句忽略for、while、do - while的当前循环,它的作用是跳过某个循环语句块的一次执行,使应用程序直接开始下一次循环测试。

  1. continue只能用于循环语句(for/while/do-while)中。(在前面swtich中break还也用于控制case的结束)
  2. continue语句执行时只是中断本次循环体内语句的执行,而break语句则结束整个循环。

(6)return语句

从当前方法退出,控制流返回到方法调用处。即结束当前方法,运行该方法的下一方法。

return语句有两种形式:有返回值、无返回值。

返回一个值时,可以在return后面把值放进去,如r:eturn 1;或者放一个表达式计算,如:return ++count。

return返回的数据类型必须和方法声明的返回值的类型一致或者兼容(void时return不需要返回值)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值