对象数组

09 Collection,Iterator,List,listIterator,Vector,ArrayList,LinkedList,泛型,增强for,可变参数,HashSet,LinkedHashSet,TreeSet

馋奶兔 提交于 2020-03-16 20:38:28
09 Collection,Iterator,List,listIterator,Vector,ArrayList,LinkedList,泛型,增强for,可变参数,HashSet,LinkedHashSet,TreeSetimport com.fly.bean.Student; public class Demo1_Array { public static void main(String[] args) { Student[] arr = new Student[5]; //创建引用类型数组 arr[0] = new Student("张三", 23); arr[1] = new Student("李四", 24); arr[2] = new Student("王五", 25); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); /*Student [name=张三, age=23] Student [name=李四, age=24] Student [name=王五, age=25] null null*/ } } } 集合框架: 集合的由来 * 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给 我们提供了集合类,能存储任意对象,长度是可以改变的

java集合类

天涯浪子 提交于 2020-03-16 20:10:55
Java集合类 1.简介: java集合类包含在java.util包下 集合类存放的是对象的引用,而非对象本身。 集合类型主要分为Set(集),List(列表),Map(映射)。 1.1 java集合类图 从上述类图,自己整理出主要内容是如下: 2.集合详解 2.1 HashSet HashSet是Set接口的一个子类 主要的特点是: 里面不能存放重复元素,元素的插入顺序与输出顺序不一致 采用散列的存储方法,所以没有顺序。 代码实例:HashSetTest package cn.swum; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.Set; public class HashSetTest { public static void main(String[] args) { Set set = new HashSet(); set.add("a"); set.add("b"); set.add("c"); set.add("d"); set.add("f"); //插入重复元素,测试set是否可以存放重复元素 set.add("a"); set.add(null); //插入重复null,看结果是否可以存放两个null

jQuery 结构分析

回眸只為那壹抹淺笑 提交于 2020-03-16 20:09:25
jquery核心 转自 http://www.iteye.com/topic/783260 (function( window, undefined ) { // 构造jQuery对象 var jQuery = function( selector, context ) { return new jQuery.fn.init( selector, context, rootjQuery ); } // 工具函数 Utilities // 异步队列 Deferred // 浏览器测试 Support // 数据缓存 Data // 队列 queue // 属性操作 Attribute // 事件处理 Event // 选择器 Sizzle // DOM遍历 // DOM操作 // CSS操作 // 异步请求 Ajax // 动画 FX // 坐标和大小 window.jQuery = window.$ = jQuery; })(window); 一 构造jquery. 相对于其它库里传统的构造对象方法. jquery提供了一种截然不同的方法. 它选择创造一个全新的奇异世界. 首先所有的jquery代码被一个自动执行的闭包包裹起来, 只在后面暴露$和jQuery这2个变量给外界 尽量避开变量冲突. Java代码 (function(window, undefined){ ….. })

什么是反射?

时光毁灭记忆、已成空白 提交于 2020-03-16 11:12:19
1.对象有编译类型和运行类型 Object obj = new java.util.Date(); 编译类型:Object 运行类型(其实就是obj对象真实的类型):java.util.Date 需求:根据对象obj调用Date类中的一个方法,toLocaleString,如何来做? obj.toLocaleString()代码在编译阶段去编译类型Object中检查是否有该方法,若没有,编译失败. 1.对象有编译类型和运行类型 Object obj = new java.util.Date(); 编译类型:Object 运行类型(其实就是obj对象真实的类型):java.util.Date 需求:根据对象obj调用Date类中的一个方法,toLocaleString,如何来做? obj.toLocaleString()代码在编译阶段去编译类型Object中检查是否有该方法,若没有,编译失败. 解决方案1:强制转换obj为Date类型,前提:必须知道对象的真实类型是什么? Date d = (Date)obj; d.toLocaleString();//YES 如果我不知道obj的真实类型,那又如何去调用toLolcaeString方法. 如何去做? 解决方案2: 使用反射 对象使用类描述的,但是Java中一些皆对象,其实所有的类,底层都有一个字节码对象

java 的反射机制

谁都会走 提交于 2020-03-15 11:55:00
绪论 首先,什么是反射机制?   它是一种 “运行时检视类型信息”、“修改属性”、“调用方法”的一种机制, 其次,常用的运用场景有哪些? 运行时实例化类的对象。(例如:实例化一个 User 类,此 User 类的名字容器事先是不知道的) 运行时调用方法。(例如:调用 User 对象的 a 方法) 运行时修改属性值。(例如:修改 User 对象的 name 属性) 最后,温馨提示   JDK 中关于反射的相关类型都在 “java.lang.reflect” 包下,并不需要额外的第三方包来完成反射。 第一章:获取 Class对象 1、啥是 Class对象?   在 java 中,用来表示 运行时类型信息的对应类 就是 Class 类,而由此 Class 类创建出来的实例就是传说中的 “Class 对象”。 2、咋获取 Class 对象?   有三种方法,咱细品:    第一种方法:Class.forName("类的全称")      此方法适合,只知道类的字符表示(人话:类的全称)的情况 。若类还没加载此类,则加载;若类已经加载了此类,则返回已加载的类的 “Class 对象” 给你。 //like this1 Class user = Class.forName("com.User");    第二种方法:类的 Class字段      此方法适合,容器事先就知道该类的情况 。 1 /

C# TCP多线程服务器示例

偶尔善良 提交于 2020-03-14 21:54:49
前言 之前一直很少接触多线程这块。这次项目中刚好用到了网络编程TCP这块,做一个服务端,需要使用到多线程,所以记录下过程。希望可以帮到自己的同时能给别人带来一点点收获~ 关于TCP的介绍就不多讲,神马经典的三次握手、四次握手,可以参考下面几篇博客学习了解: TCP三次握手扫盲 效果预览 客户端是一个门禁设备,主要是向服务端发送实时数据(200ms)。服务端解析出进出人数并打印显示。 实现步骤 因为主要是在服务器上监听各设备的连接请求以及回应并打印出入人数,所以界面我设计成这样: 可以在窗体事件中绑定本地IP,代码如下:        //获取本地的IP地址 string AddressIP = string.Empty; foreach (IPAddress _IPAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList) { if (_IPAddress.AddressFamily.ToString() == "InterNetwork") { AddressIP = _IPAddress.ToString(); } } //给IP控件赋值 txtIp.Text = AddressIP; 首先我们需要定义几个全局变量 Thread threadWatch = null; // 负责监听客户端连接请求的 线程;

Java 基础知识的一些易错点

泪湿孤枕 提交于 2020-03-14 15:25:06
1、正确使用 equals() Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。 String str = null; if (str.equals("abcd")) { ... } else { ... } 如果变量str为null,会抛出空指针异常,如果没有catch来捕获处理(我们一般不会在equals()上加try),程序直接就终止运行了。 abcd".equals(str) 把常量写在前面,“abcd”!=null,结果为false,不会抛出异常。 但2个都是变量呢? 最推荐下面的方式:使用工具类Objects(JDK7自带的) Objects.equals(str,"abcd") 就算2个都是变量,2个都是null,都不会抛出异常。如果2个都是null,null==null,返回true。 Objects的部分源码如下: public static boolean equals(Object a, Object b) { // 如果a==null的话此时a.equals(b)就不会得到执行,避免出现空指针异常。 return (a == b) || (a != null && a.equals(b)); } ||、&&都是断路的,如果||前面为true,就不会执行后面的判断;如果&&前面为false,就不会执行后面的判断。

Numpy库入门

微笑、不失礼 提交于 2020-03-14 13:10:22
一、简介: 1.1. NumPy的引用: import numpy as np 尽管别名可以修改或省略,但建议使用上述约定的别名 二、N维数组对象:ndarray   ndarray 是一个多维数组对象,由两部分构成:   ---实际的数据   ---描述这些数据的元数据(数据维度、数据类型等)   ndarray数组一般要求所有元素类型相同,数组下标从0开始    2.1 ndarray对象的属性: 实例: 特别注意一下这个.dtype元素类型,输出的是int32,ndarray还有很多其他的元素类型,如: 前面有说过,ndarray数组一般要求数据同样类型即同质。那么为什么呢?    2.2ndarray数组的创建 1.创建方法: 2.详解: 实例: 例子:    2.3ndarray数组的变换 例子: 类型变换: 3.ndarray的操作:数组的索引和切片 索引:获取数组中指定位置元素的过程 切片:获取数组元素子集的过程 4.ndarray的运算 小结: 来源: https://www.cnblogs.com/ShallByeBye/p/12491592.html

Java性能优化的50个细节(珍藏版)

孤人 提交于 2020-03-14 01:50:19
在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步来控制资源的并发访问; 第二,控制实例的产生,以达到节约资源的目的; 第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。 2. 尽量避免随意使用静态变量 当某个对象被定义为static变量所引用,那么GC通常是不会回收这个对象所占有的内存,如 public class A{ private static B b = new B(); }12345 此时静态变量b的生命周期与A类同步,如果A类不会卸载,那么b对象会常驻内存,直到程序终止。 3. 尽量避免过多过常地创建Java对象 尽量避免在经常调用的方法,循环中new对象,由于系统不仅要花费时间来创建对象,而且还要花时间对这些对象进行垃圾回收和处理,在我们可以控制的范围内,最大限度地重用对象,最好能用基本的数据类型或数组来替代对象。 4. 尽量使用final修饰符 带有final修饰符的类是不可派生的。在JAVA核心API中,有许多应用final的例子,例如java、lang

python NumPy库学习笔记一

*爱你&永不变心* 提交于 2020-03-13 21:33:37
目录 python NumPy库学习笔记一 引言 NumPy Ndarray 对象 NumPy 数据类型 NumPy 数组属性 NumPy 创建数组 numpy.empty numpy.zeros numpy.ones NumPy 从已有的数组创建数组 numpy.asarray numpy.frombuffer numpy.fromiter NumPy 从数值范围创建数组 numpy.arange numpy.linspace numpy.logspace python NumPy库学习笔记一 引言 NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 为开放源代码并且由许多协作者共同维护开发。 NumPy ,SciPy, Matplotlib 是python中用于替代matlab 的三剑客。 NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。 SciPy 是一个开源的 Python 算法库和数学工具包。 SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换