Java学习

Java数据类型详解
本文深入讲解Java中的数据类型,包括基本数据类型如整型、浮点型、字符型和布尔型,以及引用数据类型如类、接口和数组。探讨了变量在类中的声明位置,并详细解释了不同类型变量的运算规则和字符串类型的使用。

2020/3/17

JAVA定义的数据类型

一、变量按数据类型来分:

基本数据类型:
	整型:byte \ short \ int \long
	浮点型: float\double
	字符型: char
	布尔型: boolean
	
引用数据类型:
	类(class)
	接口(interface)
	数组(array)

二、变量在类中声明的位置:
成员变量 vs 局部变量

1个字节有8,共有pow(2,8)的排列组合
4个字节就有pow(2,4*8)

c

lass VariableTest1{
		public static void main(String[] args)
		{
			//1.整型:byte(1字节=8bit)\short(2字节)\int(4字节)\long(8字节)
			// 1>byte范围:-128 ~ 127
			
			byte b1 = 12;
			byte b2 = -128;
			System.out.println(b1);
			
			
			// 2>声明long型变量,必须以"l"或"L"结尾
			// 3>通常定义整型变量时,使用int型
			short s1 = 128;
			long l1 = 123143432L;
			
			
			//2.浮点型:float(4字节)\double(8字节)
			double d1 = 123.3;
			System.out.println(d1+1);
			
			//定义float类型变量时,变量要以"f"或"F"
			float f1 = 12.3F;
			
			System.out.println(f1);
			
			//通常,定义浮点型变量时,使用double型
			
			
			//3.字符型:char (1字符=2字节)
			// 定义char型变量,通常使用一对''(单引号)
			char c1 = 'a';
			System.out.println(c1);
			
			//表示方式:1.声明一个字符 2.转义字符 3.直接使用Unicode 值来表示字符型常量
			char c5 = '\n';
			System.out.println("hello"+c5);
			System.out.println("world");
			
			char c6='\u0123';//没有对于的字符,显示问号
			System.out.println(c6);
			
			//布尔型: boolean
			// 只能取两个值之一: true ,false
			// 常常在条件判断、循环结构中使用
			boolean bb1 = true;
			System.out.println(bb1);
			
		}
	}
	

