202106小白训练营day02-java基础语法

Posted 长安紫薯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了202106小白训练营day02-java基础语法相关的知识,希望对你有一定的参考价值。

编程语言最重要是编程思想

基础语法

关键字:在java语言中写死的单词就叫关键字,这些是Java语言固化,内置的,不允许改变。这些关键字我们不能去定制。java中定义50+个关键字。
标识符:在java语言中开发者自己定义名称,这个名称就叫标识符。
变量和常量:自定义变化的量,常量不能变化。
运算符:+、-、*、/、%取余
jUnit :单元测试,main

关键字

java中规定好了关键字,了解所有的关键字,必须背过。
在这里插入图片描述

标识符

自己来定义名称
1)简单名称:单个字母 a,b,x,y,a1,a2
2)复杂名称:驼峰规则 name,age,FirstName,lastName
3)特殊字符:a$,a_name

变量

变化的量

常量

package cn.tedu.syntax;

//变量和常量练习
public class Var {
	public static void main(String[] args) {
		// 1.定义变量
		int a = 0;	//基本类型变量,必须设置初始化值
		//The local variable a may not have been initialized
		//局部变量,在方法体内定义变量,局部变量必须初始化
		System.out.println(a);	//0

		// 2.变量赋值
		//Duplicate local variable a
		//局部变量不能重复定义
		a = 10;		//再次赋值,原有的值被覆盖
		System.out.println(a);	//10

		// 3.调用变量
		a = 20;
		System.out.println(a);
		
		// 4.修改变量的值
		a = 300;
		System.out.println(a);
		
		//常量
		//The final local variable b cannot be assigned.
		//局部变量b,不能被再次设置的新的值
		//It must be blank and not using a compound assignment
		//必须是空,不能是表达式
		final int b = 10;
		//b = 20;
		System.out.println(b);
		
		//什么时候使用常量,习惯全大写,多个单词使用下划线隔开
		final double PI = 3.14;	//圆周率
		final double x = 6.18;	//黄金分割率
		final String SYS_NAME = "京淘电商";
	}
}

运算符

数据进行处理,数学计算,赋值,比较。。。
在这里插入图片描述

算术运算符

package cn.tedu.syntax;

//算术运算符
public class Arth {
	public static void main(String[] args) {
		// 加法
		int a = 10;
		int b = 20;

		// +在Java中赋予2个含义,数学加号,字符串拼接符
		System.out.println("a+b=" + a + b);
		// a+b=1020
		System.out.println("a+b=" + (a + b));
		// a+b=30

		// 减法
		// The operator - is undefined for
		// the argument type(s) String, int
		// 操作符-,不能执行字符串和整数减法
		// System.out.println("a-b=" + a-b);
		System.out.println("a-b=" + (a - b));

		// 乘法,*的优先级高于+字符串连接符,所以不需要小括号
		System.out.println("a*b="+ a*b);
		
		// 整除,它不能支持辅导数,得到结果为0,而不是0.5
		System.out.println("a/b="+ a/b);
	}
}

取余

package cn.tedu.syntax;

//取余 %
public class Mod {
	public static void main(String[] args) {
		//一个数字是偶数还是奇数
		//余数0偶数,余数1是奇数
		int n = 9;
		System.out.println("余数:"+ n%2);
	}
}

自加自减

package cn.tedu.syntax;

//java特点自加++,自减--
public class Self {
	public static void main(String[] args) {
		// 自加++,加1
		int x = 10;
		// x++; //简写
		x = x + 1;
		System.out.println(x);

		int y = 10;
		System.out.println(y++); // 11,10,先打后加
		System.out.println(++y); // 12,12,先加后打

		int z = 10; //演算的过程
		System.out.println(++z); // 先加后打,11
		System.out.println(z++); // 先打后加,11
		System.out.println(--z); // 先减后打,11
		System.out.println(z--); // 先打后减,11
	}
}

相等不等

