Java第二章笔记

本文详细介绍了Java中的基本数据类型(数值、浮点、字符、布尔),引用数据类型(如String),以及数据类型之间的转换、运算符的使用、控制语句(如if、else、for、while、do-while和switch)、循环结构和方法的定义。
摘要由CSDN通过智能技术生成

1.基本数据类型

数值型
(1)byte
1byte=8bit 。  表示范围为:-127——127  

(2)short
short=2byte=16bit。表示范围为:-32767——32767

(3)int 
int=4byte=32bit。表示范围为:-2147483647——2147483647

(4)long
long=8byte=64bit。表示范围为:-9223372036854775807——9223372036854775807


int x=0b11;0b表示二进制。

int y=0x11;0x表示十六进制。

int  z=011;0表示八进制。

java中基本类型中的数值类默认为int类型,使用long形式时要在定义long变量后加l或L。

举例:long a=10L;

浮点型
(1)float
float=4byte=32bit。表示范围:(-3.403E38~3.403E38)

(2)double
double=8byte=64bit。表示范围:(-1.798E308~1.798E308)

float和double有两种表示形式。
十进制数形式,例如 : 3.14 314.0。
科学记数法形式,如 3.14e2 3.14E2。

浮点型默认为double类型,使用float时要在变量后加f或F。

举例:float a=10.233F。

float :单精度,可以精确到 8 位有效数字。很多情况下,精度很难满足需求。
double :双精度,精度是 float 的两倍。


字符型
char
char=2byte=16bit。

使用规则:用单引号括起来。
例如: char c1 = 'a';
            char c2 ='中 ';
由于 java 底层使用 unicode 编码 , 所以可以涵盖世界上所有书面语的字符。
  char运算
char 类型是可以运算的因为 char 在字符编码表中有对应的数值。
在 JAVA 中,对 char 类型字符运行时,直接当做对应编码表的整数来对待。
char c= ‘ a ’ +1; 先将’ a ’提升为 int ,计算结果 98。

布尔型
boolean
boolean用来判断逻辑真假,结果为true或者false。

boolean 类型适于逻辑运算,一般用于程序流程控制 。

java语言中boolean 类型数据只允许取值 true 或 false 。

注意: 不可以 0 或非 0 的整数替代 false 和 true ,这点和 C 语言不同。

2.引用数据类型


(1)String
String 不是基本数据类型,属于引用数据类型。
使用一对""来表示一个字符串可,内部以包含0个、 1 个或多个字符。
声明方式 :
例如: String str = “ abcd ” ;
String name = “张三” ;
String 是 java 类库中提供的一个类 , 用类来当做字符串变量类型,类似于c语言里的字符串数组。
运算规则
1. 任意八种基本数据类型的数据与 String 类型只能进行连接 “+” 运算,且结果一定
也是 String 类型
2.String 类型不能转为其他的基本类型。
例如:


(2)接口(interface)
(3)数组([ ])


3.基本数据类型的转换


基本数据类型转换分为默认转换和强制类型转换,布尔类型不能和其他七个基本数据类型转换。

要根据其他七个基本数据类型大小来进行类型转换。

容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造

成精度降低或溢出;使用时要格外注意。

有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的

那一 种数据类型,然后再进行计算。

七个基本数据类型大小:(char,short,byte)<int<long<float<double。

char和short和byte不分大小。

(1)默认转换。(小转大:取值范围小的提升为取值范围大的)

举例:byte a=10;

int b=a;

将byte类型的变量转为int类型的变量。

(2)强制转换。(大转小:取值范围小的提升为取值范围大的) 可能出现问题

举例:float a=10.33f;

int b=(float)a;

将float转换成int,出现小数位丢失,造成精度缺失。

(1)容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造
成精 度降低或溢出;使用时要格外注意。
(2) 有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的
那一 种数据类型,然后再进行计算。

float比long容量大的原因:
浮点数不是简单的直接表示大小,而是按照一定的标准分配的。
其中第 1 位,符号位,即 S 。
接下来的 8 位,指数域,即 E 。
剩下的 23 位,小数域,即 M 。
也就是说,浮点数在内存中的二进制值不是直接转换为十进制数值的,而是按照
上述公式计算而来,通过这个公式,虽然只用到了 4 个字节,但是浮点数却比长整型的
最大值要大。
  V=(-1)^s * M * 2^E。
 

4.运算符


常用的运算符包括五大类。包括:算术运算符,赋值运算符,比较运算符,逻辑运算符,位运算符。

(1)算术运算符:
+,-,*,/,%,++,--。

+ 运算符有三种用法:

1.加法运算,2.连接,3.正号。

需要注意:

(1)加法运算是数值+数值。

(2)连接。(数值+字符串 字符串+字符串)

++与--运算

--与++一样。

(2)赋值运算符:
=,+=,-+,*=,/=,%=。

==与=不一样,==是相等,=是赋值语句。

(3)比较运算符:
<,>,<=,>=,==,!=。

比较运算的类型都是布尔类型,要么是true要么是false。

(4)逻辑运算符:
&,&&,|,||,^,!。

&—逻辑与      | —逻辑或        !—逻辑非。
&& —短路与   || —短路或        ^ —逻辑异或。

&: 与逻辑,判断表达式两端无论真假都要进行判断。
&&: 与逻辑 ( 短路与 ) ,判断表达式左端为假右端就不需要在判断, && 相比 & 效率更高。
举例: int a=5,b=10,c=15;
if(b<a&&b<c) 结果为 false , b<a 为 false 继续判断与 b<c 结果为 false 。
if(b<a&b<c) 结果为 false , b<a 为 false 就不会再进行判断。

