JAVA基础知识(一)

一 数据类型
	--1,基本类型--一共8种
		--整数型4: byte short int long
		--浮点型2: float double
		--字符型1: char
		--布尔型1: boolean
	--2,练习
		--测试取值范围
			package cn.tedu.basic;
			//测试取值范围
			public class Test1 {
				public static void main(String[] args) {
					//整数型 byte short int long
					//变量的三要素:变量类型 变量名=变量值
					byte x = Byte.MIN_VALUE;//定义变量,记录byte最小值
					byte y = Byte.MAX_VALUE;//定义变量,记录byte最大值
					System.out.println(x);//打印x的值
					System.out.println(y);//打印y的值
					
					short a = Short.MIN_VALUE ;//定义变量,记录short最小值
					short b = Short.MAX_VALUE;//定义变量,记录short最大值
					System.out.println(a);//-32768
					System.out.println(b);//32767
					//int - Integer
					int m = Integer.MIN_VALUE ;//定义变量,记录int最小值
					int n = Integer.MAX_VALUE ;//定义变量,记录int最大值
					System.out.println(m);//-2147483648
					System.out.println(n);//2147483647
					//long - Long
					long q = Long.MIN_VALUE ;//定义变量,记录long最小值
					long w = Long.MAX_VALUE ;//定义变量,记录long最大值
					System.out.println(q);//-9223372036854775808
					System.out.println(w);//9223372036854775807
					//浮点型:float double
					//float-Float 
					float c = Float.MIN_VALUE ;//定义变量,记录float最小值
					float d = Float.MAX_VALUE ;//定义变量,记录float最大值
					System.out.println(c);//1.4E-45
					System.out.println(d);//3.4028235E38
					//double-Double
					double e = Double.MIN_VALUE ;//定义变量,记录double最小值
					double f = Double.MAX_VALUE ;//定义变量,记录double最大值
					System.out.println(e);//4.9E-324
					System.out.println(f);//1.7976931348623157E308
			//float和double区别?占用空间不一样,取值范围也不一样
			//精度不一样,double更精确.
					//布尔型 boolean   true/false
					boolean  g = true;
					//TODO 字符型 char--数据被一对单引号引来的
					char h1 = '?' ;
					char h2 = '1' ;
					char h3 = 'a' ;
					char h4 = 655 ;
					//TODO 面试题:char类型可以存一个中文汉字吗?-可以
					char h5 = '中';
					System.out.println(h5);
					System.out.println(h1);
					System.out.println(h2);
					System.out.println(h3);
					//由于h4是char类型,允许存一个整数100,但是,
					//使用时,会 查询ascii码表,查出来数字100对应的字符,
					//然后使用字符本身
					//ascii码表只规定了数字0~127对应的字符
					//128~65535呢?对应的字符默认的?
					System.out.println(h4);//100->d
				}
			}

		--描述个人信息
			package cn.tedu.basic;

			import java.util.Scanner;//导入包

			//测试个人信息 -- 使用 + 动态拼接字符串
			public class Test2 {
				public static void main(String[] args) {
					//1,如果是一长串的数据,不是8大基本类型
					//就是字符串类型,数据被一对双引号引起来
			//		System.out.println("大家好,我叫皮皮霞");
			//静态数据 动态数据 把字符串里的动态数据,提取.

			//String name = "渣渣辉";//定义变量,记录人名-太死板
			//TODO 名字可以动态的接收键盘输入的值
			String name = new Scanner(System.in).nextLine();
					//TODO 实现 动态的拼接 字符串  +
					System.out.println("大家好,我叫"+name);
					
					//练习 
			//		System.out.println("M国确诊人数10000000");
			//int number = 10000000 ;//定义变量,记录人数-太死板
			//动态的接收键盘输入的值
			int number = new Scanner(System.in).nextInt() ;
					System.out.println("M国确诊人数"+number);
					
			//		System.out.println("10000000呢M国确诊人数");
					System.out.println(number+"呢M国确诊人数");

			//		System.out.println("M国有10000000的确诊人数");
					//如果动态数据在中间, "+????+"
					System.out.println("M国有"+number+"的确诊人数");
					
				}
			}

		--交换变量的值
			package cn.tedu.basic;

			import java.util.Scanner;

			//测试 变量值的交换
			public class Test3 {
				public static void main(String[] args) {
					//1,定义变量a b 
					int a = new Scanner(System.in).nextInt();//TODO 动态接收键盘输入的值
					int b = new Scanner(System.in).nextInt();
					System.out.println("交换前: a="+a+",b="+b);
					//2,开始交换
					int c = a ;//定义c,记录a的值
					a = b ;//a没值了,等着赋值,把b的值给a
					b = c ;//把c的值交给b
					//TODO 3,打印值 --用+拼接字符串
					System.out.println("交换后: a="+a+",b="+b);
					//TODO 交换m n的值
					int m = 10;
					m = 20;//变量的值可以随时修改,把m改成20
					System.out.println(m);//20
					
					m = 30;//把m改成30
					System.out.println(m);//30
					
				}
				
			}
