java学习(一)——数据类型、String类、char类型

数据类型

基本数据类型

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不区分变量的声明和定义
		
		//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类也有同样的方法
	}
}

C语言数据类型
返回目录

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值