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-基础语法:关键字+变量+常量+运算符

java小白训练营day02-开发环境:基础语法:关键字+变量+常量+运算符+jUnit

java小白训练营day02-知识回顾

202105小白训练营-day02 java基础

java小白训练营day02-知识回顾

java小白训练营2019-day02-知识回顾