Thinking in Java - 学习笔记 - (十六)数组

Thinking in Java 自学笔记——第二章 一切皆对象 Thinking in Java 自学笔记——第二章 一切皆对象 个人原创,不喜勿喷。 立即下载

Java编程思想 - 第十六章 - 数组

数组与其他各类的容器之间的区别有三方面:效率、类型和保存基本类型的能力。

在Java中,数组是一种效率最高的存储和随机访问对象引用序列的方式。但是为这种速度所付出的代价是数组对象的大小被固定,并且在其生命周期中不可改变。

通常,数组与泛型不能很好地结合。不能实体化具有参数化类型的数组

    Peel<Banana>[] peels = new Peel<Banana>[10]; // illegal

擦除会移除参数类型信息,而数组必须知道它们所持有的确切类型,以强制保证类型安全。

但你可以参数化数组本身的类型。

相对使用数组,容器几乎总是更好的选择(作者观点)。

专治疑难系列 - 解决打印机凭证冲突问题 一、问题描述 二、解决方法 三、问题已解决 阅读详情

相关推荐

Coze工作流实战:Coze一键生成沉浸式历史故事视频

【coze工作流实战】一键生成火爆的沉浸式历史故事视频!短短3分钟,顶替你3天的工作量!

bickys的博客 1004

《Thinking in java》-学习笔记(8)

第8章 对象的容纳 1.数组 考虑到执行效率和类型检查,尽可能地采用数组。 2.集合 四种类型:Vector(矢量)、bitset(位集)、Stack(堆栈)、Hashtable(散列表)。 Hashtable是一种关联数组,允许我们将对象关联起来,集合类会自动改变自身的大小。 缺点是:将对象置入一个集合时丢失了类型信息,在使用的时候必须进行造型。 3.枚举器(反复器) 可以利用集...

DeepingC 1459

天线学习笔记——HFSS简单阵列天线

在HFSS15.0版本中使用 Radiation --> Antenna Array Setup 设置天线阵列的参数时的设计列表如下: 值得注意的是,在该版本中所定义的是:第一个阵元的位置坐标(First Cell Position)、阵元之间的间距(Directions)和阵元的数量(Number of Cells) 这些参数。 在ANSYS中的HFSS仿真中定义天线阵列如下: 与老版本不同的是:中心点坐标(Center Position)和布局设置(Layout Setting)。在布局设置中

Ethan的博客 1万+

Thinking in Java 学习笔记

Java内存JVM内存空间划分:l  方法区(Method Area):方法区存放类信息(类名、修饰)、类的静态变量、final常量和方法信息。在Hotspot中,方法区对应的是持久代(permanent generation)。方法区的垃圾收集主要针对常量池回收和对已加载类的卸载l  堆区(Heap):堆区存放对象实例及数组,通过new创建的对象都存储在堆区,堆区在虚拟机启动的时候被创建,并被所...

Walle的博客 1138

股票分时数据获取-东方财富

获取下股票分时数据,分时均价下线,分时成交额等,用于量化t0交易条件还是很不错了的。

meiaoxue1234的博客 1万+

ArcGis布局视图中Excel表格无边框插入与图例符号边框定制技巧

本文详细解析了在ArcGis布局视图中实现Excel表格无边框插入与图例符号边框定制的专业技巧。通过源头净化Excel表格、精准粘贴以及分解图例并单独设置边框属性,有效解决了地图报告中常见的视觉粗糙问题,帮助用户提升专题图与报告的精致度与专业感。

weixin_29292535的博客 305

thinking in java学习笔记-第一章

最近开始拜读java编程思想这本书,这本书的经典之处我就不过多宣扬了,在这里我只谈谈我读这本书的感受。 这本书是由Bruce Eckel,这个人也许不熟悉,但是他的作品可是如雷贯耳啊,Bruce Eckel是MindView公司的总裁,这个公司提供一些软件资讯和培训。他是C++标准委员会拥有表决权的成员之一,拥有应用物理学学士和计算机工程硕士学位。Bruce Eckel从1984年至今,已经

雪夕阳 1522

电子产品的老化测试有哪些类型?

