Java基础知识学习12-常用的API-03

基本数据类型的包装类

基本数据类型如int、float、double、boolean、char等是不具备对象的特征,比如:不能调用方法,功能比较简单。为了让基本数据类型具有对象的特征,Java为每个基本数据类型都提供了一个包装类,这样就具备了对象的特征。

将字符串转为基本类型的方法

 通用格式:包装类.parseXxxx(String str)

int a=Integer.parseInt("123456");
System.out.println(a+1);

将基本类型转换为字符串

       1、String a=基本数据类型+"";

       2、调用String的valueOf(基本数据类型)方法
       3、调用包装类中的toString(基本数据类型)方法

                int a = 2;
	        String b = a+"";
	        System.out.println(b + 1);
		String c = String.valueOf(a);
		System.out.println(c + 1);
		String d = Integer.toString(a);
		System.out.println(d + 1);

基本数据类型和对应的包装类对象之间的转换

       基本数值------->包装类的方式          装箱操作

1、构造方法(基本数据类型)

2、包装类.valueOf(基本数据类型)方法

Integer i = new Integer(3); //装箱操作 手动的
System.out.println(i + 1);
Integer ii = new Integer("3"); // 必须传入数字字符串,才能自动转为int类型的 装箱操作 手动的
System.out.println(ii + 1);
Integer i2 = Integer.valueOf(3); //装箱操作 手动的
Integer ii2 = Integer.valueOf("3"); //装箱操作 手动的

  包装类------>基本数据类型         拆箱操作

包装类对象.xxValue(); 返回一个基本数据类型

int a = i.intValue(); //拆箱操作 手动的
System.out.println(a);
Integer i = 4; // 自动装箱 基本数据--->包装类
int a = i + 5; // 自动拆箱 包装类---->基本数据
System.out.println(a);

  自动装箱与拆箱

基本类型可以使用运算符直接进行计算,但是引用类型不可以。而基本类型包装类作为引用类型的一种却可以计算,

原因在于,Java”偷偷地”自动地进行了对象向基本数据类型的转换。

相对应的,引用数据类型变量的值必须是new出来的内存空间地址值,而我们可以将一个基本类型的值赋值给一个基本类型包装类的引用。

原因同样在于Java又”偷偷地”自动地进行了基本数据类型向对象的转换。

自动拆箱:对象转成基本数值

自动装箱:基本数值转成对象

自动装箱(byte常量池)细节的演示

当数值在byte范围之内时,进行自动装箱,不会新创建对象空间而是使用原来已有的空间。

		Integer i1 = new Integer(100);    //手动装箱
		Integer i2 = new Integer(100);
		System.out.println(i1 == i2);   //false
		System.out.println(i1.equals(i2));      //true
		System.out.println("-------------------");
		//再byte(-128-127)范围内,你创建新的引用的时候如果值相同会指向同一个地址。
		Integer x = 124;      //自动装箱
		Integer y = 124;
		System.out.println(x == y);      //true
		System.out.println(x.equals(y));     //true

  System类

System类不能手动创建对象,因为构造方法被private修饰,阻止外界创建对象。System类中的都是static方法,类名访问即可

常用方法

Math类

Math类是一个工具类,使用的时候直接用类名.方法名就行

常用方法

  Arrays类

        Arrays类中包括操作数组的一些方法,例如排序、搜索

常用的方法

sort方法,用来对指定数组中的元素进行排序(元素值从小到大进行排序)

toString方法,用来返回指定数组元素内容的字符串形式

binarySearch方法,在指定数组中,查找给定元素值出现的位置。若没有查询到,返回位置为-1。要求该数组必须是个有序的数组。

定义一个方法,接收一个数组,数组中存储10个学生考试分数,该方法要求返回考试分数最低的后三名考试分数。
package com.oracle.demo1;

import java.util.Arrays;

public class demo7 {

	public static void main(String[] args) {
		int[] score = { 64, 76, 98, 12, 23, 43, 34, 56, 78, 90 };
		int[] b = print(score);
		System.out.println(Arrays.toString(b));
	}

	public static int[] print(int[] arr) {
		Arrays.sort(arr); // 从小到大进行排序
		int[] a = new int[3];
		System.arraycopy(arr,0,a,0,3);// 将分数最低的前三位复制到新数组a中
		return a;
	}
}

  大数据运算

       BigInteger

       在Java中把超过long型的整数不称为整数,它们被封装为BigInteger对象。在BigInteger类中,实现四则运算都是靠方法去实现的,而不是采用运算符。

BigInteger的构造方法

四则运算代码

public static void main(String[] args) {
		//大数据封装为BigInteger对象
          BigInteger big1 = new BigInteger("12345678909876543210");
          BigInteger big2 = new BigInteger("98765432101234567890");
          //add实现加法运算
          BigInteger bigAdd = big1.add(big2);
          //subtract实现减法运算
          BigInteger bigSub = big1.subtract(big2);
          //multiply实现乘法运算
          BigInteger bigMul = big1.multiply(big2);
          //divide实现除法运算
          BigInteger bigDiv = big2.divide(big1);
}

  BigDecimal类

float和double类型做运算时,很容易造成精度的损失。此时就用到BigDecimal类来计算提高计算精度

构造方法

