同步集合类 -笔记整理13

Java面试题简答(整理) 1、String 和StringBuffer的区别? - String和StringBuffer都是java平台提供的两个两个类。 - String是不可变字符序列,String前面是由final修饰的,故而String修饰的字符串是不能改变的。 - 当字符序列不需要改变的时候选择用String - 所以String是不可变字符序列 - 而StringBuffer是可变字符序列 - 因此当字符数据... 阅读详情

同步集合

1.传统集合类在并发访问时的问题说明。

2.传统方式下用Collections工具类提供的synchronzedCollection方法来获得同步集合,分析该方法的实现源码。

 得到的同步集合,是在操作集合的增删改方法加了锁,不可以同时操作。

3.Java5种提供了如下一些同步集合类:

  (1)通过看Java.util.concurrent包下的介绍可以知道有哪些并发集合

     ConcurrentHashMap,CopyOnWriteArrayList,CopyOnWriteArraySet.

4.传统方式下的Collection在迭代集合时,不允许对集合进行修改。

  (1)根据AbstracList的checkForComodification方法的源码,分析产生ConcurrentModificationException异常的原因。

 

对CopyOnWriteArrayList对象使用代码示例1:

public class CollectionModifyExceptionTest {
	
	public static void main(String[] args) {
//		LinkedList users = new LinkedList();
//		ArrayList users = new ArrayList();
//		HashSet users = new HashSet();
		Collection users = new CopyOnWriteArrayList();
			
			//new ArrayList();
		users.add(new User("张三",28));	
		users.add(new User("李四",25));			
		users.add(new User("王五",31));	
		Iterator itrUsers = users.iterator();
//		Iterator itrUsers=users.listIterator();   
			/*
			 	理解iterator() listIterator() 俩个迭代器的去区别
				list的子类和set、map都可以使用iterator迭代器遍历
				只有list集合才可以获取listIterator集合,listIterator可以对迭代集合增加,删除元素,方法更多
			 */
		
		while(itrUsers.hasNext()){
			System.out.println("aaaa");
			User user = (User)itrUsers.next();
			if("李四".equals(user.getName())){
//				itrUsers.remove();          //使用迭代器删除也不会报错,          
				users.remove(user);        //在使用迭代器进行遍历集合的时候,不允许对集合修改,可以使用并发集合
						   //通过查看报错源码,在next()方法中维护了一个集合版本,都操作了集合,与期望版本不一致,抛出异常
			} else {
				System.out.println(user);				
			}
		}
	}
}	 



public class User implements Cloneable{
	private String name;
	private int age;
	
	public User(String name, int age) {
		this.name = name;
		this.age = age;
	}
	public boolean equals(Object obj) {
		if(this == obj) {
			return true;
		}
		if(!(obj instanceof User)) {
			return false;	
		}
		User user = (User)obj;
		//if(this.name==user.name && this.age==user.age)
		if(this.name.equals(user.name) 
			&& this.age==user.age) {
			return true;
		}
		else {
			return false;
		}
	}
	public int hashCode() {
		return name.hashCode() + age;
	}
	
