栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础(二)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础(二)

变量

数据类型:Java是一种强类型编程语言

生命周期:有效范围。Java提供了垃圾回收机制

Java中的数据类型可以分为两大类型:基本类型【原生】和引用类型【复杂】

基本类型

4型8种

整型:byte 1、short 2、int 4、long 8

  • Java采用补码的方式存储数据 。
  • 4种不同的表示方法:十进制、0八进制、0x十六进制、0b二进制
  • 在使用字面量,Java中的整数默认类型就是int,如果想表示long则在数值末尾添加l/L,一般建议使用L

浮点数:float 4、double 8

  • 在Java种浮点数无法精确存放,除非使用Java提供的类BigDecimal

     不允许使用等值==判断,应该使用Math.abs(a-b)<1e-6
    
  • 字面量的表示方式:十进制123.0、科学计数法1.23e2,注意e后面只能是整数

     数值末尾使用f/F表示float,使用D/d表示double
    

字符类型 char char c=‘中’;注意是单引号,不是双引号

  • Java中字符采用的是Unicode编码字符集,2B,对应的整数为0-65535
  • 字符类型的变量可以当作整数使用
  • ‘0’<‘A’<‘a’
  • Java中提供了转意字符,以反斜杠开头
    ddd 1-3位的8进制数对应的字符
    uxxxx 1-4位的16进制数对应的字符
    ’表示单引号
    ”表示双引号
    表示反斜杠字符

布尔类型 boolean

  • 只有两个数值:true表示真,false表示假
  • 在Java中整型数据和boolean值之间没有转换关系
//整型数的进制转换
 int  kk=123;
		   //将十进制转化为8进制
		   System.out.println("0"+Integer.toOctalString(kk));
		//将十进制转换为16进制
		   System.out.println("0x"+Integer.toHexString(kk));
		   //将十进制转换为2进制
		   System.out.println("0b"+Integer.toBinaryString(kk));

常见的数学计算`

  
		   double dd = 144.d;
		   System.out.println(Math.sqrt(dd));//开平方
		   int k1= 12;
		   System.out.println(Math.pow(k1,2));//计算k1的2次方
		   System.out.println(Math.pow(k1,0.5));//对k1开方
		   k1=-123;
		   System.out.println(Math.abs(k1));//绝对值
		   System.out.println(Math.max(k1, dd));//求两数的较大值
		   System.out.println(Math.min(k1, dd));//求两数的较小值
		   
		   dd = 3.45;
		   System.out.println(Math.ceil(dd));//天花板 4
		   System.out.println(Math.floor(dd));//地板 3
		   
		   dd = -3.45;
		   System.out.println(Math.ceil(dd)); //-3
		   System.out.println(Math.floor(dd)); //-4
		   
		   //四舍五入,注意考核中的坑在于对负数的处理
		   dd= -3.45;
		   System.out.println(Math.round(dd));//-3
		   dd=-3.56;
		   System.out.println(Math.round(dd));//-4
		   
		   //取随机数
		   System.out.println(Math.random());

除了简单计算之外,还有指数,对数,三角和反三角函数等方法的封装。

字符类型的基本使用

char c='a';
		System.out.println(c);//a
		c++;//给c+1;计算结果等价于c=c+1,但这里涉及数据类型转换的问题,所以c=c+1会语法报错
		System.out.println(c);//b
		//将字符类型转换为整数
		System.out.println((int)c);//98
		c='中';
		System.out.println(c+"===="+(int)c);//中====20013
		//转义字符
		System.out.println('123');// s
		int kk=0123;//0开头表示8进制
		System.out.println((char)kk);//s
		System.out.println('u9110');
		kk=0x9110;
		System.out.println((char)kk);
		char cc='\';
		System.out.println(cc);// 
		System.out.println((int)cc);// 92
基本数据类型转换

小转大自动转,大转小需强转 窄化操作

//小转大
byte b1 = 123;//自动识别123位byte类型,但是如果超出范围则自动报错
long k = b1;
double k2 =k1;
//大转小
double d1=123.456;
long k1 = d1;//语法错误
long k2 = (long)d1;

强制类型转换的语法(目标类型)变量
注意:boolean类型和数值类型之间没有任何关系,所以进行强制类型转换会包语法错误。

浮点数的特殊处理
针对浮点数系统默认的是double型,但是变量f1声明为float,所以这里需要进行数据类型转换或进行特殊声明。

double d1 = 123.456;
		//long k1 = d1;
		long k1 = (long)d1;//强制类型转换
		System.out.println(k1);//使用强制类型转换可能会导致精度缺失
		
		//针对浮点数的特殊处理
		//float f1=123.456;语法错误,type mismatch;cannot conver from double to float
		float f1 = 123.456f;
		float f2 = (float)123.456;
复合数据类型

复合数据类型包括:类class、接口interface、数组
特殊值null,在运行时并没有对应的类型,但是它可以被转换为任何复杂类型,表示没有存储数据,但是不能赋值给简单类型
复合类型的默认值就是null空指针

Object bb;//定义变量bb为复合数据类型object,object类是系统预定义
	//System.out.println(bb);这里报错是因为要去临时变量必须先定义后使用,
	//必须先赋初值后使用
	bb = null;
	System.out.println(bb);
常量

常量就是指在程序执行的期间其值不能发生变化的数据

final double PI = 3.1415;
PI=PI+1;//这里语法报错是因为PI是常量,不允许修改
表达式

表达式就是运算符、操作数以及方法的调用序列,用来说明某个计算过程并返回计算结果。

基本运算符可以分为:算术运算符、关系运算符、位运算符、条件运算符

  • ·算术运算符+ - * / % ++ –
  • 关系运算符> >= < <= ==等值 !=不等于
  • 逻辑运算符 &&与运算,表示并且的关系,
    ||或运算,表示或者的关系,
    !非运算,表示不是,
    重点在于计算过程中支持短路操作
  • 位运算 &与 |或 ^异或 ~按位取反
    <<左移位 >>右移位 >>>,基本不做要求,位运算符不支持短路操作
  • 赋值运算符 = += -= /= %=
  • 三目运算符(表达式1?表达式2:表达式3)
算数运算符

问题:将一个任意正整数进行反转,如果数值越界则返回-1

//Integer.MAX_VALUE最大整数
	int k = 2000000999;
	long res = 0;
	while(k>0)
	{
		int p=k%10;
		k=k/10;
		res=res*10+p;
		if(res>Integer.MAX_VALUE){
			res=-1;
			break;
		}
	}
	System.out.println(res);

如果这段代码需要进行多个地方使用,则需要一个方法,其中包含处理逻辑,其他地方使用时只需要通过名称就可以进行调用

public static void main(String[] args) {
int k = 2000000999;
System.out.println(reverse(k));}
	public static int reverse(int x){
	
	long res = 0;
	while(x>0)
	{
		int p=x%10;
		x=x/10;
		res=res*10+p;
		if(res>Integer.MAX_VALUE){
			res=-1;
			break;
		}
	}
	return (int)res;//因为res声明的类型为long类型,但是返回类型为int,所以需要进行强制类型转换
}
关系运算符 逻辑运算符 赋值运算符
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/440043.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号