第六章 Java编程基础

一、变量与标识符

1、什么是变量

  没有固定的值,可以改变的数。
  系统为程序分配的一块内存单元,用来存储各种类型的数据,根据存储的数据类型不同,有不同类型的变量,变量名标识内存这数据的名称。

2、变量的分类

  a、按所属的数据类型划分:
     基本数据类型变量。
    引用数据类型变量。
  b、按被声明的位置划分:
    局部变量:方法或语句块内部定义的变量。
    成员变量:方法的外部、类的内部定义的变量。

3、标识符

Java对包、类、方法、参数和变量等命名时使用的字符序列叫做标识符
  1、标识符的命名规则
    a、由字母、数字、下划线_、和$组成
    b、不能以数字开头
    c、区分大小写
    d、长度没有限制
    e、不能是java中的关键字和保留关键字
  2、标识符的命名习惯
    以单词或单词组合来命名。
    a、驼峰命名法
    b、见名知意
     stringName 、 $wer_123

二、八种基础数据类型

1、字节 Byte

  字节是计算机文件大小的基本计算单位。
  1个字节(Byte)=8个位(Bit)
  Bit意思是"位"或"比特",是计算机运算的基础;二进制中的一比特,是二进制最小的信息单位,二进制可以用来表示一个简单的正负判断。
  单位换算
  1 Byte=8  Bit
  1 KB=1024 Byte
  1 MB=1024 KB
  1 GB=1024 MB
  1 TB=1024 GB
  1 PB=1024 TB
在内存计算过程中,字节少的的数据计算速度更快,

2、基本数据类型

数据类型关键字占用字节取值范围默认值
布尔型boolean不定值true、falsefalse
字节型byte1-128~1270
短整型short2-32768~327680
整型int4-214748364~2147483640
长整型long8-9223372036854775808~92233720368547758070
字符型char20~65535‘\u0000’ 代表空格
单精度浮点型float41.4E~3.4028235E380.0F
双精度浮点型double84.9E-324~1.7976931348623157E3080.0D

三、基本数据类型的声明

  定义变量的格式

//类型(byte) 变量名(a)加了等于符号,代表给声明的变量a赋值 (20)  
byte a = 20;
//使用字符型,当a1等于90的时候,打印时根据ascll码表输入字母Z
char  a1 =	90;

ascll 码表详细内容 点击查看

四、进制与转化

  计算机的进制通常有:十进制、二进制、八进制、十六进制

1、二进制

  计算机中的数据都是二进制数字进行保存,逢二进一
  如:十进制中的10在计算机中保存为二进制的1010

2、八进制

  java中八进制的数据以0开头,如:0123

3、十六进制

  二进制太长,所以在程序中一般喜欢用十六进制,基数为十六,逢十六进一,使用abcdef表示0~9的值。
  java中十六进制数据要以0x或者0X开头,如0X21D。
  十六进制转换二进制只需将每个十六进制数字替换为对应的四个二进制。

二进制十六进制二进制十六进制
0000010019
001111010A
001021011B
001131100C
010041101D
010151110E
011061111F
01117
10008

4、补码

  计算机内的二进制数值以补码形式表示。
  一个正数的补码和其原码形式是相同的。
  一个负数的补码是将该数绝对值的二进制形式,按位取反,再加1。
  二进制补码数值的最高位(最左位)是符号位:该位是0表示数值为正数,该位是1表示为负数。

十进制二进制
1000000000 00000000 00000000 00000000
-1011111111 11111111 11111111 11110110

案列

//-4  计算
 0000 0100
 1111 1011 这个地方 按位取反
 1111 0100 按位取反后再加 1

// -7  计算
0000 0111
1111 1000 这个地方 按位取反
1111 1001 按位取反后再加 1

  原因:使用补码可以将符号和其他位统一处理,同时减法也可以按照加法来处理,当两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

5、二进制、十进制转换

1、二进制转换十进制
  按权相加:把二进制数写成加权系数展开式,然后按十进制加法规则求和

在这里插入图片描述

   1101.01   二进制数据计算
   =8+4+0+1+0+0.25
   =13.25    十进制数据等于13.25

2、十进制转化二进制
  整数部分:除2取余,逆序排列
  小数部分:乘2取整,顺序排列


56.34  计算十进制数据56转换成二进制
整数部分
5722821
1420
720 
321
121
      0   1
   逆序排列  111001      十进制数据56转换成二进制值为111001 
            =32+16+8+0+0+1  
            =56
小数部分
0.34 
0.342 等于 0.68  
0.682 等于 1.36
0.362 等于 0.72
0.722 等于 1.44
0.442 等于 0.88
0.882 等于 1.76  
0.762 等于 0.52 
。。。。。
0.0101011100001010
十进制数据56.34 等于二进制数据
111001.0101011100001010

