美好的一天从新知识开始 CoreJava

2 篇文章 0 订阅
1 篇文章 0 订阅

Java语言基础

变量

变量代表的就是内存中的存储空间
变量的定义:数据类型 变量名; eg: int a;
变量的赋值:==变量名 = 值; == eg: a = 5;
同时定义并赋值:数据类型 变量名 = 值; eg: int a = 5;
同时定义多个变量:int a,b,c,d; int a = 3,b = 4,c = 5,d;
java中变量属于强类型,变量的类型 必须和 变量中的数据的类型一致。

数据类型

基本数据类型 八个
	整型    <4 个>   byte  short   int   long 
	浮点型  <2 个>   float  double
	字符型  <1 个>   char    Unicode编码
	布尔型  <1 个>    boolean

整型

byte 1字节    ---------->    8个bit   敏感单元位
			1byte == 8bit    0 0000000  256种组合
			用第一个 bit 位置来记录符号   0正数  1 负数
	数值范围:-2的7次方 ~ 2的7次方-1 (-128 ~ 127)
short 2字节 == 16bit    65526种组合   
			数值范围:-32768 ~ 32767

int    4字节 == 32bit  
			数值范围:-2147483648 ~ 2147483647

long  8字节 == 64bit
			注意:字面量超出int范围时,字面量后面必须加" L "或" l "

浮点型

float  4字节 == 32bit   单精度类型
			注意:浮点型的字面值默认double类型,float类型赋值时,字面值后必须加" F "或" f "

double  8字节 == 64bit 双精度类型

字符型

char  2字节  数值范围:0 ~ 65535  存储Unicode码(万国码)  支持中文

布尔型

1字节 字面值只有true 和 false 
			注意:boolean 不参与任何运算和类型转换
引用数据类型
	数组     类class(抽象类 abstract class)  接口interface    枚举enum    注解@interface
String  SUN公司提供的一个类
		String str = "beijing";
		字面值使用成对双引号引起来   零 ~ 多个字符

基本数据类型的转换

java允许程序在运行时,根据数据类型的需要 改变数据的值
数据类型1 变量名1 <— (右边给左边赋值)数据类型2 变量2

同种数据类型之间可以直接进行赋值操作
数据类型不同的空间之间的赋值 ===> 转换问题
————— 基本类型 --------- 基本类型之间 可以直接转换<自动 强转>
————— 引用类型 --------- 引用类型之间 可以直接转换<自动 强制 — 上转型 下转型>
————— 基本类型 --------- 引用类型之间 不可以直接转换<间接 – 包装类/封装类>

long l = i;//i是int类型,在执行时,l是long类型,会自动调整右边的int为long类型后,再赋值(自动类型转换)
自动类型转换:右侧的所有数据 都能包含在左侧的数据类型中 (左侧的类型范围 大于 右侧的范围)
byte ---> short ---> int ---> long ---> float ---> double
char ---> int 
强制类型转换:右侧类型的所有数据 不能被完全包含在左侧的数据类型中(左侧类型的范围 小于 右侧的范围)
语法:类型1 变量1 = (类型1)值;
a>高字节数据 赋值给 低字节,需要强转,数据可能会损失
b>浮点数 赋值给 整数 ,需要强转,数据可能会损失
c>4种整数类型(带符号数) 和 char  (无符号数)转换时,需要强转
d>boolean 不能与其他类型之间发生转化

表达式和运算符

表达式:把 变量 和 字面值 通过运算符连接起来,形成的具有特写结果的一个算式。

表达式中的数据类型提升规则: a 运算符 b

  • 如果a 和 b 有一个double类型,则表达式的结果是double类型
  • 如果a 和 b 有一个是float类型,则表达式的结果是float类型
  • 如果a 和 b 有一个是long类型,则表达式的结果是long类型
  • 以上三种情况都不满足,则结果是int类型

运算符:用来指明对于操作数的运算方式

按操作数目分类:
	 单目       双目         三目
    a ++      a + b      (a > b)?x:y;
按运算符的功能来进行分类:
	1)算术运算符:+  -  *   /   %(取余运算)单目:++(自增)  --(自减)
			+ 操作数中有一个是String,则 + 变为字符串拼接字符
			a ++ 先用后加     a -- 先用后减
			++ a 先加后用     -- a 先减后用
	2)赋值运算符:=  赋值符号  将=右边的内容(值 引用) 存入=左边的变量空间内
				=  +=  -=  *=  /=   %=
		注意:复合赋值运算符 不会发生 类型的提升
	3)关系运算符: ==  !=  >  >=  <   <=
		关系运算符的结果是boolean.
		
			区分 === 区别:
				= 赋值符号 将=后面的结果(值 引用)存入=左边的变量空间内
				== 比较符号 比较 == 前面 和 == 后面的元素(值 引用)是否一致
	4)逻辑运算符:&逻辑与  ^逻辑或  !逻辑非   &&短路与   ||短路或
		逻辑运算符前后连接的两个都是 boolean 的值 最终的结果还是boolean
	一元逻辑运算符
		&逻辑与  	可以理解为中文的"和","并且"意思  &前后两个条件必须同时满足 最终才为true
		|逻辑或   	可以理解为中文的"或者"  | 前后两个条件只要有一个满足 最终就为true
		^逻辑异或   	前后两个表达式只要结果不相同 最终结果就为true
		!逻辑非   	可以立即为中文的"不"   将原来的结果取反
	二元逻辑运算符
		&&  逻辑与 —— 两个数都为true结果才为true,有一个为false结果即为false
			短路与 —— &&运算的第一个操作数是false,则右侧的表达式不再计算,自动发生短路
		||  逻辑或 —— 两个数都为false结果才为false,有一个为true则结果为true
			短路或 —— ||运算的第一个操作数是true,则右侧的表达式不再计算,自动发生短路
	5)三元运算符/条件运算符: 布尔表达式?1:2  (参与操作的数有三个构成)
		计算布尔表达式的值,如果是true ,则结果是值1 ; 如果为false ,则取值2 
	6)位(bit)运算:&按位与 |按位或 ^按位异或 ~按位取反 <<按位左位移 >>按位右位移  >>>按位右位移(无符号)
		

运算符的优先级:
初单算关逻条赋
() 单目 算术 关系 逻辑 条件 赋值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值