【小白学java】java语言基础(day02)

该系列课程详细讲解了Java开发环境的搭建、语言基础,包括关键字、变量和常量的使用,以及数据结构、流程控制、API工具类的运用。特别强调了面向对象的概念,如封装、继承、抽象和接口。此外,还深入探讨了各种运算符,如自增自减、关系运算符、逻辑运算符以及三目表达式。通过实例展示了如何在实际编程中应用这些概念和运算符。

课程链接:共六天

第一天:开发环境:初识java,搭建环境
第二天:语言基础:关键字、变量、常量、运算符
第三天:数据结构:基本类型、包装类型、引用类型(数组和对象)
第四天:流程控制:分支判断、循环迭代、异常处理
第五天:API工具类:字符串方法、身份证解析
第六天:面向对象:封装、继承、抽象、接口

标识符

关键字

在这里插入图片描述
在这里插入图片描述
关键字:不允许开发者修改的标识符
自定义标识符,变量和常量,开发者可以自己来定义名称。
使用最多自定义标识符就是来标识变量和常量
1)变量:变化的量,定义好变量可以再次赋值,可以赋值多次,之前的值就被覆盖
2)常量:final 变量,只能赋值一次,不能再次赋值,再次赋值会报错!

package cn.tedu.keywords;

//创建一个测试类,测试变量和常量
public class TestVar {
	static final String s1 = null;			//定义常量,初始化值null
	
	public static void main(String[] args) {
		//定义变量:变量类型 变量名称 = 值;
		int age = 30; //定义变量age,给它初始化30;
		System.out.println(age);			//30
		
		//访问变量,改变它的值
		//Duplicate local variable age 局部变量重复定义,局部变量在方法体内只能定义一次
		age = 40;		//第一次再次赋值
		age = 50;		//第二次再次赋值
		System.out.println(age);			//50
		
		//常量在变量写法基础上,给它增加一个修饰关键字 final
		final String s = "abc";		//字符串
		System.out.println(s);
		
		//The final local variable s cannot be assigned.  分配
		// It must be blank and not using a compound assignment
		//s = "123";	//常量不能再次赋值
		System.out.println(s);
		
		//s1 = "aaa";		//The final field TestVar.s1 cannot be assigned
		System.out.println(s1);
	}
}

数学不行,能不能学好计算机软件

1)不搞大数据算法,人工智能算法,数据挖掘工程师,
就可以学的很好。这类人不需要数学功能。
只需要懂:+加、-减、*乘、/整除、 % 取余
2)大数据算法、人工智能、财务报表、数据挖掘
要求数据功底非常好,统计学,计算机专业,机械制造、数学
概率论、离散数据、高数
第一类企业需求:99%,第二类企业需求:1%,薪资高。

关系运算符结果布尔类型,布尔值:true真,false假

package cn.tedu.keywords;

//取余算术运算符
public class TestMod {
	public static void main(String[] args) {
		//经典案例:判断一个数字为偶数或者奇数
		//对2取余,如果余数0-偶数;如果余数1-奇数
		int n = 8;
		int r = n % 2;		//对n数字进行取余2
		
		//如果+不论是左边还是右边有字符串,这个+就是连接符,
		//前面整数java底层会自动转换为字符串
		System.out.println(n + "%2=" + r);
	}
}

运算符

常见运算符

在这里插入图片描述

自增自减

package cn.tedu.keywords;

//自加++和自减--
public class TestSelf {
	public static void main(String[] args) {
		int n = 10;
		//把n加1后再赋值给n,
		//赋值语句是先执行右边,计算完结果,然后结果赋值给n
		//n = n +1;		//10+1
//		n++;				//等价上面n=n+1
//		++n;				//等价上面n=n+1
//		System.out.println(n);
		
		//注意演算过程
		System.out.println(n++);			//10,先打后加,n=11
		System.out.println(++n);			//12,先加后打,n=12
		
		System.out.println(--n);				//11,先减后打,n=11
		System.out.println(n--);				//11,先打后减,n=10
	}
}

关系运算符

package cn.tedu.keywords;

//关系运算符,运算的结果布尔值
public class TestEqu {
	public static void main(String[] args) {
		int age1 = 20;
		int age2 = 10;
		
		//判断相等 ==
		System.out.println( age1 == age2 );	//true,false
		
		//判断不等 !=
		System.out.println( age1 != age2 );	//false,true
				
		//判断小于等于 <=
		System.out.println( age1 <= 18 );		//true,false
	}
}

与或非

package cn.tedu.keywords;

/*
 * 逻辑运算符:
 * 与and && 	特点:有一个为false结果就为false
 * 或or ||			特点:有一个为true结果就为tue
 * 非not ! 			特点:取反
 */
