java学习(一)——数据类型、String类、char类型
2018-10-24 21:05
507 查看
数据类型
基本数据类型
Java是一种强类型语言:共有8种基本类型
1.整型:用于表示没有小数点的部分
1.1
int 4字节 long 8字节 short 2字节 byte 1字节
1.2
长整型数值:后缀L/l 二进制:前缀0b/0B 八进制: 前缀0 十六进制:前缀Ox/0X,可以为数字字面量加下划线,如1_000_000(或0b1111_0100_0010_0000)表示一百万,(这些下划线只是为了让人更易读,编译器会忽略这些下划线) 注:默认整数类型是int类型,在将一个long型字面常量赋给long类型时,必须使用后缀L/l(小写L)
1.3
注:java没有无符号(unsigned)整数类型
class FirstDemo { public static void main(String[] args) { byte a=23; int c=345; short b=78; long d=1000_2300_45L; short e=0b1111; System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); System.out.println(e); } }
2.浮点型:用于表示有小数部分的数值
2.1
double 8字节 有效位数6~7位 float 4字节 有效位数15位
2.2
float 类型的数值必须有一个后缀f/F double 类型的数值可以添加后缀D/d 注:默认浮点类型是 double 类型,在将一个浮点型字面常量赋给float类型时,必须使用后缀f/F
2.3 特殊的浮点数值
正无穷大 Double.POSITIVE_INFTNITY 负无穷大 Double.NEGATIVE_INFINITY NaN(不是一个数字) Double.NaN 如:0/0、负数的平方根
class FirstDemo { public static void main(String \u005B\u005D args) { float a1=23.4f; double b2=456.6; System.out.println(Double.NEGATIVE_INFINITY); System.out.println(Double.POSITIVE_INFINITY); System.out.println(Double.NaN); } }
运行结果
-Infinity Infinity NaN
3.char 类型:用于表示单个字符(采用Unicode字符)
表示方式
单引号括起来:'A' 十六进制值(范围 \u0000到\Uffff):\u03C0 表示特殊字符的转义序列
4.boolean 类型:用于判定逻辑条件
false 假 true 真
class FirstDemo { public static void main(String \u005B\u005D args) { System.out.println("退格:\b"); System.out.println("换行:\n"); System.out.println("制表:\t"); System.out.println("回车:\r"); boolean t1=true; System.out.println(t1); } }
引用数据类型
1.数组
2.类
3.接口
其他
变量常量和字符串String
class FirstDemo { public static void main(String[] args) { //1.变量 int a1; //变量的声明 double d1=45.3; //变量声明并初始化 //注:java不区分变量的声明和 1fff8 定义 //2.常量:利用关键字 final(final表示这个变量只能被赋值一次,一旦赋值,就不能够再更改了,常用大写)指示常量 final int MAX=100; //注:在java中,如果希望一个常量在该类中被多个方法使用,通常将这些常量称为类常量,使用 static final s设置一个类常量 //3.数学常量 System.out.println(Math.PI); System.out.println(Math.E); //4.强制类型转换(通过截断小数部分将浮点值转换为整型) double x=9.993468; int sx=(int)x; System.out.println(sx); //对浮点数进行舍入运算 int sx2=(int)Math.round(x); //返回最接近参数的long System.out.println(sx2); //5.移位运算符 System.out.println(0b111>>2); //左端补符号位 System.out.println(0b0011<<2); System.out.println(0b1101>>>2); //左端补0 //6.枚举类型:枚举类型的变量只存储这个类型声明中给定的某个枚举值或者 null enum Size{SMALL,MEDIUM,LARCE,EXTRA}; Size s=Size.MEDIUM; System.out.println(s); /*7.字符串:java字符串就是Unicode字符序列。 各种字符串存放在公共的字符串池中,字符串变量指向字符串池中相应的位置 String类(不可变字符串):不能修改字符串,但可以使字符串变量引用另一个字符串 */ //7.1 提取一个子串:第一个参数是起始位置(含该位置字符),第二个参数是结束位置(不含该位置字符) String str1="Hello Java!"; String s1=str1.substring(4,7); System.out.println(s1+",长度为"+(7-4)); //7.2 拼接字符串(+):当一个字符串与一个非字符串的值进行拼接时,后者转换为字符串 String str2="This is my first java program."; String str3=str1+str2; System.out.println(str3); //把多个字符串放在一起,用一个定界符分隔 String all=String.join("/","S","M","L","XL"); System.out.println(all); //7.3 判断字符串是否相等:相等返回true,否则返回false System.out.println(str1.equals("Hello Java!")); //忽略大小写 System.out.println(str1.equalsIgnoreCase("hello java!")); //注:String类型的字符串常量是共享的,而+和substring等操作产生的结果(创建了一个新字符串)并不是共享的。 /*7.4 空串:空串""是长度为0的字符串 null串:表示目前没有任何对象与该变量关联 */ String str=null; if(str==null) //判断一个字符串是否为null System.out.println("str是null"); str=""; if(str.length()==0) //判断一个串是否为空 System.out.println("str是空串"); } }
char类型和Unicode
java的char类型是UTF-16编码的一个代码单元,即2个字节。大多数常用字符一个代码单元就可以表示,而一些辅助字符需要一对代码单元表示
java使用的字符集是Unicode字符集。在Unicode字符集中,与某个字符对应的代码值被称作码点,
UTF-16编码采用不同长度的编码表示所有的Unicode码点,在基本的多语言级别中,每个字符用16位表示,被称为代码单元,而一些辅助字符采用一对相邻的代码单元(即4个字节)进行编码
class FirstDemo { public static void main(String[] args) { String str1="Hello java!"; //length()方法:该方法返回的是给定字符串所需要的代码单元数量,但大多数常用的Unicode字符一个代码单元就可以表示。所以在这种情况下可以看成是字符串的长度 System.out.println(str1.length()); //codePointCount()方法:该方法返回给定字符串的码点数量,即字符个数 System.out.println(str1.codePointCount(0,str1.length())); //charAt(n)方法:返回位置n的代码单元 System.out.println(str1.charAt(4)); //得到第i个码点 int p=str1.offsetByCodePoints(0,4); //返回此String中从给定的index处偏移codePointOffset个代码点的索引。 int cp=str1.codePointAt(p); //返回指定索引处的字符(Unicode代码点)。 //遍历一个字符串,并且依次查看每一个码点 /*int i=0; int cp=str1.codePointAp(i); if(str1.isSupplementaryCodePoint(cp)) //确定指定字符(Unicode 代码点)是否在增补字符范围内。 i+=2; else i++; */ int[] cods=str1.codePoints().toArray(); //将字符串生成一个int型的流,,每个int值对应一个码点 String str=new String(cods,0,cods.length); //将码点数组转化成一个字符串 } }
大数值
如果基本整数运算和浮点运算不能满足精度要求,可以使用java.math中的BigInteger类和BigDecimal类
BigInteger类:实现任意精度的整数运算
BigDecimal类:实现 了任意精度的浮点运算
import java.math.BigInteger; import java.math.BigDecimal; public class BigNumber { public static void main(String[] args) { BigInteger.valueOf(1000000000L); //返回值等于long的大整数 BigInteger c=new BigInteger("100000000000000000000000000000"); c=c.add(BigInteger.valueOf(100L)); //c=c+other; System.out.println(c.toString()); //返回此BigInteger的十进制字符串表示形式 c=c.subtract(BigInteger.valueOf(100L)); //c=c-other; System.out.println(c.toString()); c=c.multiply(BigInteger.valueOf(100L)); //c=c*other; System.out.println(c.toString()); c=c.divide(BigInteger.valueOf(100L)); //c=c/other; System.out.println(c.toString()); c=c.mod(BigInteger.valueOf(600000000L)); //c=c%other; System.out.println(c.toString()); c=new BigInteger("100000000000000000000000000000"); System.out.println(c.compareTo(BigInteger.valueOf(100000000000L))); //比较大小,大于要比较的数返回正数,小于要比较的数返回负数,等于返回0; //同上,BigDecimal类也有同样的方法 } }阅读更多
相关文章推荐
- 选择合适的数据类型char和varchar , text和blob,浮点数(float)和定点数(decimal),日期类型选择,字符集的选择
- SQL中数据类型char/varchar/nvarchar/nchar/text/ntext的区别
- 选择合适的数据类型char和varchar , text和blob,浮点数(float)和定点数(decimal),日期类型选择,字符集的选择
- 黑马程序员——Java之String类、基本数据类型对象包装类等
- char、varchar、text、ntext、bigint、int、smallint、tinyint和bit的区别及数据库的数据类型
- 在C语言中,double、long、unsigned、int、char类型数据所占字节数
- 批量替换数据库中所有用户数据表中字段数据类型为char和varchar到nvarchar的脚本
- 【MySQL数据库 01-MySQL数据库基础】请写出下面 MySQL 数据类型表达的意义(int(0)、char(16)、varchar(16)、datetime、text)。
- Java学习(十)基本数据类型的包装类
- 关于2147217913 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界 的问题解决方法
- 在C语言中,double、long、unsigned、int、char类型数据所占字节数
- 对C语言中补码和char数据类型的理解
- char、varchar、text、ntext、bigint、int、smallint、tinyint和bit的区别及数据库的数据类型
- C/C++——求下面数据类型的最大值和最小值: char, short, int, long, float, double, long double和numeric_limits使用
- (转)Cstring转char、string、int等数据类型的方法
- Java学习笔记(1)——基本数据类型
- MySQL数据类型char与varchar中数字代表的究竟是字节数还是字符数?
- Oracle中char数据类型,length长度不足时,会自动用空格补上
- 数据库中数据类型char和varchar类型的理解
- 在C语言中,double、long、unsigned、int、char类型数据所占字节数