java小白训练营day02-基础语法:关键字+变量+常量+运算符
Posted 长安紫薯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java小白训练营day02-基础语法:关键字+变量+常量+运算符相关的知识,希望对你有一定的参考价值。
关键字
java中“写死”了很多固定单词,不能变,都小写,这些单词你不能使用。
标识符
java中开发者可以自己命名名字,这些名字就叫做标识符。
变量
int x = 10;
int y = 2;
x/y
y = 5; //变化的量就称为变量
常量
不变化的量。
package test;
import org.junit.Test;
//需求:测试变量和常量,学会演算
public class TestVar {
@Test //测试常量
public void finaltype() {
//final修饰变量就变成常量,常量不允许修改
final int z = 100;
/*
* The final local variable z cannot be assigned.
* 局部变量z不能被分配内存空间
* It must be blank and not using a compound assignment
*/
//z = 200;
System.out.println(z);
//常见常量,习惯大写
final double PI = 3.1415926;
final double P = 6.18;
final String SYSTEM_NAME = "京淘电商";
}
@Test //测试变量
public void var() {
int x = 10;
int y = 2;
//Duplicate local variable y 局部变量y定义了多个
//原因:java要求在一个方法体内只能定义一个同名变量
//局部变量不能定义两次,不能重名
//int y = 5; //修改了y的值,并且覆盖
y = 5; //修改了y的值,并且覆盖
System.out.println(x/y); //10/5=2
}
}
运算符
数学:x+y=z,x,y,z操作符,+运算符,=赋值
package test;
import org.junit.Test;
//需求:算术运算符 +-*/ %
public class TestArith {
@Test
public void arith() {
int x = 10;
int y = 2;
System.out.println( x + y ); //12
/*
* 字符串中内容原样输出
* 如何判断+是字符串连接符还是数学+呢?
* 如果+号两边有一边是字符串,结果就是字符串
*/
System.out.println("x+y="+x+y); //x+y=102
System.out.println("x+y="+(x+y)); //x+y=12
}
}
算术运算符
package test;
import org.junit.Test;
//需求:算术运算符 +-*/ %
public class TestArith {
@Test
public void arith() {
int x = 10;
int y = 2;
System.out.println( x + y ); //12
/*
* 字符串中内容原样输出
* 如何判断+是字符串连接符还是数学+呢?
* 如果+号两边有一边是字符串,结果就是字符串
*/
System.out.println("x+y="+x+y); //x+y=102
System.out.println("x+y="+(x+y)); //x+y=12
System.out.println("x-y="+(x-y));
System.out.println("x*y="+ x*y ); //*优先级高+
System.out.println("x/y="+ x/y ); //除优先级高+
//取余,余数
x = 11;
System.out.println("x%y="+ x%y);
}
}
package test;
import org.junit.Test;
//需求:测试++自增(每次+1)和--自减(每次-1)
public class TestSelf {
@Test
public void self() {
int i = 10;
i++; //i=i+1 缩写
System.out.println(i);
int j = 100;
System.out.println(j++); //100,先打后加,101
System.out.println(++j); //102,先加后打,102
System.out.println(--j); //101,先减后打,101
System.out.println(j--); //101,先打后减,100
}
}
赋值运算符
package test;
import org.junit.Test;
//需求:赋值运算符 =、+=、-=、*=、/=
public class TestAssign {
@Test
public void assign() {
//赋值语句特点:先执行右边
int i = 10+20-30*2; //表达式
System.out.println("i=" + i);
i += 5; //i=i+5
System.out.println(i);
i -= -10; //i=i - -10
System.out.println(i);
i *= 0; // i=i*0
System.out.println(i);
i /= 2; // i=i/2;
System.out.println(i);
}
}
关系运算符
package test;
import org.junit.Test;
//关系运算符:==相等和!=不等
public class TestRelation {
@Test
public void relation() {
int a = 10;
int b = 20;
//判断是否相等,结果布尔表达式,true/false
System.out.println(a == b); //false
System.out.println(a != b); //true
}
}
逻辑运算符
package test;
import org.junit.Test;
//逻辑运算符:与&、或|、非!、异或^
public class TestLogic {
@Test //利用穷举法,通过结果来记忆
public void logical() {
//与 &,特点:两边条件都成立结果才成立
System.out.println(true & true); //t
System.out.println(true & false); //f
System.out.println(false & true); //f
System.out.println(false & false); //f
System.out.println("--短路与--"); //空行
//短路与 &&,前面条件不成立false,后面无需再执行,推荐使用,速度快
System.out.println(true && true); //t
System.out.println(true && false); //f
//Dead Code 死代码,不会执行的代码
System.out.println(false && true); //f
System.out.println(false && false); //f
System.out.println(); //空行
//或 |,特点:有一边成立结果就成立
System.out.println(true | true); //t
System.out.println(true | false); //t
System.out.println(false | true); //t
System.out.println(false | false); //f
//短路或 ||,特点:条件结果true,后面的条件就无需判断,推荐使用,速度快
System.out.println("--短路或--");
System.out.println(true || true); //t
System.out.println(true || false); //t
System.out.println(false || true); //t
System.out.println(false || false); //f
System.out.println();
//非,!,特点:取反
System.out.println(!true); //f
System.out.println(!false); //t
System.out.println();
//异或,^,特点:两边相同结果为false,两边不同结果为true
System.out.println(true ^ true); //f
System.out.println(true ^ false); //t
System.out.println(false ^ true); //t
System.out.println(false ^ false); //f
}
}
三目运算符
package test;
import org.junit.Test;
/*
* 需求:三目运算符(三元)
* 格式:布尔表达式 ? 值1(表达式) : 值2(表达式)
* 特征:1 ? 2 : 3(死记)
* 结果:如果布尔表达式结果为true,返回值1,false,返回值2
*/
public class TestVar3 {
@Test //两个数求最大值
public void max2() {
int x = 10;
int y = 5;
int max = (x>y)?x:y;
System.out.println("x="+x+",y="+y+", 最大值:"+ max);
}
@Test //三个值求最大值
public void max3() {
int x = 10;
int y = 200;
int z = 30;
//第一种思路,把max和z在进行三目,然后结果给max
int max = (x>y)?x:y; //临时保存中间值,先求出x和y中的最大值
max = (max>z)?max:z; //利用中间变量和最终值进行比较
System.out.println("最大值:"+max);
//第二种思路,一行应用两次三目
int max2 = (x>y)?x:y>z?(x>y)?x:y:z; //结构太乱了,推荐上面的方法
System.out.println("最大值:"+max2);
}
}
小结
1、测试方法比较main方法和junit区别
1)main是java自身结构,junit第三方公司开发
2)main是程序application执行而生(用户),junit测试方法是为测试而生(开发)
3)main约束,一个类中只能有一个main方法(一个),一个类中可以有多个test方法(多个1~n)
2、怎么使用junit单元测试?
1)寻找junit.jar(官网,百度下载,资深程序员(架构师、高级程序员)给我们)开发工具自带(eclipse)
2)导包 import org.junit.Test(导包后面的内容可以自己写-手动,也可以利用eclipse导入-自动选择-推荐)
3)在类中给单元测试方法戴个帽子 @Test(注解@开头,特殊类)看着怪怪的,开发效率非常高,代码量少
开发时,写好类中的单元测试方法,最后给它带帽子,通过错误提示菜单,把它们都加进来
jar一个项目加载一次(项目)
import 一个类导包一次(类)
3、导包
1)import org.junit.*; //把org.junit包路径下的所有的类都导入(类加载器,加载jvm中)
方便,会多加载无用的到内存中,浪费内存
2)import org.junit.Test; //只加载Test.class这个类
推荐,高效,速度快
关键字和标识符
1)关键字:java定死的单词,这些单词都小写,开发者不许用,50+多个
注意一些特殊字:java、test、const(常量)不要使用
作业:晚上把关键字写10遍,死背记住
2)标识符:开发者自定义名称
习惯方法内的局部变量:
- a,b,c,x,y,z,i,j,k,m 小写,一个字母;
- 小驼峰 name,age,address,firstName,secondName
习惯常量的:
- 全大写,增加final修饰符 double PI=3.14; String SYS_NAME=“京淘电商”;
变量和常量的区别
1)变量:变化的量,变量可以进行多次赋值,赋值后会覆盖之前的值(丢了)
2)常量:不变化的量,一旦赋值就无法进行修改。(安全,修改不了)
运算符
以上是关于java小白训练营day02-基础语法:关键字+变量+常量+运算符的主要内容,如果未能解决你的问题,请参考以下文章
java小白训练营2109-day02-基础语法:关键字+变量+常量+运算符