二 基本类型的字面值(5条)
	--1,代码	
		package cn.tedu.basic;
			//测试 基本类型的字面值
			public class Test1 {
				public static void main(String[] args) 			{
					//1,小数字面值的类型默认就是double
					double a = 9.3 ;
					//2,整数的字面值默认就是int类型
					int b = 10000 ;
					//3,如果在范围内,可以直接赋值
					char c = 65535 ;//0~65535
					//4,字面值后缀l f d
					//l/L -> long  f/F -> float  d/D -> double 
					float d = 9.3f;
					//后缀f--把9.3从默认的double类型变成float类型
					long e = 22000000000000L ;
					//后缀L--把右侧的整数从默认的int类型变成long类型
					double f = 3d ;
					//后缀d--把3从默认的int类型转成double类型
					//5,进制前缀 -- 了解
					//二进制  -- 0b???
					//八进制 -- 0??
					//十进制
					//十六进制 --0x????
				}
			}
三 基本类型的类型转换
	--1,概述
		把大类型和小类型的数据进行互转
	--2,测试
		package cn.tedu.basic;
		//测试 类型转换
		public class Test2 {
			public static void main(String[] args) {
				//1,小转大/隐式转换    long->double
				long a = 1000;
				double b = a ;
		//拿着右侧的小类型的a 给,左侧的大类型的b赋值--直接赋值
				
				//2,大转小/显式转换   float->int
				float m = 1.3f ;
		//		int n = m ;
				int n = (int) m ;
		//拿着右侧的大类型的m 给,左侧的小类型的n赋值
				//--不能直接赋值,需要强转
				
				//TODO 面试题:显式转换 和  隐式转换  区别?
		//		小int->大double
				int x = 10;
				double y = x;//小转大,直接写
				
				double c = 9.9;
				int d = (int)c ;//大转小,需要强转--显式转换
				System.out.println(d);//9
				//由于d是整数类型,只存整数部分
			}
			
		}
四 运算规则(5条)
	--1,代码
		package cn.tedu.basic;
		//测试 运算规则
		public class Test3 {
			public static void main(String[] args) {
				//1,结果和大的类型一致
				System.out.println(3/2);
				//int/int->int === 1
				System.out.println(3d/2);
				//double/int->double ===1.5
				System.out.println(3/2f);
				//int/float->float ===1.5
				
				//2,byte  short char参与运算后的结果是int类型
				byte a = 3 ;
				byte b = 4 ;
		//右侧的运算结果是int类型,给左侧的小类型byte赋值--需要强转
		//		byte c = a+b;//大转小--需要强转
				byte c = (byte)(a+b);
				
				//3,整数运算溢出
				//光速运行一年是多少米 300000000m/s
				System.out.println(300000000L*60*60*24*365);
				//由于运算结果太大了,超出了int范围,所以需要把类型
				//从默认的int类型 扩大成 long类型--加后缀L
				
				//4,小数运算结果不精确
				System.out.println(1-0.8);
				//5,小数运算特殊值  
				System.out.println(3.14/0);//Infinity
				System.out.println(0/0.0);//NaN
				
			}
			
		}