因此,越来越多的人在寻找“已知合格的测试连接器”,即经过测试具有可靠性和有效性的测试连接器,可以在老化测试中制定优化方法。例如对于芯片来说,不同的封装有不同的老化测试座,QFP老化测试座,QFN老化测试座等。老化测试时,专用老化电路板上的元件将承受等于或高于其额定工作条件的压力,以消除任何在额定寿命之前过早失效的元件。静态老化:在此类系统中,将测试设备安装到老化板上的插座中,然后放入老化箱中,其中每隔12至24小时施加电源和高温。动态老化:在动态老化系统中,设备以老化速度设定的最大速率进行测试。

软件技术的专栏 1839

第21章 并发 ——《Thinking in Java》学习笔记

说道并发,就有种异常高大上的感觉,好像比那些顺序编程有种不可明辨的优越感一样,是的,并发的确更深奥,而且现在全世界都离不开并发程序。 但是什么是并发?并发能做什么?并发如何实现? ------------------------------------------------------------------------------------------------------------

Hope6537的码农攀爬之路 2382

全网最详细 解决戴维南定理的详细推导

替代定理,戴维南定理详细证明

m0_52555753的博客 3万+

ADS基础教程22 - 有限元电磁仿真(FEM)

一、引言二、FEM操作过程1.新建Layout1.新建Layout2.EM设置3.设置Frequency plan4.设置Output plan5.设置Options6.设置网格频率7.仿真结果三、总结介绍了在ADS中如何进行FEM仿真过程。END!}}END!

XZ_ZC的博客 2580

Thinking in java学习笔记13:第十六章(数组)

