java变量与运算符

Java变量

1、java中的变量

   1.变量先定义,后使用。

   2.定义:①声明,②赋值

   3.定义的三要素:数据类型 变量名 初始化值

2、变量有以下两种定义方式:

方式一:数据类型 变量名 //声明

变量名 = 初始化值//赋值

int myInt1;// 声明

System.out.println(myInt1);//使用

myInt1 = 2;// 赋值

System.out.println(myInt1);//

使用int myInt2, myInt3;// 声明:

一次声明多个myInt2 = 3;// 赋值myInt3 = 4;// 赋值

System.out.println(myInt2);//

使用int myInt4, myInt5;// 声明

myInt4 = myInt5 = 7;// 连续赋值,使用不多

方式二:数据类型 变量名 = 初始化值;

int myInt6 = 9;int myInt7 = 9, myInt8 = 10;// 一次定义多个

3、变量的类型:基本数据类型(8种byte short int long float double char boolean)、引用数据类型(String)

1、整数类型:byte(1字节) short(2字节) int(4字节) long(8字节)

byte b = 12;

short s = 12;

int i = 12;

long l = 12l;//long类型变量,值得末尾加L或l

2、浮点类型(带小数):float单精度(4) double双精度(8)

float f = 12.3f;//声明float类型,末尾要加F或f

 double d = 12.3;

3、字符型:char(2),

有3中表现形式①、用''单引号括起来的单个字符char c = 'a';c = '中';

②转义字符\c = '\n'; //转义字符,/把n转义为换行c = '\t';//代表制表符Tabc = '\"';

③直接使用 Unicode 值来表示字符型常量c = '\u4e2d';//Unicode字符做运算

char c2 = 'A';//65

System.out.println(c2 + 1);

c2 = 'a';//97

System.out.println(c2 + 1);

引用数据类型:String,可以取值null

String str = "中国";

str = null;

基本数据类型和引用数据类型的区别:基本数据类型 内存中存储的是值

引用数据类型 内存中存储的是地址,此地址指向对象;

4、类型转换

1)基本数据类型之间的转换:boolean不可以转换为其它

基本数据类型容量从小到大(参考图)char-->int-->long-->float-->doublebyte-->short-->

①自动类型转换(隐式转换)定义:容量小的数据类型自动转换为容量大的数据类型

②强制类型转换定义:自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符()

2)字符串与基本数据类型之间的转换

①基本数据类型==>字符串:通过连接运算符+,基本类型的值将自动转化为字符串类型

②字符串==>基本数据类型:通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型如:

 String a = “43”; int i = Integer.parseInt(a);

容量从小到大char-->int-->long-->float-->doublebyte-->short-->

 *///自动类型转换:容量小的转换为容量大的数据类型//

1)赋值运算int i = 2;byte b = 1;i = b;System.out.println(i);short s = 3;i = s;System.out.println(i);char c = 'a';

i = c;

System.out.println(i);//

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

 int i2 = 1;

byte b2 = 2;

i2 = b2 + i2;

char c2 = 'b';

i2 = c2 + i2;//注意:byte、short、char之间不会相互转换,他们三者在计算时首先转换为int类型

    i2 = b2 + c2;//强制类型转换:容量大的转换为容量小的

long l = 12345L;

int i3 = (int)l;

byte b3 = (byte)i3;

System.out.println(Byte.MAX_VALUE);

System.out.println(Byte.MIN_VALUE);

System.out.println(b3);//注意:可能造成精度降低或溢出//-------------------------//

基本数据类型===>字符串

int i4 = 3;

String str = i4 + "";

字符串===>基本数据类型

str = "2";i4 = Integer.valueOf(str);

System.out.println(i4);}

5、运算符1)算数运算符:+(正号、加、字符串相加)-(负号、减)*(乘)/(除)%(取模)++ --

//除/int i = 12;

int j = 5;

int k = i / j;

System.out.println(k);//整数之间做除法时,只保留整数部分而舍弃小数部分

double d = i / j; //i / j 结果为2 int,把int赋值给double,自动类型转换System.out.println(d);//2.0

d = (double)i / j; //(double)i强制类型转换为double,double和int做运算System.out.println(d);//2.4

d = i / 5.0;System.out.println(d);//2.4

//取模%(取余数)

k = 13 % 5;

System.out.println(k);

//++

i = 1;

i++;//i = i + 1;

System.out.println(i);

++i;//i = i + 1;

System.out.println(i);

i = 1;

k = i++;//k=i;i=i+1;

System.out.println(k);

i = 1;

k = ++i;//i=i+1;k=i;

System.out.println(k);

//--

i = 2;

i--;

System.out.println(i);

i = 2;

--i;

System.out.println(i);

i = 2;

k = i--;//k=i;i=i-1;