/*
基本数据类型之间的运算规则:

前提:这里只讨论7种基本数据类型变量间的运算,不包含boolean类型的

1.自动类型提升:
结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型
byte --> short --> int --> long -->float -->doule
byte、char、short --> int --> long -->float --double

特别的:当byte、char、short三种类型的变量做运算时,结果为int型
说明:此时的容量大小指的是,表示数的范围的大和小,比如,float容量大于long的容量

强制类型转换:自动类型提升运算的逆运算.
1.需要使用强转符:()
2.注意点:强制类型转换,可能导致精度损失

String 类型变量的使用
1.String 属于引用数据类型
2.声明String 类型变量时,使用一对""(双引号)
3.String可以和8种基本数据类型变量做运算,且运算只能是连接运算: +
4.运算的结果仍然是String类型

判断对错

String str1 = 4;  //判断对错:no
String str2 = 3.5f + "";//判断对错:yes 输出"3.5"
System.out.println(3+4+"hello!");	//输出7hello!
System.out.println("hello!"+3+4);	//输出hello!34
System.out.println('a'+1+"hello!");	//输出98hello!;
System.out.println("hello"+'a'+1);	//输出helloa1

练习2 判断能否通过编译

1> short s = 5;
	s = s-2 //no
2> byte b = 3;
	b = b+4;	//no
	b = (byte)(b+4); //yes
3> char c = 'a';
   int i =5;
   float d = .314f;
   double result = c+i+d; //yes
4>byte b =3;
  short s = 3;
  short t = s+b;	//no

计算机中不同进制的使用说明:

对于整数,有四种表示方式:
1>二进制,0b或0B;
2>八进制,以数字0开头表示
3>十进制
4>16进制,以0x或0X表示

class VariableTest2{
	public static void main(String[] args){
		byte b1 = 2;
		int i1 = 12;
		//编译不通过
		//byte b2 = b1+i1;
		int i2 = b1 + i1;
		System.out.println(i2);
		
		float f = b1+i1;
		System.out.println(f);
		
		//*************************
		char c1 = 'a'; //97
		int i3 = 10;
		int i4 = c1+i3;
		System.out.println(i4);
		
		
		short s2 = 10;
		//编译不通过
		//short s3=c1 + s2;
		
		byte b2 = 10;
		//char c3 = c1+b2;//编译不通过
		
		
	}
}


class VariableTest3
{
	public static void main(String[] args)
	{
		double d1 = 12.3;
		int i1 = (int)d1;//截断
		System.out.println(i1);
		
		//编译失败
		//float f1 = 12.3
		
		//整型常量,默认类型为int型
		//浮点型常量,默认类型为double型
		byte b = 12;
		// byte b1 = b+1;//编译失败
		
		//float f1 = b+12.3;//编译失败
		
	
	}
}


class StringTest{
	public static void main(String[] args)
	{
		String s1 = "Hello World!";
		
		System.out.println(s1);
		
		String s2 = "a";
		System.out.println(s2);
		String s3 = "";
		System.out.println(s3);
		
		//char c=''  编译不通过
		
		int number = 1001;
		String numberStr = "学号: ";
		String info = numberStr + number;//+ : 链接运算
		System.out.println(info);
		boolean b1 = true;
		String info1 = info+b1;//+ 连接运算
		System.out.println(info1);
		
		//**************
		//练习1
		char c='a';//97 A65
		int num = 10;
		String str = "hello1";
		
		System.out.println(c+num+str);//107hello1
		System.out.println(c+str+num);//ahello110
		System.out.println(c+(num+str));//a10hello1
		System.out.println((c+num)+str);//107hello1
		System.out.println(str+num+c);//hello110a
		
		
		//练习2
		//*	*
		System.out.println("*	*");//输出 *       *
		System.out.println('*'+'\t'+'*');//输出  93
		System.out.println('*'+"\t"+'*');//输出  *       *
		System.out.println('*'+'\t'+"*");//输出  51*
		System.out.println('*'+('\t'+"*"));//输出  *       *
		
		byte b = 3;
		byte b11 = (byte)(b+3);
		System.out.println(b11);




	}
	
}
【四轴飞行器】非线性三自由度四轴飞行器模拟器研究(Matlab代码实现)内容概要:本文围绕非线性三自由度四轴飞行器模拟器的研究展开,重点介绍基于Matlab代码实现的四轴飞行器动力学建模与仿真方法。研究构建了考虑非线性特性的飞行器数学模型,涵盖姿态动力学与运动学方程,实现了三自由度(滚转、俯仰、偏航)的精确模拟。文中详细阐述了系统建模过程、控制算法设计思路及仿真结果分析,帮助读者深入理解四轴飞行器的飞行动力学特性与控制机制;同时,该模拟器可用于算法验证、控制器设计与教学实验。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的高校学生、科研人员及无人机相关领域的工程技术人员,尤其适合从事飞行器建模、控制算法开发的研究生和初级研究人员。; 使用场景及目标:①用于四轴飞行器非线性动力学特性的学习与仿真验证;②作为控制器(如PID、LQR、MPC等)设计与测试的仿真平台;③支持无人机控制系统教学与科研项目开发,提升对姿态控制与系统仿真的理解。; 阅读建议:建议读者结合Matlab代码逐模块分析,重点关注动力学方程的推导与实现方式,动手运行并调试仿真程序,以加深对飞行器姿态控制过程的理解。同时可扩展为六自由度模型或加入外部干扰以增强仿真真实性。
基于分布式模型预测控制DMPC的多智能体点对点过渡轨迹生成研究(Matlab代码实现)内容概要:本文围绕“基于分布式模型预测控制(DMPC)的多智能体点对点过渡轨迹生成研究”展开,重点介绍如何利用DMPC方法实现多智能体系统在复杂环境下的协同轨迹规划与控制。文中结合Matlab代码实现,详细阐述了DMPC的基本原理、数学建模过程以及在多智能体系统中的具体应用,涵盖点对点转移、避障处理、状态约束与通信拓扑等关键技术环节。研究强调算法的分布式特性,提升系统的可扩展性与鲁棒性,适用于多无人机、无人车编队等场景。同时,文档列举了大量相关科研方向与代码资源,展示了DMPC在路径规划、协同控制、电力系统、信号处理等多领域的广泛应用。; 适合人群:具备一定自动化、控制理论或机器人学基础的研究生、科研人员及从事智能系统开发的工程技术人员;熟悉Matlab/Simulink仿真环境,对多智能体协同控制、优化算法有一定兴趣或研究需求的人员。; 使用场景及目标:①用于多智能体系统的轨迹生成与协同控制研究,如无人机集群、无人驾驶车队等;②作为DMPC算法学习与仿真实践的参考资料,帮助理解分布式优化与模型预测控制的结合机制;③支撑科研论文复现、毕业设计或项目开发中的算法验证与性能对比。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注DMPC的优化建模、约束处理与信息交互机制;按文档结构逐步学习,同时参考文中提及的路径规划、协同控制等相关案例,加深对分布式控制系统的整体理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值