package cn.tedu.syntax;

//比较运算符
//比较结果布尔值,只可能是两个结果
//要么true,要么false
public class Equ {
	public static void main(String[] args) {
		int x = 10;
		int y = 20;
		
		//是否相等
		//==代表比较运算符,结果布尔值
		//=赋值语句
		System.out.println(x==y);	//false
		System.out.println(x=y);	//20
		
		//不等
		System.out.println(x==y);	//true
		System.out.println(x!=y);	//false
		
		//取反
		boolean b = true;
		System.out.println(b);		//true
		System.out.println(!b);		//false
		System.out.println(!!b);	//true
	}
}

比较

package cn.tedu.syntax;

//与或非案例,关系运算符
/*
 * 布尔表达式进行运算
 * 逻辑短路与
 * 逻辑短路或
 */
public class Compare {
	public static void main(String[] args) {
		//与特点:有一边不成立就为false
		System.out.println(true && true);	//true
		System.out.println(true && false);	//false
		
		//Dead code?这个代码不会被执行
		//与前面布尔结果为false,后面的代码已经不用判断
		System.out.println(false && true);	//false
		System.out.println(false && false);	//false
		
		//或特点:有一边为成立就为true
		System.out.println(true || true);	//true
		System.out.println(true || false);	//true
		System.out.println(false || true);	//true
		System.out.println(false || false);	//false
	}
}

三目表达式求最大值

package cn.tedu.syntax;

//java中唯一一个三个变量计算,三目表达式(三元)
//格式:布尔表达式 ? 第一个值 : 第二个值
//返回值:当布尔表达式结果为真true,返回第一个值
//		 当布尔表达式结果为假false,返回第二个值
public class ThreeVar {
	public static void main(String[] args) {
		//两个值求最大值
		int x = 100;
		int y = 2000; 
		//三目表达式
		int max = x>y ? x : y;
		//字符串内容原样输出
		System.out.println("x="+x+",y="+y+", 最大值:"+max);
		
		//三个值求最大值,两次使用三目表达式来实现
		int z = 300;
		//方法1,使用两次三目表达式方式实现
		max = max>z ? max : z;
		System.out.println("x="+x+",y="+y+",z="+z+", 最大值:"+max);
		
		//方法2,一行三目表达式实现
		max = (x > y ? x : y) > z ? (x > y ? x : y) : z;
		System.out.println("最大值:" + max);
	}
}



赋值运算符

package cn.tedu.syntax;

//赋值运算符,+=、-=、*=、/=
public class Equ2 {
	public static void main(String[] args) {
		// +=
		int a = 10;
		int b = 20;
		// a=a+b
		System.out.println(a += b); // a=a+b // 30
		System.out.println(a); // 30
		System.out.println(b); // 20
		
		//换行
		System.out.println();

		System.out.println(a -= b); // a=a-b //10
		System.out.println(a); // 10
		System.out.println(b); // 20
		
		System.out.println();

		System.out.println(a *= b); // a=a*b //200
		System.out.println(a); // 200
		System.out.println(b); // 20
		
		System.out.println();

		System.out.println(a /= b); // a=a/b //10
		System.out.println(a); // 10
		System.out.println(b); // 20
	}
}

单元测试

package test;

//导包可以手写
import org.junit.Test;

/*
 * 要求:
 * 1、测试有单独包路径
 * 2、测试类的名称,习惯前面加Test
 * 3、JUnit单元测试是第三方技术 jar包(是class类集合),
 * import java不会自动加载的,需要自己去加载
 * 		a.找到jar(eclipse直接提供)
 * 		b.import导包
 * 		c.测试方法多个,戴帽子 @Test 注解
 * 4、测试方法
 * 		a.必须是公开 public
 * 		b.没有返回值 void
 * 		c.没有参数
 * 		d.多个方法执行是没有顺序的
 */
public class TestJUnit {
	// 主方法
	public static void main(String[] args) {
		System.out.println("main");
	}