System.out.println(k);//2

i = 2;

k = --i;//i=i-1;k=i;

System.out.println(k);//1

//字符串相加+

String str = "hel" + "lo";

System.out.println(str);

2)赋值运算符

=:当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。

支持连续赋值。例如int i; int j; i=j=1;

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

public class TestAssign

 {public static void main(String[] args) {

int i,j;

i = j = 1;

int a = 10;

a = a + 3;

System.out.println(a);

a = 10;

a += 3;

System.out.println(a);

i = 13;

i = i % 5;

i = 13;

i %= 5;

boolean b = false;

if(b = true) { //b = true;if(b)

System.out.println("b是true");

} else {

System.out.println("b是false");}}}

3)比较运算符(关系运算符)

运算符        运算        范例        结果

==           相等于        4==3      false

!=             不等于      4!=3       true

<                小于        4<3         false

>                  大于      4>3          true

<=              小于等于   4<=3(4<3或4==3) false

 >=            大于等于    4>=3(4>3或4==3) true

instanceof检查是否是类的对象"Hello" instanceof  String true

说明:比较运算符的结果都是boolean型;比较运算符“==”不能误写成赋值运算符“=”

public class TestCompare {

public static void main(String[] args) {

boolean b;b = (4 == 3);

System.out.println(b);

System.out.println(4 == 3);

b = (4 != 3);

b = 4 < 3;

 b = 4 > 3;

 b = 4 <= 3;

   b = 4 >= 3;

System.out.println(b);

b = "hello" instanceof String;

System.out.println(b);

int i = 13;

//判断i是否是偶数

b = (i % 2) == 0;b = (i % 2) != 1;

//判断i是否是奇数

b = (i % 2) != 0;b = (i % 2) == 1;

//判断i是否能被3整除

b = (i % 3) == 0;/

/判断i是否能被7整除

b = (i % 7) == 0;

int s = 10;int t = 5;

//判断s是否能被t整除

b = (s % t) == 0;

4)逻辑运算符

&逻辑与      |逻辑或         !逻辑非

&&短路与       ||短路或      ^逻辑异或

说明:逻辑运算符用于连接布尔表达式,结果都是boolean型,也就是要么是true,要么是false

运算结果:

a        b            a&b             a&&b            a|b                  a||b            !a            a^b

 true    true         true               true            true               true             false       false

true     false      false              false             true              true             false        true

false     true        false             false            true             true             true          true

false      false       false            false            false            false           true         false

 public class TestLogic {

public static void main(String[] args) {

boolean a = false, b = true;

System.out.println(a && b);//&&、 &结果相同

System.out.println(a || b);//|| 、|结果相同

System.out.println(!a);

System.out.println(a^b);

int x = 5;//x> 3) && (x < 6);

System.out.println(result);

System.out.println((x == 3) || (x == 5));//true

 System.out.println((x == 3) && (x == 5));

System.out.println(!(x == 3));

System.out.println(x <= 3);//x<3 || x==3

System.out.println((x == 3) ^ (x == 5));

 //&& &区别

/* * &&当左边表达式为false时,右边表达式不再进行运算

 * &两边表达式都要进行运算 *


a = true; b = true;

if((a = false) && (b = false)) {//a=false;if(a&&(b=false))

System.out.println("1:" + a + b);

 } else {

System.out.println("2:" + a + b);

}

if((a = false) & (b = false)) {//a=false;b=false;if(a&b)

System.out.println("1:" + a + b);

 } else {

System.out.println("2:" + a + b); }

//|| |区别 } }

 5)三元运算符

 public class TestSanYuan {

public static void main(String[] args) {

int x = 20; int y = 21; int max = (x>y)?x:y;

System.out.println(max);

/* 格式:(条件表达式)?表达式1:表达式2;

如果条件表达式结果为true,运算后的结果是表达式1;

 如果条件表达式结果为false,运算后的结果是表达式2;

 说明: 三元运算符要求必须返回一个结果,结果的数据类型、表达式1的数据类型、表达式2的数据类型要相同

*/ // max = (x>y)?"20":y; //三元运算符可改写为if-else语句,反之不行(if后的代码块可有多个语句)

 if(x>y) { max = x;

} else {

max = y;

}

//下面if语句无法改写为三元运算符

if(x > y) {

max = x;

System.out.println("x是大于y");

} else {

 max = y;

 }

 6)运算符的优先级 运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。上一行运算符总优先于下一行。 只有单目运算符、三元运算符、赋值运算符是从右向左运算的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 3,303评论 0 9
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 3,274评论 0 19
  • 新虎日精进447(5.17): 1.复习 2.上课4小时 3.考试2小时 4.打球3小时 本人天性如...
    新虎NewTiger阅读 150评论 0 0