首页 > 编程语言 >7、Java内置工具类

7、Java内置工具类

时间:2023-05-02 15:44:24浏览次数:33  
标签:内置 Java System println new 工具 null public out

Java内置工具类

1.字符串类

1.String类

  • String类不能被修改
  • 其被修改的本质是申请新的内存空间,所以其每一次更改都会new新的对象
  • 适用于需要量小不怎么修改的字符串时

2.StringBuffer和StringBuilder

  • StringBuffer是多线程安全的类,适用于多线程。
  • StringBuilder是多线程不安全的类,适用于单线程。
  • 他们在被修改的时候不会new对象,适用于大量的修改字符串时

2.Scanner类

public class Test {

	public static void main(String[] args) {
        //通过new一个Scanner类对象获得标准输入设备
		Scanner in = new Scanner(System.in);
		
		int data;
        //当输入的数据时Int类型时进行循环并输出,不是int直接返回false
		while(in.hasNextInt()) {
			data = in.nextInt();
            System.out.println(data);
		}
		
		in.close();

	}
		
}
  • hasNext()和hasNextLine区别:

当程序遇到它们时就会停下等待输入,hasNext()会判断键盘缓冲区是否有非空白输入,若有,则会把非空白输入放入缓冲区,否则会一直等待非空白输入,而hasNextLine()会判断键盘缓冲区是否有输入(包括空白输入),回车键结束输入然后把所得输入放入键盘缓冲区

  • in.next()和in.nextLine()区别:

两者都会从键盘缓冲区读取数据,前者会读取非空白输入(当遇到第一个非空白数据开始读取,之后在遇到空白数据会停下,若无非空白数据则不会结束),并释放键盘缓冲区,后者全部读取,以回车为结束符,并释放键盘缓冲区

  • hasNextInt()

若得到的非空白数据是整型,则返回true,若输入不是整型返回false(空白除外,空白会一直等待输入),hasNextDouble()同理(遵循自动类型转换规则)

3. 一维数组

public class Test {

	public static void main(String[] args) {
		int[] arrInt = {1, 2, 3, 4};
		Double[] arrDouble = new Double[10];
		Float[] arrFloat;
		
		arrFloat = new Float[5];
        
		//输出三个数组的类
		System.out.println(arrInt.getClass());
		System.out.println(arrDouble.getClass());
		System.out.println(arrFloat.getClass());
		System.out.print("arrInt数组的内容:");
		
		for(int i : arrInt) {
			System.out.print(i + " ");
		}
		System.out.println();
		System.out.print("arrDouble数组的内容:");
		
		for(Double i : arrDouble) {
			System.out.print(i + " ");
		}
		System.out.println();
		System.out.println("arrDouble的长度:" + arrDouble.length);

		System.out.print("arrFloat数组的内容:");
		
		for(Float i : arrFloat) {
			System.out.print(i + " ");
		}
		
		
	}
		
}

结果:

