public class demo01 {
//缓存池中开辟空间
//缓存池的范围:-128至127
public static void main(String[] args) {
Integer n1=125;
Integer n2=125;
Integer n3=125;
System.out.println(n1==n2);//比较内存地址 true
System.out.println(n2==n3);//比较内存地址 true
//由于保存的数据超出范围,所以重新开辟新的内存空间保存
Integer n4=129;//新内存空间
Integer n5=129;//新内存空间
Integer n6=129;//新内存空间
System.out.println(n4==n5);//比较内存地址 false
System.out.println(n5==n6);//比较内存地址 false
System.out.println(n4.equals(n5)); //true
System.out.println(n4.equals(n6)); //true
}
}
import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;
public class demo02 {
public static void main(String[] args) {
// 整数类型溢出
// int n1=2147483647,n2=2147483647;
// int sum1=n1+n2;
// System.out.println(sum1);
//使用
BigInteger n1=new BigInteger("24235245233698741");
BigInteger n2=new BigInteger("24235245233698741");
//通过调用方法,进行加减乘除运算
//加法
BigInteger sum=n1.add(n2);//n1+n2
System.out.println(sum);
//减法
BigInteger sub=n1.subtract(n2);//n1-n2
System.out.println(sub);
//乘法
BigInteger mul=n1.multiply(n2);//n1*n2
System.out.println(mul);
//除法
BigInteger div=n1.divide(n2);//n1/n2
System.out.println(div);
//混合运算:n1*n2+n3
BigInteger n3=new BigInteger("1000");
BigInteger ret=n2.multiply(n3).add(n1);
System.out.println(ret);
BigDecimal dec1=new BigDecimal("10.0");
BigDecimal dec2=new BigDecimal("3.0");
BigDecimal sum1=dec1.add(dec2);
System.out.println(sum);
//浮点数的除法运算,容易产生无限循环
//参数1:被除数
//参数2:保留三位小数
//参数3:小数位数的截取方式
//RoundingMode.HALF_DOWN四舍五入
BigDecimal div1=dec1.divide(dec2,3,RoundingMode.HALF_DOWN);
System.out.println(div);
}
}
import java.math.BigDecimal;
public class demo03 {
public static void main(String[] args) {
// 账单金额
BigDecimal orderMoney=new BigDecimal("1234.56");
//通过随机数,产生一个随机折扣值
int rand=(int)(Math.random()*10);
//支付金额
BigDecimal payMoney=null;
//折扣
BigDecimal sale=null;
//判断折扣
switch(rand) {
case 0:
sale=new BigDecimal("0.0");
break;
case 1:
sale=new BigDecimal("0.1");
break;
case 2:
sale=new BigDecimal("0.2");
break;
case 3:
sale=new BigDecimal("0.3");
break;
case 4:
sale=new BigDecimal("0.4");
break;
case 5:
sale=new BigDecimal("0.5");
break;
case 6:
sale=new BigDecimal("0.6");
break;
case 7:
sale=new BigDecimal("0.7");
break;
case 8:
sale=new BigDecimal("0.8");
break;
case 9:
sale=new BigDecimal("0.9");
break;
}
//计算实付金额:orderMoney*sale
payMoney=orderMoney.multiply(sale);
//折扣处理:0.1=>1折
String saleValue="免单";//免单/9折
//x.compareTo(y)比较x与y的大小
//返回值结果为0:x=y
//返回值结果大于0:x>y
//返回值结果小于0:x0.0
if(sale.compareTo(new BigDecimal("0.0"))==1) {//1就是大于0 按照折扣运算
saleValue=sale.multiply(new BigDecimal("10")).toString();
}
//输出结果
System.out.println("账单金额:¥"+orderMoney);
System.out.println("实付金额:¥"+payMoney+"【"+saleValue+"折】");
//格式化输出
System.out.printf("实付金额:¥%s【%s折】",payMoney,saleValue);
}
}
import java.math.BigDecimal;
public class demo04 {
public static void main(String[] args) {
// 账单金额
BigDecimal orderMoney=new BigDecimal("1234.56");
//通过随机数,产生一个随机折扣值
int rand=(int)(Math.random()*10);
//支付金额
BigDecimal payMoney=null;
//折扣
BigDecimal sale=null;
//判断折扣
switch(rand) {
case 0:
sale=new BigDecimal("0.0");
break;
case 1:
sale=new BigDecimal("0.1");
break;
case 2:
sale=new BigDecimal("0.2");
break;
case 3:
sale=new BigDecimal("0.3");
break;
case 4:
sale=new BigDecimal("0.4");
break;
case 5:
sale=new BigDecimal("0.5");
break;
case 6:
sale=new BigDecimal("0.6");
break;
case 7:
sale=new BigDecimal("0.7");
break;
case 8:
sale=new BigDecimal("0.8");
break;
case 9:
sale=new BigDecimal("0.9");
break;
}
//计算实付金额:orderMoney*sale
payMoney=orderMoney.multiply(sale);
//折扣处理:0.1=>1折
String saleValue="免单";//免单/9折
//x.compareTo(y)比较x与y的大小
//返回值结果为0:x=y
//返回值结果大于0:x>y
//返回值结果小于0:x0.0
if(sale.compareTo(new BigDecimal("0.0"))==1) {//1就是大于0 按照折扣运算
saleValue=sale.multiply(new BigDecimal("10")).toString();
}
//输出结果
System.out.println("账单金额:¥"+orderMoney);
System.out.println("实付金额:¥"+payMoney+"【"+saleValue+"折】");
//格式化输出
System.out.printf("实付金额:¥%s【%s折】",payMoney,saleValue);
}
}
public class demo05 {
/*问题:有5个整数,仅有一个整数出现1次,其余出现2次
* 请找出这个整数
* 分析
* 两个相同整数进行^异或运算,结果为0
* 任何整数与0进行异或运算,结果为整数本身
*
* 实现思路
* 将5个整数累计异或,最终结果为仅出现一次的整数
*/
public static void main(String[] args) {
int a=2,b=3,c=2,d=3,e=5;
int singleiton=a^b^c^d^e;
System.out.println(singleiton);
}
}
public class demo06{
public static void main(String[] args) {
// 调整百位 十位 个位的数字 让调整后的数字最大
int n=519;
//步骤一:拆解数字
int x=n/100;
int y=n%100/10;
int z=n%10;
//步骤二:x y z三个数字排序
int max=x>y?(x>z?x:z):(y>z?y:z);
int min=x
public class demo07 {
public static void main(String[] args) {
// 遍历一个字符串,并统计英文字母 汉字 数字 标点符号的个数
String str="String str = \"OMG,你们的中英混搭真是各有千秋,但Someone丝毫掩盖不了你们那硬朗的英语底子!For eg.papi酱真的very有才华啊,哦买噶的,U6666666!!!罢特,someone也是成功地掩盖了自己小学程度的英语水平!这样式的,I是不会use的,because l hate 这种人very much~\";";
//每个字符分类都定义一个计数器变量
int letters=0,numbers=0,chs=0,flags=0;
for(int i=0,len=str.length();i<=len-1;i++) {
//获取当前字符串
char c=str.charAt(i);
//判断当前字符的分类
if(c>='A'&& c<='Z'||c>='a'&& c<='z') {
//英文字母
letters++;
}else if (c>=0x4e00 && c<= 0x29fa5) {
//汉字
chs++;
}else if(c>='0'&& c<='9') {
//数字
numbers++;
}else {
//标点符号
flags++;
}
}
System.out.println("英文字母"+letters);
System.out.println("汉字"+chs);
System.out.println("数字"+numbers);
System.out.println("标点符号"+flags);
}
}
public class demo08 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="我本将心照明月";
//保存逆序字符
String ret="";
//方式1:逆序
for(int i=s.length()-1;i>=0;i--) {
ret=ret+s.charAt(i);
}
System.out.println(ret);
//方式2:顺序
ret="";
for(int i=0;i
public class demo09 {
public static void main(String[] args) {
/*
* A1、A2、A3、A4、A5、A6、A7、A8、A9
* B1、B2、B3、B4、B5、B6、B7、B8、B9
* C1、C2、C3、C4、C5、C6、C7、C8、C9
*/
/*
* A1、A2、A3
* A4、A5、A6
* A7、A8、A9
* B1、B2、B3
* B4、B5、B6
* B7、B8、B9
* C1、C2、C3
* C4、C5、C6
* C7、C8、C9
*/
for(char c='A';c<='F';c++) {
for(int i=1;i<=9;i++) {
System.out.print(c+""+i);
//System.out.print("\t");//制表符(TAB)
if (c%3==0) {
System.out.println();
}else {
System.out.print(",");
}
}
System.out.println();//换行符
}
}
}