public static void main(String[] args) {
          //大数据封装为BigDecimal对象
          BigDecimal big1 = new BigDecimal("0.09");
          BigDecimal big2 = new BigDecimal("0.01");
          //add实现加法运算
          BigDecimal bigAdd = big1.add(big2);

          BigDecimal big3 = new BigDecimal("1.0");
          BigDecimal big4 = new BigDecimal("0.32");
          //subtract实现减法运算
          BigDecimal bigSub = big3.subtract(big4);

          BigDecimal big5 = new BigDecimal("1.105");
          BigDecimal big6 = new BigDecimal("100");
          //multiply实现乘法运算
          BigDecimal bigMul = big5.multiply(big6); 

对于浮点数据的除法运算,和整数不同,可能出现无限不循环小数,因此需要对所需要的位数进行保留和选择舍入模式

原文地址:https://www.cnblogs.com/Java-125/p/8716509.html

时间: 2024-11-06 07:08:26

Java基础知识学习12-常用的API-03的相关文章

Java基础知识学习(九)

GUI开发 先前用Java编写GUI程序,是使用抽象窗口工具包AWT(Abstract Window Toolkit).现在多用Swing.Swing可以看作是AWT的改良版,而不是代替AWT,是对AWT的提高和扩展.所以,在写GUI程序时,Swing和AWT都要作用.它们共存于Java基础类(Java Foundation Class,JFC)中. AWT依赖于主平台绘制用户界面组件:而Swing有自己的机制,在主平台提供的窗口中绘制和管理界面组件.Swing与AWT之间的最明显的区别是界面组

java基础知识学习笔记(四)

类与对象 java是一种面向对象的开发语言.java程序是由类与对象组成的.类与对象之间有什么关系呢? 类是构造对象的蓝图或模板.由类构造对象的过程,称之为创建类的实例.可知对象就是类的一种实例或具体实现.为什么为选用java语言做开发,这种面向对象的语言对开发有什么好处? 首先,从设计上,对一个问题,你可以暂且不管它的具体实现是什么,先把它抽象成一个对象,问题中涉及到的数据,变成对象中的实例域,求解问题的方法,变成对象中的方法,这样做可以分清要对哪些数据进行操作,逻辑上比较清晰. 其次,当问题

java基础知识学习

Java 内存分配策略 静态存储区(方法区):主要存放静态数据.全局 static 数据和常量.这块内存在程序编译时就已经分配好,并且在程序整个运行期间都存在. 栈区 :当方法被执行时,方法体内的局部变量(其中包括基础数据类型.对象的引用)都在栈上创建,并在方法执行结束时这些局部变量所持有的内存将会自动被释放.因为栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限. 堆区 : 又称动态内存分配,通常就是指在程序运行时直接 new 出来的内存,也就是对象的实例.这部分内存在不使

Java基础知识学习笔记(一)

理解面向对象: Java纯粹的面向对象的程序设计语言,主要表现为Java完全支持面向对象的三个基本特征:继承.封装.多态. Java程序的最小单位是类,类代表客观世界中具有某种特征的一类事物,这些类可以生成系统中的多个对象,而这些对象直接映射成客观世界的各种事物,整个Java程序由一个一个的类组成. 结构化(主张按功能把软件逐步细分,面向功能)/面向对象程序设计:(分析>设计>编程)SA/OOA > SD/OOD > SP/OOP 结构化程序设计最小的程序单元是函数,每个函数都负责

JAVA 基础知识学习笔记 名称解释

Java ee:? IDE: ? itegrity   development environment 集成开发环境 JMS:? java Message Service java   信息服务 JMX? Java Management Extensions,即Java管理扩展 JNDI:(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司 提供的一种标准的Java命名系统接口,JNDI提供统一的客户端 API,通过不同的访问提供者接口J

Java基础知识强化12:Java中运用数组的四种排序方法

1.使用JavaApi文档中的Arrays类中的sort()进行快速排序 首先我们直接看代码如下: 1 package himi.text; 2 3 import java.util.Arrays; 4 5 public class TestDemo01 { 6 7 public static void main(String[] args) { 8 int[] array = {2,12,3,44,27}; 9 /** 10 * 利用使用JavaApi文档中的Arrays类中的sort()进行

Java基础知识学习(八)

IO操作 5个重要的类分别是:InputStream.OutStream.Reader.Writer和File类 面向字符的输入输出流 输入流都是Reader的子类, CharArrayReader 从字符数组读取的输入流 BufferedReader 缓冲输入字符流 PipedReader 输入管道 InputStreamReader 将字节转换到字符的输入流 FilterReader 过滤输入流 StringReader 从字符串读取的输入流 LineNumberReader 为输入数据附加

JAVA基础知识(12)-----同步

好处:解决了线程安全问题.弊端:相对降低性能,因为判断锁需要消耗资源,产生了死锁.定义同步是有前提的:1,必须要有两个或者两个以上的线程,才需要同步.2,多个线程必须保证使用的是同一个锁. 同步的第二种表现形式:同步函数:其实就是将同步关键字定义在函数上,让函数具备了同步性. 同步函数是用的哪个锁呢?通过验证,函数都有自己所属的对象this,所以同步函数所使用的锁就是this锁. 当同步函数被static修饰时,这时的同步用的是哪个锁呢?静态函数在加载时所属于类,这时有可能还没有该类产生的对象,

JAVA基础知识总结12(多线程)

进程:正在进行中的程序.其实进程就是一个应用程序运行时的内存分配空间. 线程:其实就是进程中一个程序执行控制单元,一条执行路径.进程负责的是应用程序的空间的标示.线程负责的是应用程序的执行顺序. 一个进程至少有一个线程在运行,当一个进程中出现多个线程时,就称这个应用程序是多线程应用程序,每个线程在栈区中都有自己的执行空间,自己的方法区.自己的变量. jvm在启动的时,首先有一个主线程,负责程序的执行,调用的是main函数.主线程执行的代码都在main方法中. 当产生垃圾时,收垃圾的动作,是不需要