对象数组

Java编程的逻辑 (84) - 反射

青春壹個敷衍的年華 提交于 2020-03-01 19:13:02
上节介绍完了并发,从本节开始,我们来探讨Java中的一些动态特性,包括反射、类加载器、注解和动态代理等。利用这些特性,可以以优雅的方式实现一些灵活和通用的功能,经常用于各种框架、库和系统程序中,比如: 在63节介绍的实用序列化库Jackson,利用反射和注解实现了通用的序列化/反序列化机制 有多种库如Spring MVC, Jersey用于处理Web请求,利用反射和注解,能方便的将用户的请求参数和内容转换为Java对象,将Java对象转变为响应内容 有多种库如Spring, Guice利用这些特性实现了对象管理容器,方便程序员管理对象的生命周期以及其中复杂的依赖关系 应用服务器比如Tomcat利用类加载器实现不同应用之间的隔离、JSP技术也利用类加载器实现修改代码不用重启就能生效的特性 面向方面的编程(AOP - Aspect Oriented Programming)将编程中通用的关注点比如日志记录、安全检查等与业务的主体逻辑相分离,减少冗余代码,提高程序的可维护性,AOP需要依赖上面的这些特性来实现 本节先来看反射机制。 在一般操作数据的时候,我们都是知道并且依赖于数据的类型的,比如: 根据类型使用new创建对象 根据类型定义变量,类型可能是基本类型、类、接口或数组 将特定类型的对象传递给方法 根据类型访问对象的属性,调用对象的方法 编译器也是根据类型,进行代码的检查编译。

在vue中使用样式

血红的双手。 提交于 2020-03-01 19:09:39
1、使用class样式 使用数组:<p :class="['italic']">随便输入一些文字内容</p> 数组中使用三元表达式:<p :class="['italic',flag? 'active':'']">内容</p 数组中嵌套对象:<p :class="['italic',{'active':flag}]">内容</p> 直接使用对象:<p :class="{italic:true,active:false}">内容</p> 2、使用内联样式 直接在元素上通过:style的形式,书写样式对象 将样式对象,定义到data中,并直接引用到:style中​ 在 :style 中通过数组,引用多个data上的样式对象 来源: https://www.cnblogs.com/qijunjun/p/12391151.html

JS高级

只谈情不闲聊 提交于 2020-03-01 15:35:11
1. 正则表达式: 2. String中的正则API: 1. 正则表达式: 2. String中的正则API: 查找: 1. 查找一个固定的关键词出现的位置: var i=str.indexOf("关键词"[,starti]) 在str中从starti位置开始找下一个"关键词"的位置 如果省略starti,则默认从0位置开始向后找 返回: “关键词”第一字所处位置的下标 如果找不到,返回-1 问题: 只支持查找一个固定不变的关键词 2. 用正则表达式查找一个关键词的位置: var i=str.search(/正则/i); 在str中查找符合"正则"要求的敏感词 返回值: 关键词的位置 如果找不到,返回-1 问题: 正则默认区分大小的! 解决: 在第2个/后加后缀i,表示ignore,意为:忽略大小写 问题: 只能获得关键词的位置,不能获得关键词的内容 解决: match 3. match: 1. 查找一个关键词的内容和位置: var arr=str.match(/正则/i); 在str中查找符合"正则"要求的敏感词的内容和位置 返回值: 数组arr:[ "0":"关键词", "index": 下标i ] 如果找不到: 返回null 问题: 只能查找第一个关键词,不能查找更多关键词 2. 查找所有关键词的内容: var arr=str.match(/正则/ig) //g global

35 个 Java 代码性能优化总结-----转载到处都有,不知原创是谁

▼魔方 西西 提交于 2020-03-01 15:02:32
35 个 Java 代码性能优化总结 前言 代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。 代码优化的目标是: 1、减小代码的体积 2、提高代码运行的效率 代码优化细节 1、尽量指定类、方法的final修饰符 带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了一个类为final,则该类所有的方法都是final的。Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,具体参见Java运行期优化。此举能够使性能平均提高50%。 2、尽量重用对象 特别是String对象的使用,出现字符串连接时应该使用StringBuilder

12 IO流

半城伤御伤魂 提交于 2020-03-01 09:59:25
File类: 构造方法 * File(String pathname):根据一个路径得到File对象 * File(String parent, String child):根据一个目录和一个子文件/目录得到File对象 * File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象 创建功能 * public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了,返回false * public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了 * public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来 重命名和删除功能: * public boolean renameTo(File dest):把文件重命名为指定的文件路径 * public boolean delete():删除文件或者文件夹 重命名注意事项 * 如果路径名相同,就是改名。 * 如果路径名不同,就是改名并剪切。 删除注意事项: * Java中的删除不走回收站。 * 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹 判断功能: import java.io.File; import java.io.IOException; public

Java I/O库的设计分析