1.数组(Array)的性质 1.1 数组是线性序列的 1.2 数组是一种效率最高的存储和访问对象引用序列的方式。 1.3 数组的数组对象大小是被固定的 1.4 数组实质上保存的是引用(指向在堆中创建的一个真实对象) 2.返回一个数组 public class ArrayTest { public static void main(String[] args) { ...

沙丁鱼的博客 207

SAP RAP 校验全流程:从 EML 读取到消息上屏与阻止落库

本文系统梳理了 SAP ABAP RAP 中的校验流程(The Validation Process),结合 Airline/Connection 案例,详细讲解了三类核心校验:语义键唯一性、外键有效性和字段间一致性。文章覆盖了 EML 的 READ ENTITIES 操作、reported-* 与 failed-* 结构的使用方法、消息创建与字段绑定技巧,以及处理草稿数据时的 UNION 查询策略。通过代码示例演示了如何实现校验逻辑、生成错误消息并阻止无效数据持久化,同时提供了常见问题的排查建议。全文注重

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 334

Thinking in Java 第十六章学习笔记----数组

package com.testregularExpression; import java.util.Arrays; class BerylliumSphere { private static long counter; private final long id = counter++; public String toString(){ ret...

weixin_30377461的博客 103

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

深度学习工具包 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")

Thinking in Java 第16章 数组

//声明:部分内容引自《Java编程思想(第四版)》机械工业出版社【数组是第一级对象】– 对象数组和基本类型数组在使用上几乎是相同的,唯一的区别是对象数组保存的是引用,基本类型数组直接保存基本类型的值。– 基本类型数组的值在不进行显式初始化的情况下,会被自动初始化,对象数组会被初始化为 null。【返回一个数组】– 一个方法可以返回一个数组,当使用完毕后,垃圾回收器会清理掉它。【数组与泛型】– 通常

Tracy像太阳 352

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Thinking in java

object-oriented programming 第一章导论,几乎令人犯困,还算能看懂。第二章如似,只是在意 对象的存储: 寄存器:最快的存储区,因在处理器内部,但数量极其有限,按需分配,我等不能直接控制。 堆栈:在通用RAM(随机访问存储器),指针下移,分配新内存;上移释放,快速有效,仅次于寄存器。-对象引用 堆:也在RAM通用内存池,存java对象 常量存储:在程序代码内部,安全。 非...

secret_fire 179

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Thinking in Java (7)

第十六章 数组 第十七章 容器深入研究 数组 数据类型 [] 数组名称 = new 数据类型[长度]; int[] nums = new int[10]; 基本类型数组保存的是基本类型的值 10 — 数组长度,有效索引 0~9 String[] strs = new String[10]; (字符串)对象数组保存的是对象的引用 数组标识符是指向堆中创建的数组对象(在使用之前必须初始化)的引用,“[]”语法是访问数组元素的唯一方式。 初始化: ...

QPee和吉他 182

Thinking in Java:第十六章-数组

1:数组是一种效率最高的存储和随机访问对象引用序列的方式 2:返回一个数组:IceCream /** * Created By Kevin Gauguin On 2018/1/27 * 能确保返回的数组中不包含相同的元素 */ public class IceCream { private static Random random = new Random(47); p

ivalue的博客 201

Thinking in Java 第四版完整版 第三章练习题

Thinking in Java 第四版完整版 第三章练习题,记录一下(jdk1.8.0) 1. import java.util.*; //import static net.mindview.util.Print.*; /** * 练习1:使用“简短的”和正常的打印语句来编写一个程序。 * @author admin11 * @date 2018年2月27日 */ p...

summerSunStart的博客 923

学习笔记 之 JAVA编程思想(Thinking in Java)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 我要开始读《Java编程思想》这本八百多页的大书了,好好记笔记,加油!! 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具

qq_44477568的博客 1571

再读thinking in java -- 第十六章 数组

数组实在编译期检查,来防止插入错误类型和抽取不当的类型。不能实例化具有参数化类型的数组:eg Peel&lt;Banana&gt;[] peels = new Peel&lt;Banana&gt;[10];//不合法但却可以创建该类型的数组引用。java有两种方法提供比较功能:    1、实现Comparator接口的compare() 方法;    2、实现Comparable接口的compar...

jason_pot的博客 214

Thinking in java学习笔记2:第三章(操作符)

1.直接常量 直接常量:使编译器更有效地知道使用的是什么常量。 简单定义可能理解不了,但是一举例就能明白了: 写在后缀字符位置的: Long a=2L; Longa=2l; --大小写L代表long float a=2.0F; float a=2.0f; --大小写F代表float double a=2.2D; double a=2.2d --大...

沙丁鱼的博客 439

《Thinking in Java》读书笔记(不断更新中)

概述春节在家乡,家里的电脑都是我上大学时淘汰的,要么运行不起来AS,要么连接不上手机,要么编译不了程序,这Android是写不了了。 记得前几天写插件的时候,用过Intellij IDEA,感觉很流畅,心说在我的小霸王电脑上试一试。于是我就下载了一个Intellij IDEA,运行Hello World畅快无比,OK,那么这几天有空就复习一下Java基础知识吧,温故而知新。 手头正好有一个本《T

zxt0601的博客 5465

Thinking in Java (Java 编程思想)(六)

15.6 Java与CGI的沟通 Java程序可向一个服务器发出一个CGI请求,这与HTML表单页没什么两样。而且和HTML页一样,这个请求既可以设为GET(下载),亦可设为POST(上传)。除此以外,Java程序还可拦截CGI程序的输出,所以不必依赖程序来格式化一个新页,也不必在出错的时候强迫用户从一个页回转到另一个页。事实上,程序的外观可以做得跟以前的版本别无二致。 代码也要简单一些,毕竟用CGI也不是很难就能写出来(前提是真正地理解它)。所以在这一节里,我们准备办个CGI编程速成班。为解决常规问题,将

龙哥盟 1181

Thinking in java第8天

第13章 字符串 String的不变性Java不允许程序员重载任何操作符,String中的+和+=是仅有的两个重载过的操作符,当使用+来合并字符串时,JVM会自动优化使用StringBuilderStringBuilder/StringBuffer 两者都是可以改变的StringBuilder是线程不安全的执行效率会较高,而StringBuffer是线程安全的实例化时不传入长度,会默认

zwwtj2014的专栏 482

【Thinking_in_Java学习笔记】第三章 操作符

阅前说明:本系列笔记仅记录读书过程中本人不会或不熟的知识点。 第3章 操作符、 3.2 使用Java操作符 “=”、“==”、“!=”这些操作符可以操作所有对象; 其他几乎所有的操作符只能操作“基本类型”。 String类型支持“+”和“+=”,代表字符串拼接。 3.3 优先级 即便Java中对各操作符的优先级有明确规定,但是我们要保持优良的编码习惯,即用小括号来标明计算顺序。 对于String,“+”意味着字符串连接,如果必要,还要执行字符串转换。 字符串转换: 当编译器观察到一个String

炒饭IYJ的博客 239
上一篇: Thinking in Java - 学习笔记 - (十五)泛型
下一篇: Thinking in Java - 学习笔记 - (十八)Java I/O系统
「已注销」
博客等级 码龄10年 5粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值