五 运算符
	--1,分类
		--算术运算符
			+-*/ % ++ --
		--三元运算符 
			1 ? 2 : 3
			
		--比较运算符(结果是boolean类型)
			==  != 
		--逻辑运算符(结果是boolean类型)
			& |  &&  ||  +  !(取反/非)
		--赋值运算符
			= += -= *= /=
		--短路与/或
			&--单与--表示并且关系
				--1 & 2,如果结果想得到true,要求1和2都是true
			| --单或 --表示或者关系
				--1 | 2,如果结果想得到true,要求1为true或2为true
				
			&&--双与/短路与--高效
				--1 && 2,2有可能会被短路,,当1为false时,2就没必要执行了,就被短路了,提高了效率
				
			||--双或/短路或--高效
				--1 || 2,2有可能会被短路,,当1为true时,2就没必要执行了,就被短路了,提高了效率


	--2,练习
		--算术运算符
			package cn.tedu.basic;
			//测试 算数运算符
			public class Test4 {
				public static void main(String[] args) {
					//1, % -- 模,用来取余数
					System.out.println(5%3);//2
					System.out.println(10%2);//0
					//2, 分别两位数的 个位 ,十位
					int a = 25 ;
			System.out.println(a % 10);// %是取余数-取个位数5
			System.out.println(a / 10);// /是取商-取十位数2
					//3, 分别三位数的 个位 ,十位,百位
					int b = 256 ;
					System.out.println(b % 10);//个位
					System.out.println(b / 100);//百位
					System.out.println(b / 10 % 10);//十位
					
					//4, 自增++ 自减--
					int x = 1;
					//符号在后,先使用再变化
					System.out.println(x++);//1
					
					int y = 1;
					//符号在前,先变化再使用
					System.out.println(++y);//2
					
					System.out.println(++x+y+y+++x);//10
									//3 + 2+ 2 + 3
			//		System.out.println(++x+y+y++);//3+2+2=7
					
					//TODO 自减
					int m = 1;
					//符号在后,先使用再变化
					System.out.println(m--);//1
					
					int n = 1;
					//符号在前,先变化再使用
					System.out.println(--n);//0
					
					System.out.println(--n+n-m--);//-1+(-1)-0=-2
					
				}
			}
		--三元运算符
			package cn.tedu.basic;

			import java.util.Scanner;

			//测试 三元运算符
			public class Test5 {
				public static void main(String[] args) {
					//1,比较两个数里的大值
					System.out.println("请您输入两个数字");
					int a = new Scanner(System.in).nextInt();
					int b = new Scanner(System.in).nextInt();
					//2,出结果
			//定义变量max,记录大的值
			//max记录的值,可能是a或者是b,具体是啥,看a>b成立不
			//如果a>b成立,就把a交给max保存,否则就把b给max
					int max = a > b ? a : b ;
					System.out.println("两个数里的大值是: "+max);//10
					
					//3,比较三个数里的大值
					System.out.println("请您再输入一个数字");
					int c = new Scanner(System.in).nextInt();
			//		int x = ?;//定义新变量,记录max和c里的大值 
			max = max > c ? max : c ;//修改max的值,现在记录max和c里的大值 
					System.out.println("三个数里的大值是: "+max);
					
			//		max = a > b ? a大 : b大 ;
			//		max = a > b ? a和c比 : b和c比 ;
			max = a > b ? (a > c ? a : c) : (b > c ? b : c);
			System.out.println("三个数里的大值是::::: "+max);
							
					
				}
				
			}

		--平年闰年
			package cn.tedu.basic;
			//测试 平年 闰年
			public class Test6 {
				public static void main(String[] args) {
					//1,定义变量,记录年号
					int year = 1000 ;
					//先假设是平年,如果满足了判断才是闰年
					String x = "平年";
					//2,判断,是平年还是闰年
			//		if(判断条件){ 满足了就干活  }
			//		if(判断条件1 || 判断条件2){ 满足了就干活  }
			//if(能被4整除 && 不能被100整除  || 能被400整除){ 满足了就干活  }
					if(year%4 == 0 && year%100 != 0 || year%400 == 0){ 
						x = "闰年";//修改x的值 
					}
					System.out.println(year+"年是"+x);
				}
			}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐艺^^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值