五、基本数据类型的转换

1、自动类型转换

  容量小的类型自动转换成容量大的数据类型

可能丢失精度
byte 1个字节
short 2个字节
int 4个字节
char 2个字节
long 8个字节
float 4个字节
double 8个字节

  byte 、short、int 3种类型在计算时会转换成int类型计算。
  float 和 double 属于近似值,byte 、int 、short、long 属于精确值。精确值转换成近似值可能丢失精度

byte  a = 5;
short b=a ;//把一个字节赋值给一个短整型变量,自动转换
int   c = b;//把一个短整型赋值给一个整形变量,自动转换
long  e  =c;

//精确值转换成近似值可能丢失精度
int num=21314235343999;
float num1=num;
System.out.println(num1)

2、强制数据类型转换

  容量大的类型转换成容量小的数据类型时,需要加上强制转换符;
  有可能造成精度降低或者数据溢出,谨慎使用
  boolea类型不能转换成其他数据类型

//byte 、short、int  3种类型在计算时会转换成int类型计算。
byte  a=10;
short b=20;
b=(short)(a+b);

//容量大的类型转换成容量小的数据类型时,需要加上强制转换符;
long num=100;
int num1=(int)num;

六、关键字

  48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while
  2个保留字(现在没用以后可能用到作为关键字):goto、const
  3个特殊直接量:true、false、null

七、 转义字符

符号说明
\n换行(LF),将当前位置移到下一行开头
\r回车(CR)将当前位置移到本行开头
\t水平制表(HT),跳到下一个TAB的位置
\ \代表一个反斜线字符’’\‘
\ *代表一个单引号字符
\ "代表一个双引号字符

        // \t:一个制表位,实现对齐功能
		System.out.println("北京\t天津\t重庆");
		
		// \\:输出一个\
		System.out.println("路径A\\路径B");

		// \":输出一个"
		System.out.println("小明说\"我要学Java\"");

		// \':输出一个'
		System.out.println("\'单引号\'");

		// \n:换行符
		System.out.println("小明\n小王\n小红");

		// \r:一个回车
		//注意:回车和换行不一样
		System.out.println("天津\r北京");
		

八、运算符与优先级

1、算术运算符

运算符描述示例结果
+加法1+23
-减法7-35
*乘法5*210
/除法8/42
%取余(取模)10%31
++自增(前,后)
自减(前,后)
  int  a =3;
  int  b =4;
  a=b++;//先赋值后自增
  System.out.println("a="+a); a=4
  System.out.println("b="+b); b=5;

  int  c =3;
  int  d =4;
  c=++d;//先自增后赋值
  System.out.println("c="+c); c=5
  System.out.println("d="+d); d=5;

2、赋值运算符

  将一个值赋给一个变量,运算顺序从左到右

运算符描述示例结果
=赋值a=10a=10
+=加等于a=2 , a+=4a=6
-=减等于a=2 , a-=3a=1
*=乘等于a=2 , a*=3a=6
/=除等于a=10, a/=3a=3
%=模等于a=10 , a%=3a=1

3、关系运算符

  比较两边的操作数,返回类型为booleam类型

运算符描述示例结果
==相等于a=1 , a==10false
!=不等于a=1 , a !=10true
<小于a=1 , a<10true
>大于a=1 , a>10false
<=小于等于a=1 , a<=10true
>=大于等于a=1 , a>=10false

4、逻辑运算符

  对booleam型结果的表达式进行运算,结果总是为booleam类型

运算符描述示例结果
&false & truefalse
Ifalse I truetrue
^异或false ^ truefalse
!! truefalse
&&短路与false && truefalse
II短路或false II truetrue

  在计算机中,非0既真,0为假
  逻辑或:或1则1
  逻辑与:全1才1

& 和 && 的区别
  & 在做逻辑运算时分别计算表达式两边的结果,再做&运算,在做位运算时&表示按位与。
  && 短路与运算,先计算左边的表达式,如结果是false,右边不会再计算,直接返回false。
  I 原理同上
  II 原理同上

5、位运算符

  对两个操作数中的每一个二进制都进行运算。

位运算符按位取反 ~按位与 &按位或 |按位异或 ^
示例
~10101100
01010011
10101101&
10011011
10001001
10101101 |
10011011
10111111
10101101 ^
10011011
00110110
说明按位取反有0则0,相同1则1有1则1相同为0,不同取1

6、位移运算符

   左移 :“a<<b;”将二进制形式的a逐位左移b位,最低位空出的b位补0。
   带符号右移 :“a>>b;”将二进制形式的a逐位右移b位,最高位空出的b位补原来的符号位。
   无符号右移 :“a>>>b;”将二进制形式的a逐位右移b位,最高位空出的b位补0。

九、分支语句

十、循环语句

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值