public class TestAndOrNot {
	public static void main(String[] args) {
		boolean b1 = false;		//true;
		boolean b2 = false;
		
		System.out.println( b1 && b2 );		//false,并列,false
		System.out.println( b1 || b2 );			//true,或者,false
		System.out.println( !b1 );				//false,取反,true
		
		//把所有情况穷举
		//与 &&
		System.out.println( true && true );		//true
		System.out.println( true && false );		//false
		System.out.println( false && true );		//false
		System.out.println( false && false );		//false
		
		//或 ||
		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.keywords;

/*
 * 独特:三元(三目)表达式
 * 固定结构:3个部分组成,a布尔表达式 ? b值:c值
 * 结果:如果表达式true,返回b,如果表达式false,返回c
 * 经典案例:两个值求最大值
 */
public class Test3Var {
	public static void main(String[] args) {
		int x = 300;
		int y = 100;
		//x>y	布尔表达式,它结果true/false
		int r = x>y ? x : y;
		System.out.println( r );
	}
}

三个值求最大值

package cn.tedu.keywords;

/*
 * 独特:三元(三目)表达式
 * 固定结构:3个部分组成,a布尔表达式 ? b值:c值
 * 结果:如果表达式true,返回b,如果表达式false,返回c
 * 经典案例:两个值求最大值
 */
public class Test3Var {
	public static void main(String[] args) {
		int x = 300;
		int y = 100;
		int z = 500;
		
		//1、两个值求最大值,应用一次三目表达式
		//x>y	布尔表达式,它结果true/false
		int r = x>y ? x : y;
		System.out.println( r );
		
		//2、三个值求最大值,应用两次三目表达式
		r = x>y ? x : y;		//此时r代表了x和y中的最大值
		//拿最大值r和z进行比较
		r = r>z ? r : z;
		System.out.println( r );
		
		//3、三个值求最大值,一行写完
		//r = x>y ? x : y;		//这个表达式就可以当做一个值,和z比较即可
		r = (x>y ? x : y)>z ? (x>y ? x : y) : z;		//利用小括号进行优先计算
		System.out.println( r );
	}
}

在这里插入图片描述

加等、减等、乘等、除等

package cn.tedu.keywords;

//快捷加+=、减-=、乘 *=、除 /=(整除)
public class TestYun {
	public static void main(String[] args) {
		int a = 10;
		int b = 2;
		
		//加+=
		//System.out.println( a+=b );  //12
		
		a = a+b;
		System.out.println( a );			//当前a=12
		
		//减-=
		System.out.println( a-=b );		//等价于 a-b结果赋值a a=a-b; 当前a=10
		
		//乘*=
		System.out.println( a*=b );		//当前a=20
		
		//整除 /=
		System.out.println( a/=b );		//当前a=10
	}
}

测试新方式

jUnit单元测试

在运行测试类,main很讨厌,它只能有一个。这时我们假定需要多个方法去执行,如果写成多个方法,太麻烦。把不用代码屏蔽,打开其他代码,来回屏蔽,也不方便。

引入新的技术,可以在一个类中有多个测试方法,每个方法独立。这个技术jUnit 单元测试。

开发步骤:
1)在项目中引入jUnit支持 (一个项目中只需要一次)
2)在类中导包import。org.junit.Test
3)在指定的方法上戴个帽子:@Test 注解
2和3步骤,需要单元测试junit,就得导入
4)运行 java junit
可以运行所有方法,也可以指定单个运行

jUnit执行一个类的多个方法

package cn.tedu.keywords;

//调用@Test注解@interface标识
//导包语句可以自己写
import org.junit.Test;


//这个类单元测试类
//写@Test注解,eclipse会提示我们导入jar,里面很多class,Test.class
/*
 * 有多个方法,任何空白地方右键运行junit test
 * 会执行哪个方法? 都执行
 * 会全部执行吗? 是
 * 有顺序吗?junit没有顺序
 */
public class TestSelfUnit {

	
	@Test	//导包过了,无需再次导入import写一次多次调用
	public void sub() {
		int i = 10;
		System.out.println( "sub " + i-- );
	}
	
	
	//规定:单元测试方法必须开放public,无返回值void,必须无参
	@Test  //这个注解必须放在方法上面
	public void add() {
		int i = 10;
		System.out.println( "add " +i++ );
	}	
}

基于径向基函数神经网络RBFNN的自适应滑模控制习(Matlab代码实现)内容概要:本文介绍了基于径向基函数神经网络(RBFNN)的自适应滑模控制方法,并提供了相应的Matlab代码实现。该方法结合了RBF神经网络的非线性逼近能力和滑模控制的强鲁棒性,用于解决复杂系统的控制问题,尤其适用于存在不确定性和外部干扰的动态系统。文中详细阐述了控制算法的设计思路、RBFNN的结构与权重更新机制、滑模面的构建以及自适应律的推导过程,并通过Matlab仿真验证了所提方法的有效性和稳定性。此外,文档还列举了大量相关的科研方向和技术应用,涵盖智能优化算法、机器习、电力系统、路径规划等多个领域,展示了该技术的广泛应用前景。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的研究生、科研人员及工程技术人员,特别是从事智能控制、非线性系统控制及相关领域的研究人员; 使用场景及目标:①习和掌握RBF神经网络与滑模控制相结合的自适应控制策略设计方法;②应用于电机控制、机器人轨迹跟踪、电力电子系统等存在模型不确定性或外界扰动的实际控制系统中,提升控制精度与鲁棒性; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,深入理解算法实现细节,同时可参考文中提及的相关技术方向拓展研究思路,注重理论分析与仿真验证相结合。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值