Java类型转化

基本数据类型自动类型转换

基本数据类型之间的运算规则

前提:这里讨论7种基本数据类型变量间的运算,不包含布尔类型。

1.string是class类型

2.定义long型变量,必须以”l”或”L”结尾

3.定义float型变量,变量要以”f”或”F”结尾

4.char型初始化要有值,单引号括住

自动类型提升

byte/short/char -> int -> long -> float->double

当byte/short/char三种类型(同类型也是)做运算时,结果至少用int接收

java在做运算时,如果操作数均在int范围内,那么一律在int的空间内运算

强制类型转换 - 自动类型提升的逆运算

(强制转换的类型)xx

特殊情况

情况1:long l = 12315465111 会把12315465111当作int型(此时会编译失败因为超出int的范围),类型提升到long型

情况2: 浮点型默认的是double,所以float型后面一定需要添加f/F

int与long

将long型转化为int型

long   a = 10;
int b = (int)a;

将Long型(包装类)转换为int型

Long a = 10;
int b=a.intValue();

将int型转化为long型

int a = 10;
long b = a;

将Integer型(包装类)转化为long型

int a = 10;
Long b = a.longValue();

int类型与String类型

int类型转换成String类型

方法1:+ 拼接空串

String str = n + "";

方法2:String.valueof()

value值为其他类型

String s = String.valueOf(value);

String类型转换成int类型

方法1:Integer.parseInt(str)

Integer.parseInt(str,[进制])

说明

目的是输出一个十进制数

参数

str表示输入的字符串

参数2表示当前的str是几进制,默认是十进制

扩展:包装类.parseXxx(String str)

String转换为其他类型

byte b = Byte.parseByte( str );
short t = Short.parseShort( str );
int i = Integer.parseInt( str );
long l = Long.parseLong( str );
Float f = Float.parseFloat( str );
Double d = Double.parseDouble( str );

char数组类型与String

String转换为char[]类型

方法1:str.toCharArray()

char[] stringToChar=str.toCharArray();

Char[] 类型转换成String

方法1:String的构造器方法

String str = new String(arr);

集合Collection与数组

coll转换成数组

方法1:coll.toArray()

toArray有两个重载的方法:

1.list.toArray():将list直接转为Object[] 数组;

2.list.toArray(T[] a):将list转化为你所需要类型的数组。

案例:转换成二维数组

return list.toArray(new int[list.size()][]);

数组转换成List

方法1:Arrays.asList(arr)

使用场景

生成一个不可更改的list

说明

1.该方法适用于对象型数据的数组(String、Integer...)

2.该方法不建议使用于基本数据类型的数组(byte,short,int,long,float,double,boolean)

3.该方法将数组与List列表链接起来:当更新其一个时,另一个自动更新

4.不支持add()、remove()、clear()等方法。用此方法得到的List的长度是不可改变的

List arr = Arrays.asList(new int[]{123,456})会把new int[]{123,456}整体看成一个元素,基本数据类型数组会被看成一个整体。

可以写成 List arr = Arrays.asList(123,456)

案例

return list.toArray(new int[list.size()][]);

Java 数据类型转化的更多相关文章

  1. mysql-数据类型与java数据类型转化工具类

    mysql和java对照表 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang.Stri ...

  2. 2、数据类型和运算符——Java数据类型

    一.强类型语言和弱类型语言: 1.1 强类型语言 强类型语言是一种强制类型定义的语言,一旦某一个变量被定义类型,如果不经过强制转换,则它永远就是该数据类型了,强类型语言包括Java..net .Pyt ...

  3. Java数据类型分析

    Java的简单数据讲解列表如下: int:int为整数类型,存储的时候,用4个字节存储,范围为-2,147,483,648到2,147,483,647,在变量初始化的时候,int类型的默认值为0.   ...

  4. 回顾java基础—Java数据类型

    1  java数据类型.8种基本类型,3种引用类型 基本类型(也称:原始类型):byte.short.int.long.char.float.double.boolean 引用类型:类,接口,数组 2 ...

  5. JAVA数据类型,变量,转换,常量,运算符

    java数据类型: Java基本类型共有八种,基本类型可以分为三类: 1.字符类型char,用单引号赋值 2.布尔类型boolean 3.数值类型byte.short.int.long.float.d ...

  6. 多态、GC、Java数据类型

    多态 一.java中实现多态的机制是什么? 靠的是: 父类定义的引用变量可以指向子类的实例对象,或者接口定义的引用变量可以指向具体实现类的实例对象 而程序调用的方法,在运行期才动态绑定, 它就是引用变 ...

  7. java数据类型定义与输出

    JAVA数据类型分基本数据类型和引用数据类型. 一.基本数据类型 Java里面包含8个基本数据类型,分别是: boolean.byte.char.short.int.float.douboe.long ...

  8. java数据类型图:

    java数据类型图:                                 ┏数值型━┳━整数型:byte short int long               ┏基本数据类型━━┫   ...

  9. java数据类型学习

    java数据类型基本分为两类: 一类为基本数据类型: 数值类型: 整数类型:byte.short.int.long 浮点类型:float.double 字符类型:char 布尔类型:boolean 一 ...

随机推荐

  1. 对dy和Δy的浅薄理解

    一.导数定义 当函数y=f(x)的自变量x在一点x0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f'(x0)或df(x0) ...

  2. Java并发:重入锁 ReentrantLock(二)

    一.理解锁的实现原理 1. 用wait()去实现一个lock方法,wait()要和synchronized同步关键字一起去使用的,直接使用wait方法会直接报IllegalMonitorStateEx ...

  3. Android上安装第三方库

    在Android sdk中安装预安装第三方的(动态,静态)库,到系统中,方便模块无差别的使用. Android.mk include $(CLEAR_VARS) LOCAL_MODULE_TAGS : ...

  4. 认识Linux系统中的inode,硬链接和软链接

    在学习和创建软链接遇到了一点问题,总结一下: 在当前文件夹下面建立了两个临时文件夹tempdir1和tempdir2,然后在tempdir2里面创建了一个hello文件,然后用指令ln -s temp ...

  5. The art of multipropcessor programming 读书笔记-3. 自旋锁与争用(2)

    本系列是 The art of multipropcessor programming 的读书笔记,在原版图书的基础上,结合 OpenJDK 11 以上的版本的代码进行理解和实现.并根据个人的查资料以 ...

  6. Typecho 反序列化漏洞 分析及复现

    0x00 漏洞简介 CVE-2018-18753 漏洞概述: typecho 是一款非常简洁快速博客 CMS,前台 install.php 文件存在反序列化漏洞,通过构造的反序列化字符串注入可以执行任 ...

  7. Qt5 项目程序打包发布 详细教程

    概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装文件. ...

  8. Java测试开发--lambda函数式编程(六)

    1.Lambda 表达式,是jdk1.8特性,接口里只有一个方法. 举例说明 // ()参数列表 ->连接符 {方法体} 经常在匿名对象 testPerson(()->{System.ou ...

  9. Linux mem 2.7 内存错误检测 (KASAN) 详解

    文章目录 1. 简介 2. Shadow 区域初始化 3. 权限的判断 3.1 read/write 3.2 memxxx() 4. 权限的设置 4.1 buddy 4.1.1 kasan_free_ ...

  10. ArrayList 源码分析和自定义ArrayList实现

    概述 ArrayList 是基于数组实现的,是一个能自动扩展的动态数组. ArrayList 是线程不安全的,多线程情况下添加元素会出现数组越界的情况,而且数组赋值操作不是原子操作,会导致多线程情况下 ...