	public String toString() {
		return "{name:'" + name + "',age:" + age + "}";
	}
	public Object clone()  {
		Object object = null;
		try {
			object = super.clone();
		} catch (CloneNotSupportedException e) {}
		return object;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getName() {
		return name;
	}
} 


集合笔记整理.doc 集合笔记 list arraylist集合 linkedlist集合 set hashset集合 treeset集合 map hashmap集合 terrset集合 不可变集合 立即下载

相关推荐

java 集合部分笔记

java 集合部分笔记 1 集合的概述 2 Collection接口和Iterator接口(迭代器) 3 List接口 4 Set接口 5 Map接口

java同步集合

转载出处:https://blog.youkuaiyun.com/yuruixin_china/article/details/82082195, http://youyu4.iteye.com/blog/2352846 同步集合可以简单地理解为通过synchronized来实现同步的集合。如果有多个线程调用同步集合的方法,它们将会串行执行。 arrayList和vector、stack Vector是线程安全的,源码中有很多的synchronized可以看出,而ArrayList不是。导致Vector效率无法和Ar

不羡_x的博客 554

机器视觉:9点标定的原理与实现

标定就是将机器视觉处理得到的像素坐标转换成实际项目中使用到的毫米坐标。简单说即使看看实际单位距离内有几个像素,如下图所示,10mm的距离内有222个像素,那像素坐标和实际的毫米坐标就有个比例关系了。

m0_49968063的博客 1万+

同步集合和并发集合

同步集合和并发集合 同步集合类:Hashtable、Vector 方法上有同步约束 (jdk1.0) 同 步 集 合 包 装 类 : Collections.synchronizedMap(new HashMap<>()) 和Collections.synchronizedList(new ArrayList<>()) —使用的是全局锁 并发集合类:ConcurrentHashMap、CopyOnWriteArrayList、CopyOnWriteHashSet 性能比较 同步集合比

Lecheng_的博客 707

超详细流式细胞术全流程解析:从样本制备到结果分析全攻略

流式细胞术(Flow Cytometry)是现代生物学和医学研究中不可或缺的高通量分析技术,可实现对细胞表型、功能状态、细胞周期等多维度参数的快速检测。本文将从实验全流程出发,详解样本制备、上机操作、参数设置及结果处理的核心要点,帮助科研人员精准掌握流式实验关键技术。

good_rrrrr的博客 3867

VSCode + ESP-IDF 项目搭建及配置

VSCode 搭建 ESP-IDF 开发环境

weixin_51358957的博客 2万+

Java 中一些常见的同步集合类

同步集合是指在多线程环境中可以安全使用的集合,这些集合在内部实现了同步机制,以确保多个线程对集合的同时访问不会导致数据不一致或其他并发问题。同步集合通过对公共方法(如add()remove()iterator()等)进行同步处理,来确保集合在任何时候都保持一个一致的状态。VectorVector是一个实现了可增长的对象数组,与ArrayList类似,但它是线程安全的。Vector的每个方法都是同步的,这意味着它是线程安全的,但性能上可能不如非同步的集合。

不安分的猿人的专栏 1065

卫星图像检测,分割,跟踪,超分辨率,数据集调研,以及论文笔记

目标检测,针对物体有很多类如桥,烟囱,罐子等,有静态图像下的检测,也就是图像源头多来自谷歌地图,但是前后帧没有任何联系,并且谷歌地图相对来说比较清楚,难度小一点,也有粗粒度以及较细粒度的检测,然后卫星视频的数据集较少,则可以通过前后帧的联系来辅助检测,并且卫星帧基本上只对车,船,飞机,火车进行检测,没有进行细粒度的检测即将车辆分类为卡车,皮卡,小轿车,但是关船,则可以分类为货船以及军舰,因为目前的卫星视频中小车实在太少了,难以进行更细粒度的检测。luojia 三号卫星。

zhangzhao147的博客 4706

同步集合类与 并发集合类

同步集合是Java集合框架中的一种集合类,它们的所有公共方法都是同步的,即在多线程环境中,一次只有一个线程能够访问这些方法。这种同步机制确保了集合的线程安全性。Vector:类似于ArrayList,但所有公共方法都是同步的。Hashtable:类似于HashMap,但所有公共方法都是同步的。Collections.synchronizedList(List list):返回一个同步(线程安全的)列表。

不安分的猿人的专栏 2324

YOLOv8 改进涨点 | 模块即插即用 直接可用

在目标检测任务中,注意力机制能够帮助模型聚焦于图像中的关键区域,显著提升检测精度。。创建模块代码注册模块修改任务解析tasks.py创建YAML配置文件模块核心优势适用场景计算开销SOCA捕获二阶统计信息,增强通道间相关性需要精细特征区分的场景中等SK自适应多尺度核选择多尺度目标检测中等偏高显式特征聚集-分配机制全局上下文建模中等A2-Net双线性注意力,高效全局交互复杂场景理解中等偏高CrissCross线性复杂度全局上下文高分辨率输入,长距离依赖较低。

u012133341的博客 2257

全球SAR卫星大盘点与回波数据处理专栏目录

本专栏将详细介绍各国各地区的SAR卫星的特点和性能,以及SAR回波数据的处理方法和技巧。主要介绍民用和商用SAR卫星,帮助你了解商业SAR卫星的最新动态和技术,MATLAB代码将全部开源。以下是专栏目录,持续更新中。

3159

Java 中的同步集合与并发集合

同步集合是指通过同步(synchronization)机制确保线程安全的集合类。Java 早期的集合类(如VectorHashtable)就是同步集合的一部分。这些集合类通过在内部方法上添加关键字来保证线程安全。此外,Java 还提供了方法,可以将非线程安全的集合类包装为线程安全的同步集合。并发集合是 Java 5 之后引入的集合类,专门设计用于高并发场景。并发集合通过更细粒度的锁或无锁算法(如CAS操作)来实现线程安全,从而显著提高了多线程环境下的性能。和是并发集合中的典型代表。

Flying_Fish_roe的博客 1192

卡尔曼滤波器中的Q,R

对于系统状态的估计(滤波结果)所使用的信息来源于两个方面,一个是对系统状态演变模型的了解,包括系统转移矩阵和输入控制矩阵,输入孔质量等,另一方面来自于对系统状态的观测量。从上面公式来看,真正所要滤波得到的结果来自于公式(4)中的系统状态估计值x的某些分量,公式(4)的结果是由公式(1)所得到的状态预测值和来自观测量y计算得到的。所以,在不同算法中,R, Q的取值根据反应的不同量纲,可以有很大的变化,但它们的比值会决定了滤波值应该更多来自于系统模型演化的信息,还是来自于观察信号信息。

qq_43416206的博客 499

整理华为最新Java软件开发应试人员考试试题

JAVA基础篇 1、简述你所知道的JAVA修饰符及各自的使用机制? public:允许所有客户访问 protected:只能在本包内被该类的子类所使用 private:只允许在本类内使用 abstract:没有提供实现,需要子类提供 synchronized:方法获得对对象监控的访问权;如果该方法是static类型的,获得是对类本身的访问权。 final:你只能定义一个实体一次,以后不能改变它或继承它。一个final修饰的类不能被子类化,一个final修饰的方法不能被重写,一个final修饰的变量不能改变其

程序员Monkey的专栏 3800

知识追踪实战:lstm+ Multi-head Attention注意力机制的学生做题成绩预测实战

知识追踪实战:lstm+ Multi-head Attention注意力机制的学生做题成绩预测实战

2221

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java面试题读这一篇就够了:100个互联网大厂Java面试真题整理面试必考点【值得收藏】

据官方数据统计,在全球编程语言工程师的数量上,JavaEE 以900 万的程序员数量位居首位,很多软件的开发都离不开它。这里整理了100 家IT 名(阿里、百度、腾讯、携程)企面试题,为了帮助更多爱好并想学习编程的同学,整理了这篇资源帖子,只为帮助更多的人受益。内容包含:常见Java问题、Java线程、Java集合类、垃圾回收器(Garbage Collectiors)、异常处理、Java小应用程序(Applet)、Swing、JDBC、远程方法调用(RMI)、Servlet、JSP等内容。........

Jerry学长 1282

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【吐血整理】Java Collections你必须知道的13件事情

开始: 你好,早上、中午、下午、晚上好。我是Java2B哥(微信搜Java2B)。一名无缘985,日常996工程师。 Java Collections Framework是Java编程语言的核心部分之一。集合几乎用于每种编程语言中。大多数编程语言都支持各种类型的集合,例如列表,集合,队列,堆栈等。 文章目录开始:1.什么是Java Collections Framework?2. Java Co...

程序员Monkey的专栏 5442

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

经典Java面试八股文汇总及答案解析

不受检查的异常不需要在方法或者是构造函数上声明,就算方法或者是构造函数的执行可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者是构造函数的外面。如果没有正确的实现这两个方法,两个不同的键可能会有相同的hash值,因此,可能会被集合认为是相等的。当浏览器通过网络载入applet的时候,applet的类被放置于和applet的源相关联的私有的名称空间中。java.util包下面的所有的集合类都是快速失败的,而java.util.concurrent包下面的所有的类都是安全失败的。

2403_88969259的博客 1055

Java高频面试题整理(几万字)

吐血整理万字面试题

一个喜欢诗和远方的程序媛 1582

Java最全面试题及答案整理

本文摘要了Java面试常见问题及答案,涵盖基础语法、集合框架、多线程、IO流、反射等核心知识点。重点包括:final关键字的作用、字符串操作类区别、HashMap实现原理、多线程状态及锁机制、反射和动态代理应用等。还涉及JVM、Spring框架等扩展内容,整理了完整的Java面试题库,帮助开发者系统掌握Java核心技术要点和面试应对策略。

2401_89221445的博客 1093

Java面试题整理之每日30题(五)

java 基础类库(io 流,集合类,线程,Socket,AWT,Swing,sql) 1、java 中有几种类型的流?JDK 为每种类型的流提供了一些抽象类以供继承,请说出 他们分别是哪些类? 字节流,字符流。字节流继承于 InputStream OutputStream,字符流继承于 Reader Writer。在 java.io 包中还有许多其他的流,低层流与调层流,高层流主...

qq_41424909的博客 181

java 高并发编程(JUC)[狂神笔记+整理]

文章目录1.juc 编程2.进程和线程3.Lock锁(重点)4.生产者和消费者模式问题5. 八锁现象6.集合类不安全7.Callable(实现多线程的第三种方式)8.常用辅助类(高并发必会)8.1 .CountDownLatch 减法计数器8.2.CyclicBarrier 加法计数器 (栅栏,循环屏障)8.3 Semaphore 信号量;9.读写锁 ReadWriteLock10.BlockingQueue 阻塞队列SynchronousQueue 同步队列11.线程池(重点)自定义线程池如何设置线

weixin_45447134的博客 1331

整理面试题题库

1、java的数据类型** 基本数据类型:int,short,long,char,byte,boolean,float,double 引用数据类型:类(class),接口(interface),数组 2、jdk和jre的区别 jdk:java开发工具包,提供java的开发环境和运行环境 jre:java的运行环境,为java的运行提供了所需的环境 jdk里面包含了jre 3、==和equals的区别 ==:对于基本数据类型来说是值的比较,而对引用类型来说是地址的比较; equals:一般情况下是地址比较,只

qq_41640130的博客 415

Java经典面试题 带答案(四),腾讯java社招面试流程

关于分布式,限流+缓存+缓存,这三大技术(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

2401_84411849的博客 476

【面试笔记-Java开发岗】

总结了一下这周面试遇到的问题及答案

qq_44758772的博客 803

JAVA 集合类整理

ArrayList: 1.结构是数组结构; 2.增长长度=当前长度>>1 3.set方法获取的是之前的值 4.sublist方法返回的是内部类实例,内部类SubList。 5.默认长度是10。 6.最大长度为Integer.MAX_VALUE - 8,因为一些虚拟机会存储一些头部信息到数组中,需要预留出来。 LinkedList: 1.数据结构是双向链表,每个元素都有前...

weixin_30709635的博客 140
上一篇: 可阻塞的队列-笔记整理12
下一篇: 多线程同步问题-练习题1-笔记整理
马克吐温
博客等级 码龄10年 11粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值