Java 包装类及其与String转换、进制转换
一、包装类
1.基本类型和引用类型
Java中的基本类型我们都知道有8种,但是作为基本类型限制功能的发挥,例如整形转String类型等可能需要类方法实现会更加简便。那么八个基本类型对应八个包装类,即引用类型。具体对应如下:
char--Character int--Integer boolean--Boolean double--Double float--Float byte--Byte short--Short long--Long
2.值传递和引用传递
这应该是规范的叫法,我姑且这么叫着,所谓按值传递,就是形参改变不影响原有数值,而引用传递形参实参共用同一个内存空间,一个改变,另一个也会跟着相应的改变。那么哪些是按值传递,哪些又是引用传递呢?
已知的情况基本类型均是按值传递,而类实例对象均是按照引用传递。
特殊的情况有:
数组是按照引用传递的,但是s[0]=9这种可以改变,s=b新数组无法改变原数组的值;
String类型反正形参改变不会改变实参。
3.包装类的构造函数
包装类的构造函数一般都有两个,一个参数是自己对应的基本类型,例如:
Integer i=new Integer(3);
or
int j=3;
Integer i=new Integer(j);
另一个就是以对应的String类型作为参数(Character不行):
Float f=new Float("1.23");
如果不是对应的类型,则会抛出NumberFormatException异常。
4.包装类和String类之间的相互转换
(1) String类型转换为相应的包装类
接下来以Integer和int为例,其余七个包装类均相同:
/*String to Integer - 1*/
String s="23";
Integer i=new Integer(s);
System.out.println(i); /*String to Integer - 2*/
Integer k=Integer.valueOf(s);
System.out.println(k); /*String to int - 1*/
int j=Integer.parseInt(s);
System.out.println(j);
/*String to int - 2*/
int l=Integer.valueOf(s).intValue(); //甚至可以不需要intValue()方法都可以
System.out.println(l);
(2) 包装类转换为String
以Double和double为例:
double a=10.36;
Double b=12.48;
/* to String - 1*/
String s1=a+"";
String s2=b+"";
System.out.println(s1+s2); /*to String - 2*/
String s3=b.toString();
String s4=Double.toString(a);
String s5=Double.toString(b);
System.out.println(s3+s4+s5); /* to String - 3*/
String s6=String.valueOf(a);
String s7=String.valueOf(a);
System.out.println(s6+s7);
(3)十进制转为二、八、十六进制
除了自己用除法计算外,Java提供了很多方便的方法,例如以下两类:
int d=59; //or Integer
String b=Integer.toBinaryString(d);
String o=Integer.toOctalString(d);
String h=Integer.toHexString(d);
System.out.println(b+" "+o+" "+h); /* Decimal to Binary Hex or Oct - 2*/
String b1=Integer.toString(d,2);
String o1=Integer.toString(d,8);
String h1=Integer.toString(d,16);
System.out.println(b1+" "+o1+" "+h1);
结果如下:
111011 73 3b
111011 73 3b
均是将数值转换为String的其他进制。我们可以使用前面提过的方法在转换为int或者包装类。注:这里只讨论API方法。
(4)其他进制转十进制
/* Binary Hex or Oct to Decimal - 1*/
int a1=0b1001010;
int a2=01576;
int a3= 0xFA902;
System.out.println(a1+" "+a2+" "+a3); /* Binary Hex or Oct to Decimal - 2 - From String*/
String st1="1001010";
String st2="1576";
String st3="FA902"; int b2=Integer.parseInt(st1,2);
int o2=Integer.parseInt(st2,8);
int h2=Integer.parseInt(st3,16);
System.out.println(b2+" "+o2+" "+h2); /* Binary Hex or Oct to Decimal - 3 - From String*/
int b3=Integer.valueOf(st1,2);
int o3=Integer.valueOf(st2,8);
int h3=Integer.valueOf(st3,16);
System.out.println(b3+" "+o3+" "+h3);
后面两种必须从String开始转换,实际操作中具有较大局限性,因为获得一个字符串型的二进制或其他进制可能是受限的,或者说有条件的,无法直接从int型进行转换,直接转换就会自动变成十进制,如第一种方法所示。
最后贴一下结果:
74 894 1026306
74 894 1026306
74 894 1026306
Java 包装类及其与String转换、进制转换的更多相关文章
- Java的浮点数和整数的进制转换
整数的表达 –原码:第一位为符号位(0为正数,1为负数) –反码:符号位不动,原码取反 –负数补码:符号位不动,反码加1 –正数补码:和原码相同 -6 5 原码 10000110 0 ...
- 【JAVA随摘笔记一】进制转换
// 十进制转其它进制(二进制,八进制,十六进制) ; System.out.println(Integer.toBinaryString(k));// 转二进制 10001 System.out.p ...
- java中的进制转换
java中的进制转换及转换函数 转自:https://blog.csdn.net/V0218/article/details/74945203 Java的进制转换 进制转换原理 十进制 转 二进制: ...
- 【JavaScript】进制转换&位运算,了解一下?
前言 在一般的代码中很少会接触到进制和位运算,但这不代表我们可以不去学习它.作为一位编程人员,这些都是基础知识.如果你没有学过这方面的知识,也不要慌,接下来的知识并不会很难.本文你将会学习到: 进制转 ...
- JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)
主函数类MainDemo.java package com.itcast.test20140109; import java.util.ArrayList; import java.util.Coll ...
- java中Integer包装类的具体解说(java二进制操作,全部进制转换)
程序猿都非常懒,你懂的! 今天为大家分享的是Integer这个包装类.在现实开发中,我们往往须要操作Integer,或者各种进制的转换等等.我今天就为大家具体解说一下Integer的使用吧.看代码: ...
- java 13-4 Integer和String、int之间的转换,进制转换
1.int类型和String类型的相互转换 A.int -- String 推荐用: public static String valueOf(int i) 返回 int 参数的字符串表示形式. B. ...
- JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算
JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...
- 《java版进制转换》
import java.util.Scanner; class 十进制转成十六进制_2 { public static void main(String[] args) { int num = 0; ...
- Java:进制转换
进制转换是常常需要的一种数据处理,在java中的一些类中封装了具有转换功能的方法,这个不做介绍.其实,进制之间的转化是通过先位异或&,再位移动>>>的方式实现的. 例如,对于 ...
随机推荐
- 【FFMPEG】使用ffmpeg类库打开流媒体
版权声明:本文为博主原创文章,未经博主允许不得转载. 使用ffmpeg类库进行开发的时候,打开流媒体(或本地文件)的函数是avformat_open_input(). 其中打开网络流的话,前面要加上函 ...
- Java学习笔记-网络编程
Java提供了网络编程,并且在实际中有着大量运用 网络编程 网络编程概述 网络模型 OSI参考模型 TCP/IP参考模型 网络通讯要素 IP地址 端口号 传输协议 网络参考模型 网络通讯要素 IP地址 ...
- python装饰器使用详解
装饰器 '''装饰器:就是闭包(闭包的一个应用场景) -- 把要被装饰的函数作为外层函数的参数通过闭包操作后返回一个替代版函数 优点: -- 丰富了原有函数的功能 -- 提高了程序的可拓展性''' 开 ...
- 第六周&java实验报告四
实验报告: 一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:rad ...
- tinymce 中我输入的内容 清空问题
<tinymce v-model="formItem.hDtContent" ref="content" @accessory="handlea ...
- 阿里云服务器 lnmp安装流程
nginx安装:wget http://nginx.org/download/nginx-1.12.2.tar.gztar zxvf nginx-1.12.2.tar.gzcd nginx-1.12. ...
- Qt 4.5发布(最大的变动是换用LGPL许可证,移植进了苹果的Cocoa框架。之前的Qt只支持Carbon框架,现在的Qt 4.5两者都支持。单一源代码创建出支持32位或64位字节的Intel或PowerPC Mac二进制文件)
Nokia的开源Qt开发工具正式发布了4.5版.如前所述,Qt 4.5最大的变动是换用LGPL许可证,目前采用的三个许可证分别为LGPL/GPL和商业许可证. 新版 ...
- Java 面向对象的设计原则
一. 1.面向对象思想的核心: 封装.继承.多态. 2.面向对象编程的追求: 高内聚低耦合的解决方案: 代码的模块化设计: 3.什么是设计模式: 针对反复出现的问题的经典解决方案,是对特定条件下( ...
- Open API
OAuth和SSO都可以做统一认证登录,但是OAuth的流程比SSO复杂.SSO只能做用户的认证登录,OAuth不仅能做用户的认证登录,开可以做open api开放更多的用户资源. Open API即 ...
- Java 代码运行顺序
1.静态代码块,只执行一次,从上到下,先父类后子类 2.父类构造代码块,从上到下,然后父类构造方法,执行次数与实例化次数相关 3.子类构造代码块,从上到下,然后子类构造方法,执行次数与实例化次数相关