【Java学习笔记】3 java语言基础

1.数据类型–浮点型

1. 浮点数导致的误差

package example;

public class Floattest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		float f = 0.00f;    									//声明一个浮点数
		System.out.println(f);									//输出
		for(int i = 0;i < 10; i++) 								//for循环
		{
			f +=0.01f;											//f值递增0.01
			System.out.println(f); 								//f值输出
		}
	}
}

由此可以看出,浮点数存在一定的误差。在以后的程序中时,要做好误差的检查工作

2.变量与常量

1. 常量

使用final来表示一个常量。
以下的例子时输入一个圆的半径,可以计算出圆的面积,并输出

//FinalExample.java						final关键字展示
package example;

import java.lang.Math;

public class FinalExample {
	public static void main(String args[]) 
	{
		final double PI = 3.1415926;		//声明一个浮点型常量
		System.out.println("圆周率="+PI);    //输出
		String str = args[0];                //获得main方法的参数
		System.out.println("圆的半径="+str);  //输出字符串str
		double radius = Double.parseDouble(str); //转换为double类型变量
		double area = PI*radius*radius;         //计算圆的面积
		System.out.println("圆面积="+area);     //输出
	}
}

执行方式:先指定一个圆的半径
Run As | Run Configurations |Arguments|Program Arguments | Apply | Run

在这里插入图片描述

3.类型转换

在这里插入图片描述

1.数据类型之间自动转换

//DateChange.java 		描述:数据类型转换

package example;

public class DateChange{
	public static void main(String[] args) {
		int i = 333666999;						//声明一个整形变量
		System.out.println("int i = " + i);     //输出整形变量i
		double d = i;							//声明一个双精度变量d,并将i的值赋值给d
		System.out.println("double d = "+ d);   //输出双精度型变量
		float f = i;							//声明一个浮点型变量f,并将i的值赋值给f
		System.out.println("float f =" + f);    //输出浮点型变量f
	 }
	}

在这里插入图片描述

2.强制类型转换

//TypeTransform.java             自动类型转换和强制类型转换
package example; 
public class TypeTransform {
	public static void main(String[] args) {
		byte b = 50;
		char c = 'G';
		short s= 12345;
		int i = 11;
		long l = 10000L;
		float f = 3.14159F;
		double d = 3.1415926;
		//低类型到高类型的自动转换
		System.out.println("累加byte等于:"+b);
		System.out.println("累加char等于:" +(b+c));
		System.out.println("累加short等于:"+(b+c+s));
		System.out.println("累加int等于:"+(b+c+s+i));
		System.out.println("累加long等于:"+(b+c+s+i+l));
		System.out.println("累加float等于:"+(b+c+s+i+l+f));
		System.out.println("累加double等于:"+(b+c+s+i+l+f+d));
		//高类型到低类型的强制转换
		System.out.println("把long类型转换为int:"+(int)l);
		//高类型到低类型的转换会丢失数据
		System.out.println("把int类型强制转换为short:"+ (short)l);
		//实数到整数的转换会丢失小数部分
		System.out.println("把double类型强制转换为int:"+(int)d);
		//z整数到字符型的转换将获取对应编码的字符
		System.out.println("把short类型强制转换为char:"+(char)s);
	}
}

高精度向低精度转换时可能会损失数据

4.运算符

在这里插入图片描述

1.逻辑运算符

实现获取三个数中的最大数字

package example;

public class LogicOperator {
	public static void main(String[] args) {
		int a,b,c,temp;
		a = Integer.parseInt(args[0]);
		b = Integer.parseInt(args[1]);
		c = Integer.parseInt(args[2]);
		if(a>b&&a>=c) 
		{
			temp = a;
		}else if(!(b<a)&&!(b<c)) 
		{
			temp = b;
		}
		else
		{
			temp = c;
		}
		System.out.println("Max="+temp);
	}
}

在这里插入图片描述

2.自动递增和递减

自增、自减运算符

//AutoInc 				描述:自增、自减运算符的使用
package example;
public class AutoInc {
	public static void main(String[] args) {
		int i = 1;			//声明一个整形变量
		prt("i : "+i);		//输出整数i
		prt("++i : " + ++i);//进行++i运算并输出
		prt("i++ : " + i++);//进行i++运算并输出
		prt("i : " + i);	//输出整数i
		prt("--i : "+ --i); //进行--i运算并输出
		prt("i-- : "+ i--); //进行i--运算并输出
		prt("i : " + i);    //输出i
	}
	//声明prt方法
	static void prt(String s) {
		System.out.println(s); //输出字符串s
	}
}