社会主义新天地 提交于 2020-03-01 09:54:49
Java采用了流的机制来实现输入/输出。所谓流,就是数据的有序排列。 而流可以是从某个源(称为 流源 或Source of Stream)出来,到某个目的地(称为 流汇 或Sink of Stream)去的。 由流的方向,可以分成输入流和输出流。一个程序从输入流读取数据向输出流写数据。 流处理器所处理的流必定都有流源,而如果将流类所处理的流源分类的话,基本可以分成两大类:  第一 数组,String,File等,这一种叫 原始流源 。  第二 同样类型的流用做链接流类的流源,叫 链接流源 。 Java语言的I/O库是对各种常见的流源,流汇以及处理过程的抽象化。 客户端的Java程序不必知道最终的流源,流汇是磁盘上的文件还是数组等;(原始流) 也不必关心数据是否经过缓冲的,可否按照行号读取等处理的细节。(链接流) 要理解Java I/O这个庞大而复杂的库,关键是要掌握 两个对称性 跟 两个设计模式 。 Java I/O库具有两个对称性,它们分别是:  1 输入-输出对称性:     比如InputStream和OutputStream各自占据Byte流的输入与输出的两个平行的等级结构的根部。     而Reader和Writer各自占据Char流的输入与输出的两个平行的等级结构的根部。  2 byte-char对称:    

Elasticsearch -- 映射和分析

情到浓时终转凉″ 提交于 2020-03-01 06:15:38
映射(mapping) 机制用于进行字段类型确认,将每个字段匹配为一种确定的数据类型( string , number , booleans , date 等)。 分析(analysis) 机制用于进行 全文文本(Full Text) 的分词,以建立供搜索用的反向索引。 映射及分析 当在索引中处理数据时,我们注意到一些奇怪的事。有些东西似乎被破坏了: 在索引中有12个tweets,只有一个包含日期 2014-09-15 ,但是我们看看下面查询中的 total hits。 GET /_search?q=2014 # 12 个结果 GET /_search?q=2014-09-15 # 还是 12 个结果 ! GET /_search?q=date:2014-09-15 # 1 一个结果 GET /_search?q=date:2014 # 0 个结果 ! 为什么全日期的查询返回所有的tweets,而针对 date 字段进行年度查询却什么都不返回? 为什么我们的结果因查询 _all 字段(译者注:默认所有字段中进行查询)或 date 字段而变得不同? 想必是因为我们的数据在 _all 字段的索引方式和在 date 字段的索引方式不同而导致。 让我们看看Elasticsearch在对 gb 索引中的 tweet 类型进行 mapping (也称之为 模式定义 [注:此词有待重新定义

JavaScript学习笔记(1)---基础语法

半世苍凉 提交于 2020-02-29 23:45:38
JavaScript:基础语法 注释 JavaScript的语法和Java语言类似,每个语句以 ; 结束,语句块用 {...} 。但是,JavaScript并不强制要求在每个语句的结尾加;浏览器中负责执行JavaScript代码的引擎会自动在每个语句的结尾补上;。JavaScript严格区分大小写,如果弄错了大小写,程序将报错或者运行不正常。 注释: // 这是一行注释 alert('love qinjiang'); // 这也是注释 /* 从这里开始是块注释 仍然是注释 仍然是注释 注释结束 */ 变量 变量的概念基本上和小学的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。 变量在JavaScript中就是用一个变量名表示,变量名是大小写英文、数字、$和_的组合,且 不能用数字开头 。变量名也不能是 JavaScript的关键字 ,如if、while等。申明一个变量用var语句,比如: var a; // 申明了变量a,此时a的值为undefined var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1 var s_007 = '007'; // s_007是一个字符串 var Answer = true; // Answer是一个布尔值true var t = null; // t的值是null

javascript数组的知识点讲解

怎甘沉沦 提交于 2020-02-29 16:35:30
阅读目录 数组的基本方法如下 concat() join() pop() push() reverse() shift() sort() splice() toString() unshift() slice() 判断一个数组中是否有相同的元素; 计算一个数组中每个元素在数组中出现的次数; Javascript删除数组重复元素的操作 Javascript删除数组里面的某个元素。 在javascript中求出2个数组的相同的元素及不同的元素 Javascript检测2个数组是否相似 如何判断该对象是否为数组。 js将类数组对象转换成数组对象 查找数组中最大值与最小值 回到顶部 数组的基本方法如下 1. concat() 该方法用于连接2个或者多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。 语法:arrayObject.concat(array1,array2,....arrayx); 连接多个数组,使用逗号隔开; 比如如下代码演示: var arr1 = [1,2,3], arr2 = [4,5,6], arr3 = [7,8,9,1,2,3]; console.log(arr1.concat(arr2,arr3)); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3] console.log(arr1); // [1,2,3]

集合类题目

我的梦境 提交于 2020-02-29 13:18:10
1.Java 集合类框架的基本接口有哪些? Java 集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。 Java 集合类里面最基本的接口有: Collection :代表一组对象,每一个对象都是它的子元素。 Set :不包含重复元素的 Collection 。 List :有顺序的 collection ,并且可以包含重复元素。 Map :可以把键 (key) 映射到值 (value) 的对象,键不能重复。 2. 为什么集合类没有实现 Cloneable 和 Serializable 接口? 集合类接口指定了一组叫做元素的对象。集合类接口的每一种具体的实现类都可以选择以它 自己的方式对元素进行保存和排序。有的集合类允许重复的键,有些不允许。 3. 什么是迭代器 (Iterator) ? Iterator 接口提供了很多对集合元素进行迭代的方法。每一个集合类都包含了可以返回迭代 器实例的 迭代方法。迭代器可以在迭代的过程中删除底层集合的元素。 克隆 (cloning) 或者是序列化 (serialization) 的语义和含义是跟具体的实现相关的。因此,应该由 集合类的具体实现来决定如何被克隆或者是序列化。 4.Iterator 和 ListIterator 的区别是什么? 他们的区别:Iterator 可用来遍历 Set 和 List 集合,但是