|:或 逻辑,判断表达式两端无论真假都要进行判断。
||:或 逻辑 ( 短路或 ) ,判断表达式左端为假右端就不需要在判断,|| 相比| 效率更高。
(5)位运算符
&,|,^,~,<<,>>,>>>。

(1)<<左移位运算符。(空位补0,被移除的高位丢弃,空缺位补0)

(2)>>右移位运算符。(被移位的二进制最高位是0,右移后,空缺位补0; 最高位是1,空缺位补1)

(3)>>>右移无符号运算符。(被移位二进制最高位无论是0或者是1,空缺位都用0补)

(4)&。(二进制位进行&运算,只有1&1时结果是1,否则是0)

(5)|。(二进制位进行 | 运算,只有0 | 0时结果是0,否则是1)

(6)^。(相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0 不相同二进制位 ^ 运算结果是1,1^0=1 , 0^1=1)

(7)~。(正数取反,各二进制码按补码各位取反 负数取反,各二进制码按补码各位取反)

举例:

5.控制语句。

(1)if。(条件语句)

if ( 条件 ) {
//语句
}

(1)条件表达式必须是一个返回布尔结果的表达式,语句可以是用{}包含的语句块。

(2){}可有可没,没有的话就是默认为最近的执行if判断。

举例:

没括号时不满足if语句的判断条件靠的近的不会执行,if语句没有{}的话就是默认为最近的语句执行if判断。

(2)if else 语句。

第一种表示方法:
if ( 条件 ) {
//语句1
}else {
//语句2
}
第二种表示方法:
if (条件1){
语句1;
} else if (条件2){
语句2;
}……
}else if (条件N){
语句N;
}

  if(条件表达式,最终返回一个布尔值){   }
         if(条件表达式,最终返回一个布尔值){   }else{   }
         if(条件表达式,最终返回一个布尔值){   }else if(条件表达式,最终返回一个布尔值){   }
         if(条件表达式,最终返回一个布尔值){   }else if(条件表达式,最终返回一个布尔值){   }else{  }
         if/else/for...语句后面即使只有一行代码也最好添加{ }  避免歧义

(3)switch语句:多分支选择语句,根据表达式的值,来执行多个操作中的一个。
 switch(表达式){
             case value1 : 代码块  [break];
             case value2 : 代码块  [break];
             case value3 : 代码块  [break];
             default: 默认代码块;
        }

表达式可以是byte、short、int、char、枚举类型、String类型;
case语句后面只能使用常量(字面量)表达式;
case后的值不能重复。
某个case分支如果没有提供break语句,则继续执行下一个case后的语句;(穿透性)。

凡是switch可以实现的功能, if语句都可以实现  反之则不一定。
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==编辑
 

6.循环语句。

(1)while循环。

 变量初始化
          while(条件表达式){
               循环体
               迭代部分
          }

先判断逻辑表达式的值。 若=true.则执行其后面的语句,然 后再次判断条件并反复执行,直到条件不成立为止。



     

(2)do while.

 do{

          }while(条件表达式)
      先执行语句,再判断逻辑表达式的值,若 为true,再执行语句,否则结束循环。

(3)for循环。

for 语句为如下形式:
for(表达式1; 表达式2; 表达式3){ 语句; … ; }
首先计算表达式1,接着执行表达式2,若表达式2的值 = true,则执行循环语句, 接着计算表达式3,再判断表达式2的值;依此重复下去,直到表达式2的值=false。
循环嵌套,外循环执行一次,内循环全部执行。
嵌套循环就是把内层循环当成外层循环的循环体。当只有内层
循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当
次循环,开始下一次的循环。
在内层循环中 结束外层循环要加标签,out。
(4)break和continue.
break 语句用于终止某个语句块的执行。用在
循环语句体中,可以强行退出循环;例如:
int stop = 4;
for (int i = 1; i <= 10; i++) { //当i等于stop时,退出循环 
if (i == stop)
{
break;
}
System.out.println(" i= " + i);
i=1,2,3;
continue 语句用在循环语句体中,用于终止某
次循环过程,跳过循环体中 continue 语句下
面未执行的循环,开始下一次循环过程;例
如:
int skip = 4;
for (int i = 1; i <= 5; i++) { //当i等于s kip时,跳过当次循环 
if (i == skip)
{
continue;
}
System.out.println("i = " + i);
}
i=1,2,3,5;
7.Java中的方法。
[访问权限修饰符 修饰符…] [返回值类型] 方法名(形式参数类型 参数名){
Java语句;… … …
[return 返回值;]
}

(1) java中的方法类似其他语言中的函数, 将完成某个功能的代码进行封装,为他命名,最终可以重复使用,减少代码的冗余。
方法必须写在类中(.java文件中)。

(2)方法定义:

修饰符:这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
  形式参数: 在方法被调用时用于接收外界输入的数据。
返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void。
方法体:方法体必须有{}括起来,在{}中编写完成方法功能的代码
返回值:方法在执行完毕后返还给调用它的环境的数据。
实参:调用方法时实际传给方法的数据

      public 访问权限。
     static 静态的  直接可以使用类名调用。
     void 表此方法没有返回值。
     ...... 方法名。
      ()参数列表。
      { }  方法体。

(3)return语句。

return语句。

return语句用于从当前执行的方法中退出, 返回到调用该方法的语句处继续执行。

有两种格式:

return 值; //将值返回,方法必须声明有返回值。

return; //不返回任何值,表示终止方法执行,可以在声明为void的方法中使用。

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值