在这里插入图片描述

3.三元运算符

package example;

public class Ternary {
	public static void main(String[] args) {
		System.out.println("三元运算符与if-else比较");
		System.out.println(TernaryMax(5,4));    //输出较大数
		System.out.println(ifElseMax(7,9));    //输出较大数
	}
	static int TernaryMax(int a,int b) {
		return a>b?a:b;							//比较两个数的大小
	}
	static int ifElseMax(int a,int b) {
		if(a>b) return a;						//当a大于b时,返回a
		else return b;							//当a不大于b时,返回b
	}
	
}

在这里插入图片描述

5.拓展

1.不借助第三者实现两个变量的互换

使用第三个变量需要在内存里面重新开辟一个空间,增加了内训的消耗
使用 ^ (异或)

//ExchangeVariable             描述:不使用临时变量实现内容互换

package example;
import java.util.Scanner;
public class ExchangeVariable {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);	//创建扫描器,用来接受数值
		System.out.println("请输入变量A的值");	//接收第一个变量值	
		long A = scanner.nextLong();			
		System.out.println("请输入变量B的值");	//接收第二个变量值
		long B = scanner.nextLong();
		System.out.print("A="+ A +"\tB=" + B);
		System.out.print("\t执行变量互换...\t");
		A = A^B;
		B = B^A;
		A = A^B;
		System.out.println("A="+A + "\tB=" +B);
		scanner.close();                          //释放scanner资源
	}
}

在这里插入图片描述

2.获取浮点数的最大/最小值

//FloatDouble.java    			描述:输出浮点数最大值、最小值

package example;

public class FloatDouble {
	public static void main(String[] args) {
		float float_max = java.lang.Float.MAX_VALUE; //声明float类型变量,赋系统最大值
		float float_min = java.lang.Float.MIN_VALUE;  //声明float类型变量,赋系统最小值
		double double_max = java.lang.Double.MAX_VALUE; //声明double类型变量,赋系统最大值
		double double_min = java.lang.Double.MIN_VALUE; //声明double类型变量,赋系统最小值
		//输出变量
		System.out.println("单精度浮点数的最大值为:" + float_max);
		System.out.println("单精度浮点数最小值为:" + float_min);
		System.out.println("双精度浮点数的最大值为: " + double_max );
		System.out.println("双精度浮点数的最小值为:" + double_min);
	}
}

在这里插入图片描述

3.实现字母的大小写转换

package example;
import java.util.Scanner;
public class CaseChange {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		System.out.println("请输入您要进行转换的字母");
		char c = in.next().charAt(0);
		if(c>='A' && c <='Z') {
			c+=32;
			System.out.println("这里的大写" + (char)(c-32)+"被转换成了"+c);
		}else if(c>='a'&&c<='z') {
			c-=32;
			System.out.println("这里的小写"+(char)(c+32)+"被转换成了"+c);
		}else {
			System.out.println("不带这种格式的输入返回重新输入");
		}
		in.close();
	}
}

在这里插入图片描述

4.实现输入字符的加密和解密

要点:异或运算

package example;

import java.util.Scanner;
public class Encryption {
	public static void main(String[] args) {
	Scanner scanner = new Scanner(System.in);//创建system类的标准输入流的扫描对象
	System.out.println("请输入一个英文字符串或解密字符串");
	String password = scanner.nextLine();    //获得用户输入
	char[] array = password.toCharArray();   //获得字符数组
	for(int i = 0;i<array.length;i++) {      //遍历字符数组
		array[i] = (char)(array[i]^20000);   //对每个数组元素进行异或运算
	}
	System.out.println(new String(array));   //输出密钥
	scanner.close();						//释放scanner资源
	}
}

在这里插入图片描述

6.技术解惑

  • 1.三元运算符与 if - else 语句的不同之处
    两者都可以实现条件选择。三元运算符只需要写一行代码,代码较为简洁,但是初学者不易理解。
    if - else 语句代码书写较多。理解起来更加自然。比三元运算符更加明确。

  • 2.强制类型转换规则
    程序需要从高级向低级转换数据类型时,必须实施强制类型转换
    转换的类型之间必须有某种特定的联系。例如字符串“123”向数字123的转换
    不能在boolean与任何类型之间进行强制类型转换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值