Java学习笔记(三)-----基本数据类型转换

八种基本数据类型,使用8个关键字修饰,结构简单。在上一篇中重点讲了整数型(byte,short,int,long);浮点型(float,double);布尔型 (Boolean);

这一片将j将概述字符型char.

  • char型数据用来表示单个字符,字符串用String;
  • 使用时字符用单引号,即char b1='a';
  • 可以包含世界上所有的书面语字符

另外 ,char类型是可以参与运算的,因为char类型在字符编码表中有对应的数值。在上个世纪60年代,美国制定了一套字符编码,对英语字符与 二进制位之间的关系, 做了统一规定。这被称为ASCII码。 ASCII码一共规定 了128个字符的编码,比如空格“SPACE”是32(二进制 00100000),大写 的字母A是65(二进制01000001)。这128个符号(包括32个不 能打印出来的 控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。当然这套字符编码 有一个缺点就是它不能表示所有的字符。后来便有了Unicode编码,它将世界上所有的符号都收纳了进去。

  • 注意,在Java运算中,char类型是可以运算的,原因就是char在编码表中都有对应的值。

例如 char='a'+1 ,在这里先将’a'提升为Int,a为97,即此代码的运行结果为98,对应字符是b.

基本数据类型转换

在java中除了boolean类型 之外,其余基本类型都可以相互转换。

转换分为默认转换和强制转换。

默认转换:各个基本数据类型在运算中相互转换

转换原则:小容量类型默认转换为大容量类型。数据类型容量大小排序byte、short、char < int < long  < float < double;另外,byte,short,char之间不会相互转换,在计算时会先转换为int类型。容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造 成精 度降低或溢出;使用时要格外注意。

有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的 那一 种数据类型,然后再进行计算。

当然,上一篇提到float占4个字节,long占8个字节。那么我们可能会有一个疑问:为什么4字节的float比8字节的long容量大呢?

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

 运算符

算术运算符:+,-,*,/,%,++,--

字符串运算符:+

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

逻辑运算符:!,&,|,&&,||

赋值运算符:+=,-=,*=,/=

条件运算符

位运算符

算术运算符

运算符          运算      范例      结果
+正号+33
-负号b=4,-b-4
+1+12
-1-10
*1*11
/1/11
%取余7%52
++

自增(前)先运算后取值

自增(后)先取值后运算

a=2,b=++a

a=2,b=a++

a=3,b=3

a=3,b=2

--

自减(前)先运算后取值

自减(后)先取值后运算

a=2,b=--a

a=2,b=a--

a=1,b=1

a=1,b=2

+字符串相加 "hel"+"llo""hello"

逻辑运算符 

“&”和“&&”的区别:

单&时,左边无论真假,右边都进行运算;  

双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算  “|”和“||”的区别同理,||表示:当左边为真,右边不参与运算

赋值运算符

符号:= 。 当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原 则进行处 理。 扩展赋值运算符: +=, -=, *=, /=, %=

 条件运算符

语法:

  •  (条件表达式)? 表达式1:表达式2;
  • 条件表达式结果为true,运算后的结果是表达式1; 为false,运算后的结果是表达式2

位运算

 控制台输入

使用标准输入串System.in 使用Scanner取得一个字符串或一组数字 在新增一 个Scanner对象时需要一个System.in对象,因为实际上还是 System.in在取得 用户输入。

● Scanner的next()方法用以 取得用户输入的字符串; nextInt()将取得的输入字 符串转换为整数类型;

● 同样,nextFloat()转换成浮点型; nextBoolean()转 换成布尔型。

● 例: System.out.print("输入"); Scanner scan = new Scanner(System.in); String read = scan.next (); System.out.println("输入数据:"+read); 在使用Scanner对象时,需要在文件头带入 java.util.Scanner; 写法为: import java.util.Scanner 

控制语句

条件语句:if,if ·······else,if·····else if,if···else if···else if···else,switch;

循环语句:for  ,while,do while;

  • if ( 条件 ) { //语句1 }else { //语句2 }
  • if-else语句的另一种形式为: if (条件1){

语句1; }

else if (条件2){

语句2; }…… }

else if (条件N){

语句N; }

switch语句

switch语句:多分支选择语句,根据表达式的值,来执行多个操作中的一个。

switch (表达式){ case value1: 语句序列1;

[break]; …………

case valueN: 语句序列N;

[break];

[default : 缺省语句;] }

表达式可以是byte、short、int、char、枚举类型。JDK 7以后,可以使用String类 型; case语句后面只能使用常量表达式; case后的值不能重复; 某个case分支如果没有提供break语句,则继续执行下一个case后的语句; 当表达式的值与任一case子句中的值都不匹配时,将执行default后面的语句;如果 没有default子句,则程序直接跳出switch语句

循环

循环语句功能 :在某些条件满足的情况下,反复执行特定代码的功能

循环语句的四个组成部分 :循环变量的初始化 循环条件部分 循环体部分 循环变量的更新

while & do while语句

while 语句为如下形式:

例如,求100以内的数和
*/
public static void main(String[] args) {
    int i = 1;		//第一个数
    int sum = 0;    //100以内整数的和
    while (i <= 100){
	sum += i ;
	i++;
    }
    System.out.println(sum);
}

do while 语句为如下形式:

求100以内的整数和
*/
public static void main(String[] args) {    
    int i = 1;	//第一个数    
    int sum = 0; //100以内整数的和    
    do{sum = sum + i;
    i++;    
    }while(i<= 100);   
         System.out.println(sun)
}

For循环语句

for 语句为如下形式:

/*
例如,求100以内的整数和
*/
public static void main(String[] args) {
    int sum = 0;    //100以内整数的和
    for (int i = 0;i <= 100 ;i++ ){
        sum = sum + i;
    }
    System.out.println(sum);
}
 
  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值