字符串--String不可变前言可以证明,字符串操作是计算机程序设计中最常见的行为。本篇开始《Java编程思想》第13章,字符串的学习一、不可变String1. 什么是不可变对象?如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态...
持有对象--总结前言经过不断的努力,持有对象已经接近尾声,本小节将对之前的持有对象做一个系统性总结,另为下周小编要开始下一个篇章:字符串一、知识梳理java提供了大量的持有对象的方式:1.数组将数字和对象联系起来,它保存类型明确的对象,查询对象时,不需要对结果做类型转换,它可以是多维的,可以保存基本数据类型的数据,但是,数组一旦生成,其容量就不能改变2.Collection保存单一的元素,而...
持有对象--适配器方法惯用法前言本篇讲述《Java编程思想》第11.13.1小节,适配器方法惯用法一、Iterator和Iterable的区别和联系1.Iterable接口:从继承结构中可以看出,Iterable接口是Collection的顶层接口,所以Iterable是数据结构,用来存放数据的地方。2.Iterator接口:是定义了迭代逻辑的接口,即:用于遍历Collection(集合类)...
持有对象--Foreach与迭代器前言本篇将讲述《Java编程思想》第11.13节,Foreach与迭代器,想必大家对这两个东西都不陌生,今天就展开讲讲它们之前的关系,希望给大家带来帮助。一、概述foreach语法主要用于数组,但它也可以应用于任何Collection对象。foreach遍历Lit集合示例public class ForEachCollections { public...
【转载】Java实现多级菜单(递归)前言小编给大家转载一篇在工作中比较实用的技术文章,文章讲述的案例很经典,可根据自己项目的情况对判断条件可以进行修改。在工作中遇到类似问题大家可以来翻一下这篇博客,研究一下。代码菜单实体类:public class Menu { // 菜单id private String id; // 菜单名称 private String name; ...
持有对象--Collection和Iterator前言本篇讲述《Java编程思想》第11.12节,Collection和Iterator一、概述在进行本节之前,先对Collection和Iterator进行单独的介绍,温习一下1. CollectionCollection接口是List、Set和Queue接口的父接口,该接口定义的方法可以操作List、Set和Queue集合 ...
持有对象--PriorityQueue前言本篇将讲述《Java编程思想》第11.11.1小节,PriorityQueuePriorityQueue简介1.Queue(队列)和PriorityQueue(优先级队列)比较:Queue:先进先出(FIFO)PriorityQueue(优先级队列):通过比较器控制元素的输出顺序(优先级)PriorityQueue是Queue的子类。2.Priori...
持有对象--Queue前言本篇讲述《Java编程思想》第11.11节,Queue一、概念Queue即队列,是一个典型的先进先出(FIFO)的容器。即从容器的一端放入事物,从另一端取出事物,并且事物放入容器的顺序与取出的顺序是相同的。队列常被当作一种可靠的将对象从程序的某个区域传输到另一个区域的途径。因为队列可以安全地将对象从一个任务传输给另一个任务,所以队列在并发编程中特别重要。 L...
【转载】多线程并发问题多线程并发问题,基本是面试必问的。大部分同学应该都知道Synchronized,Lock,部分同学能说到volatile、并发包,优秀的同学则能在前面的基础上,说出Synchronized、volatile的原理,以及并发包中常用的数据结构,例如ConcurrentHashMap的原理。这篇文章将总结多线程并发的各种处理方式,希望对大家有所帮助。一、多线程为什么会有并发...