	// 单元测试方法
	@Test
	public void junit() {
		System.out.println("junit");
	}
}

测试加等减等乘等除等

package test;

import org.junit.Test;

/*
 * 注意:
 * 默认运行单元测试方法会执行这个类中的所有的带帽子@Test方法
 * 能否只执行一个方法?双击选中某个方法名,右键执行
 * 能否执行指定多个方法?只能全部,要么只是一个
 * 执行方法没有先后顺序
 */
public class TestEqu2 {
	@Test //加等
	public void add() {
		int a = 10;
		int b = 20;
		System.out.println("a+=b:"+(a+=b));  //30
	}
	
	@Test //减等
	public void sub() {
		int a = 100;
		int b = 200;
		System.out.println("a-=b:"+(a-=b));
	}
	
	@Test //乘等
	public void multi() {
		int a = 1000;
		int b = 10;
		System.out.println("a*=b:"+(a*=b));
	}
	
	//编译检查的是语法,逻辑错误,
	//编译器无法判断,只能开发者判断
	@Test	//除等
	public void div() {
		int a = 2000;
		int b = 100; 
		System.out.println("a/=b:"+(a/=b));
	}
	
}

测试三目表达式

package test;

import org.junit.Test;

//单元测试三目表达式
public class TestThreeVar {
	@Test
	public void threeVar() {
		//格式:布尔表达式?值1:值2
		int x = 100;
		int y = 200;
		int max = x<=y ? y : x;
		System.out.println("最大值:"+max);
	}
}

测试自加自减

package test;

import org.junit.Test;

//测试自增和自减
public class TestSelf {
	@Test // 自增
	public void add() {
		int i = 10;

		// 屏蔽多行代码,一起注释快捷键:Ctrl+/
//		i = i + 10; // 步长10
//		i = i + 10; // 步长10
//		i = i + 10; // 步长10
//		i = i + 10; // 步长10

		i++;
		i++;
		++i;
		++i;
		System.out.println(i); // 14
	}

	@Test
	public void sub() {
		int i = 10;
		// 步长1
		i--;
		--i;
		i--;
		--i;
		System.out.println(i); // 6
	}
}

小结

1)关键字:每个语言定死部分,固化,开发者不是随意使用,使用在固定地方
修饰类:public static class interfac abstract
关键字全小写,语法高亮
2)标识符:语言开发者可以自行规定的内容,变量名称,类名,项目名称,不能和关键字冲突,3个特点,简单(i,j,k,m,n,a,b,c,x,y,z)一个字母,小写,多个单词(toString 小驼峰,ThreeVar大驼峰),特殊($,_)
3)变量:计算机就是发挥它快速反复计算,大量计算,大数据,数据就存在变量中。
4)常量:一旦初始化后就不能再次赋值。final int i;声明 i = 10;初始化,只能初始化一次。
5)变量只是用来存储数据(内存)光存数据到内存中是没有任何意义,目的编程,实现用户业务逻辑,a+b,怎么去计算最终实现业务逻辑,通过运算符!
6)运算符
7)单元测试jUnit
灵活在哪里?main方法一个类只能有一个唯一的,单元测试方法可以支持多个
main方法要执行多个测试,就得相互屏蔽代码;
jdk自己出的测试工具 assert 断言,被junit替代
8)怎么使用junit
a. 找到jar包,eclipse自带junit
b. 导包 import org.junit.Test;(只导入具体某个类) import org.junit.*; (通配符,包路径下所有的类)
c. 标识,戴帽子 @Test 注解
9)junit单元测试类有什么约束?

以上是关于202106小白训练营day02-java基础语法的主要内容,如果未能解决你的问题,请参考以下文章

202106小白训练营day04-java程序结构分支循环异常

202106小白训练营day01-java第一个案例HelloWorld

202106小白训练营day03-java数据结构

202105小白训练营-day02 java基础

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

202105班小白训练营 小白学java