1.数据类型、类型转换
1、基本类型 :long、int、short、byte、float、double、boolean、char(8大类型)
类型名称 | 关键字 | 字节数 | 范围 | |
---|---|---|---|---|
整数 | 字节型 | byte | 1 | -128~127 |
整数 | 短整型 | short | 2 | -32768~32767 |
整数 | 整型 | int | 4 | -2147483648~2147483647 |
整数 | 长整型 | long | 8 | -2的63次方~2的63次方-1 |
浮点数 | 单精度 | float | 4 | 1.4e-45f~3.4e+38f |
浮点数 | 双精度 | double | 8 | 4.9e-324~1.8e+308 |
布尔型 | boolean | 1 | true或false | |
字符型 | char | 2 |
byte a1=10; short a2=10; int a3=10; long a4=134256433; float q1=.1f; double q2=.1; char c1=100; char c2='d'; boolean f=true; boolean f1=false;
2、引用类型(对象 类 接口 数组)
3、类型转换(默认类型转换、强制类型转换)
int i=30; short n=(short)i;//强制类型转换 int a=5; a+=1; a=a+1; System.out.println(a);//7 short b=(short) a;//7 b+=1;//b=8(+=可以实现自动的类型转换) a=b+1;//a=9 b=8(b+1 结果类型为int ) System.out.println(a);//9 System.out.println(b);//8
2.运算符表达式
运算符:是一种特殊符号,用以表示数据的运算、赋值、和比较。
表达式:使用运算符将运算数据连接起来的符合Java语法规则的式子。int i=20*30;
1.算数运算符+ - * / % ++ --
int i=5; ++i;//自身加1 i++; System.out.println(--i);//自身减1 如果++ --在变量前,先执行再使用,如果在后,先使用再执行。 int c=5; ++c; int d=c++; System.out.println(++c);//8 System.out.println(d++);//6
2.赋值运算符= += -= *= /= %=
int i=3; i==; i+=5;//相当于i=i+5; int c=i-=2; System.out.println(--c);
3.比较运算符
Java==!=> >= < <= instanceof //==和=结果不一样,==是判断等不等,=是赋值,在Java语言中没有== System.out.println(1==2);//false System.out.println(1!=2);//true System.out.println(2!=2);//false System.out.println(2>5);//false System.out.println(2>=5);//false System.out.println(2<5);//true System.out.println(2<=5);//true System.out.println("hello" instanceof String);//true //比较运算符分时问候案例 Calendar c=Calendar.getInstance(); int hour=c.get(Calendar.HOUR_OF_DAY); System.out.println(hour);
4.逻辑运算符&&逻辑与 ||逻辑或 !逻辑非 注:逻辑运算结果都是boolean型,要么是true,要么是false
//&&逻辑与 System.out.println(!false&&!true);//false System.out.println(true&&true);//true System.out.println(true&&false);//false System.out.println(false&&false);//false System.out.println(false&&true);//false //||逻辑或 System.out.println(!false||!true);//ture System.out.println(true||true);//true System.out.println(true||false);//true System.out.println(false||false);//false System.out.println(false||true);//true //!逻辑非 System.out.println(!!!!true==false);//false System.out.println(!(true||false));//false
5.位运算
3.格式化
String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。
不同转换符实现不同数据类型到字符串的转换:
String name="李四"; int age=18; String address="河南省郑州市科学大道88号"; System.out.println("姓名:"+name+",年龄:"+age+"岁,地址:"+address+"。"); System.out.printf("姓名:%s,年龄:%d岁,地址:%s。",name,age,address);//姓名:李四,年龄:18岁,地址:河南省郑州市科学大道88号。 //格式化小数 System.out.printf("%.0f %<.2f %<.1f %<.3f %.0f",.13598,.98);//0 0.14 0.1 0.136 1
搭配转换符的标志,如图所示:
日期和事件字符串格式化 %tx转换符是专门用来格式化日期和时间的
常见日期和时间组合的格式:
格式化时间字符串的转换符:
//格式化时间 Date d=new Date(); Calendar c= Calendar.getInstance(); System.out.println(d.getTime()); System.out.println(c.getTimeInMillis()); System.out.println(); System.out.printf("%tF %SimpleDateFormat格式化日期:yyyy-MM-dd HH:mm:ss
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss S E"); Date d=new Date(); String dstr=df.format(d); System.out.println(dstr);//时间戳(long 类型数字,用来表示 日期时间) System.out.println(System.currentTimeMillis()); System.out.printf("%tp",System.currentTimeMillis());String.format()字符串对象格式化方法,参数和System.out.println()一样。
String str=String.format("%d %<02d %<05d",3); System.out.println(str); for (int i = 0; i < 12; i++) { System.out.println(String.format("%03d",i)); System.out.printf("%03d%n",i); }数字格式化NumberFormat
NumberFormat 是所有数值格式的抽象基类。此类提供格式化和解析数值的接口。 NumberFormat 还提供了一些方法来确定哪些语言环境具有数值格式,以及它们的名称是什么。 NumberFormat 可用于格式化和解析任何语言环境的数值。使代码能够完全独立于小数点、千位分 隔符甚至所用特定小数位数的语言环境约定,并与数值格式是否为偶小数无关。
getInstance()、getNumberInstance()。返回当前默认语言环境的通用数值格式。 getInstance(Locale)、getNumberInstance(Locale)。返回指定语言环境的通用数值格式。 NumberFormat.setMinimumIntegerDigits(int)。设置数的整数部分所允许的最小位数。 NumberFormat.setMaximumIntegerDigits(int)。设置数的整数部分所允许的最大位数。 NumberFormat.setMinimumFractionDigits(int)。设置最少小数点位数,不足的位数以0补 位,超出的话按实际位数输出。 NumberFormat.setMaximumFractionDigits(int)。设置最多保留小数位数,不足不补0。//百分比 getPercentInstance()。静态方法,创建一个NumberFormat类的对象并返回其引用。该对象 指定百分比格式为系统预设格式。 getPercentInstance(Locale)。静态方法,创建一个NumberFormat类的对象并返回引用。该对象的百分比格式由Locale来指定。 NumberFormat f1= NumberFormat.getPercentInstance(); System.out.println(f1.format(.235));//24% var f2=NumberFormat.getPercentInstance(); f2.setMaximumFractionDigits(2); System.out.println(f2.format(.235));//23.5% //货币格式化 getCurrencyInstance()。静态方法,建立一个NumberFormat类的对象并返回引用,该引用指定货币格式为系统预设的货币格式。 getCurrencyInstance(Locale) 。静态方法,建立一个NumberFormat类的对象,并返回引用,该引用的货币格式由Locale指定。Locale类在java.util包中。 var m=60; var f3=NumberFormat.getCurrencyInstance(); System.out.println(f3.format(m));//¥60.00 var f4=NumberFormat.getNumberInstance(); f4.setMinimumFractionDigits(2); System.out.println(f4.format(123450.512346));//1,242,450.512 var f5=NumberFormat.getCompactNumberInstance(); System.out.println(f5.format(132424l));//13万 DecimalFormat df=new DecimalFormat("#,###.##"); System.out.println(df.format(100));//100