class [I

class [Ljava.lang.Double;

class [Ljava.lang.Float;

arrInt数组的内容:1 2 3 4

arrDouble数组的内容:null null null null null null null null null null

arrDouble的长度:10

arrFloat数组的内容:null null null null null

注意:

八大基本类数组内容默认是0,其他类默认是null,哪怕未赋初值,数组长度size()也会返回设定的长度

4.日历类Calendar

public class Test {

	public static void main(String[] args) {
		//使用日历类的静态方法获得单例的对象
		Calendar today = Calendar.getInstance();
		
		//定义下面需要的格式字符串对象
		String df = "YYYY年 MM 月 dd 日 HH时mm分ss秒";
		
		//把df字符串作为参数,申请SimpleDateFormat的对象
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat(df);
		
		//调用format()方法
		String str = simpleDateFormat.format(today.getTime());
		
		//输出str
		System.out.println(str);
		
		
	}
		
}

5.自动拆箱与封箱

Java八大基本类型与他们对应的八大类可以自动转换

6.泛型

  1. 当某一个类有泛型标志,则这个类中可以用这个当做一种数据类型
public class MyGeneric <T, K>{
    public T a;
    private K b;
}
  1. 当一个方法返回值类型前出现泛型标志,则代表这个方法可以用泛型
public static <T> T getA(T a){
    return a;
}

7.ArrayList和LinkedList

public class Test {

	public static void main(String[] args) {
		ArrayList<Integer> arrayList = new ArrayList<>();
		LinkedList<String> linkedList = new LinkedList<>();
		
		arrayList.add(1);
		arrayList.add(2);
		
		int num = arrayList.get(0);
		
		System.out.println("arrayList的第一个元素是 " + num);
		
		int location = arrayList.indexOf(1);
		System.out.println("1在arrayList的下表是:" + location);
		
		
		System.out.println("判断3是否存在于arrayList中:" + arrayList.contains(3));
		
	}
		
}

注意: indexof()方法contains方法是依赖equals()方法的,默认情况下equals()方法比较的是对象的内存地址,在ArrayList类中重写了equals()方法和hashCode()方法,所以我们可以这样比较

8. HashMap

public class Test {

	public static void main(String[] args) {
		HashMap<Integer, String> map = new HashMap<>();
		
		map.put(0, "张三");
		map.put(1, "李四");
		map.put(2, "王五");
		
		for(int i : map.keySet()) {
			System.out.println(map.get(i));
		}

	}
		
}

结果:

张三

李四

王五

特征:

  1. 键值唯一,如果给已经赋过值的键赋值,会覆盖之前的值
  2. map.size()会输出有效键值对的个数
  3. 在键值对个数大于16后,会采用“红黑树”高效的数据结构,对于大量的数据操作是,效果十分明显
  4. 红黑树操作最差的时间复杂度是O(logN)

标签:内置,Java,System,println,new,工具,null,public,out
From: https://www.cnblogs.com/geeklee/p/17367776.html

相关文章

  • 简单总结JavaScript中的微任务和宏任务
    在JavaScript中,任务被分为宏任务和微任务。宏任务:常见的宏任务有setTimeout、setInterval、I/O、UI渲染等等。这些任务都是由浏览器或Node.js中的事件循环调度执行的,它们会被放入一个任务队列(taskqueue)中,等待执行。微任务:常见的微任务有Promise、MutationObserver等。......
  • 理解 Java8 的时间API(二)时间
    理解Java8的时间API:java.time上一篇介绍了Java8里新的时区API。这一篇介绍新的时间API:LocalDateTime,LocalDate,LocalTime类。三、Java8中的时间最常用的应该是java.time.LocalDateTime,java.time.LocalDate,java.time.LocalTime,java.time.Instant这几个类。3.1LocalDateTim......
  • python轻量级性能工具-Locust
    python轻量级性能工具-Locust Locust基于python的协程机制,打破了线程进程的限制,可以能够在一台测试机上跑高并发性能测试基础1.快慢:衡量系统的处理效率:响应时间2.多少:衡量系统的处理能力:单位时间内能处理多少个事务(tps)性能测试根据测试需求最常见的分为下面三类......
  • Java 网络编程 —— ServerSocket 详解
    构造ServerSocketServerSocket的构造方法有以下几种重载形式ServerSocket()throwsIOExceptionServerSocket(intport)throwsIOExceptionServerSocket(intport,intbacklog)throwsIOExceptionServerSocket(intport,intbacklog,InetAddressbindAddr)throwsIOE......
  • java反转部分链表后记
    由于链表只是一个单向链表所以不能在一次循环之内就直接进行反转操作又因为只需要反转部分链表所以只要将链表遍历到需要反转的最后一位,剩下的不用管了于是我想到了在第一遍循环中用HashMap获取需要反转的链表的部分,键代表下标,值代表原先链表中val之后第二遍遍历时按照将值按......
  • [Javascript] avoid mutation: Array.prototype.toSpliced() vs splice()
    Array.prototype.splice()mutatestheoriginalarray.Toavoidmutation,weuseArray.prototype.slice().newmethodArray.prototype.toSpliced()returnanewarraytoavoidthemutation.constmonths=["Jan","Mar","Apr",&quo......
  • [Javascript] Avoid mutation, Array.prototype.toSorted() vs sort()
    sort(),mutatestheoriginalarray,andreturnthereferencetooriginalarrayandsorted.The toSorted() methodof Array instancesisthe copying versionofthe sort() method.Itreturnsanewarraywiththeelementssortedinascendingorder.const......
  • [Javascript] Avoid mutation, Array.prototype.toReversed() vs reverse()
    reverse()mutatestheoriginalarray,returnthereferencepointtotheoriginalarray.The toReversed() methodof Array instancesisthe copying counterpartofthe reverse() method.Itreturnsanewarraywiththeelementsinreversedorder.constite......
  • [Javascript] Array.prototype.with
    Prevously,whenwewanttoupateaniteminsideaarray:constitems=[{id:1,name:'a'},{id:2,name:'b'},{id:3,name:'c'},{id:4,name:'d'},{id:5,name:'e'}]constnewIt......
  • IT工具知识-18: ADB操作笔记(自用)
    Linux下的常用命令(持续更新)终端使用bashshell查询安卓设备当前活动的APP包名和活动窗口名adbshelldumpsyswindowwindows|grep-E'mCurrentFocus|mFocusedApp'启动指定app下的指定窗口app包名和活动窗口名都要提供,否则无法启动adbshellamstart包名/活动窗口......