黑马程序员java培训就业班笔记:集合体系总结

合集下载

java集合总结

java集合总结

java集合总结篇一:Java集合类总结2 Java中集合类用法总结Collection ├List │├LinkedList │├ArrayList (异步,线程不安全,空间用完时自动增长原容量一半)│└Vector (同步,线程安全,空间用完时自动增长原容量一倍)│ └Stack └Set ├HashSet └TreeSet Map ├Hashtable ├HashMap ├WeakHashMap └TreeMap Map接口:| + -- WeakHashMap: 以弱键实现的基于哈希表的Map。

在WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。

更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。

丢弃某个键时,其条目从映射中有效地移除,因此,该类的行为与其他的Map 实现有所不同。

此实现不是同步的。

| + -- TreeMap:该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的Comparator 进行排序,具体取决于使用的构造方法。

此实现不是同步的。

| + -- HashMap:基于哈希表的Map 接口的实现。

此实现提供所有可选的映射操作,并允许使用null 值和null 键。

(除了非同步和允许使用null 之外,HashMap 类与Hashtable 大致相同。

)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

此实现不是同步的。

| +-- Sorted Map: 进一步提供关于键的总体排序的Map。

该映射是根据其键的自然顺序进行排序的,或者根据通常在创建有序映射时提供的Comparator 进行排序。

对有序映射的collection 视图(由entry Set、keyset 和values 方法返回)进行迭代时,此顺序就会反映出来。

要采用此排序方式,还需要提供一些其他操作(此接口是Sorted Set 的对应射)。

黑马程序员java培训就业班笔记:day18(泛型、Map集合)总结

黑马程序员java培训就业班笔记:day18(泛型、Map集合)总结

Day18总结1、泛型类:在写容器之前想要容器中要存什么?所以要先写好泛型Eg:TreeSet<Person> ts=new TreeSet<Person>();有了泛型后强制转换就没有用Eg:public class Person implements Comparator<Person>{}对于下面覆盖的它的compare方法就不用强制转换了。

Public int compare(Person p){}这里就不用在做强制转换了。

实现代码:Public static void main(String[] args){Tool t=new Tool();t.setObject(new Cat());t.setObject(new Dog());这时编译会出现没问题,但是运行时会出现错误,因为发生了类型转换异常,dog不能转换成Cat。

Cat c=(Cat)t.getObject();Tool<Cat> t=new Tool<Cat>();t.setObject(new Cat());此时就不用强转了t.setObject(new Dog()):此时编译就失败,把运行时的异常转到编译时候。

}Class Cat{}Class Dog{}/*Class Tool{Private Object obj;Public void setObject(Object obj){This.obj=obj;}Public Object getObject(){Return obj;}}*/改进后Class Tool<T>{Private T t;Public void setObject(T t){This.t=t;}Public T getObject(){Return t;}}总结:这就是将泛型定义在类上,这个类称为泛型类,是一种替代Object类的一种技术,因为Object类有自动类型提升和转换,泛型已经替代它做了,编译时期更安全,省去了强转的麻烦。

黑马程序员java培训就业班笔记:day03总结

黑马程序员java培训就业班笔记:day03总结

Day03知识总结:上午:1、逻辑运算符:就是指的是一种关系,作用:用于连接两个布尔类型的表达式包括以下几种:&:与,特点:两边为真才为真,一边为假则为假| 或,特点:一边为真则为真,两边为假才为假! 非,特点:非真为假,非假为真^ 异或特点:同为假,异为真规律:一个数同时异或这个数两次结果还是这个数。

用于加密&& 双与特点:与&一样,但是有点小区别,在下面单独讨论。

|| 双或特点:与|一样,但是有点小区别,在下面单独讨论。

<<:左移规律:左移几位就是该数乘以2的几次方,>>:右移:规律:右移几位就是除以2的几次方注意对于左移和右移中高位的问题,总结为一句话:简单一句话:最高是什么就拿什么补,高位为0就拿0补,高位为1就拿1补;>>>:无符号右移:区别于>>就是高位出现的空位,无论高位原来是什么都用0补;2、&与&&的区别:共同点:二者都可以作为逻辑与的运算符,表示逻辑与,不同点:&&有短路的功能,如果第一个表达式为false时,不需要进行第二个表达式的运算,当&操作符两边的表达式不是boolean类型时,表示按位与操作。

Eg:我们通常使用0x0f来与一个整数进行&运算,获取低四位;3、|和||的区别:|:无论左边的运算结果是什么,右边都参与运算。

||:当左边为真时,右边不参与运算的。

4、练习题:1、最有效率的方式算出2乘以8等于几?2*8:在内存中的运算0010* 1000------0000000000000010-------0010000=16;想要运算变的高效首先2进制位;00000000000000000000000000000010 2--左移三位2、对两个整数变量进行互换;不定义三方变量;(用三种方式)int a=3,b=5;a=a+b;//a=3+5; a=8b=a-b;//b=3+5-5;b=3a=a-b;//a=3+5-3;a=5这种方法不建议用,如果两个整数的数值过大,会超出Int范围,会强制转换,数据会变化a=a^b;//a=3^5b=a^b;//b=(3^5)^5;b=3a=a^b;//a=(3^5)^3;a=5以上方式用于面试第三方变量:int cc=a;a=b;b=c;实际开发中用此种方式;3、对于一个整数的最后一个字节,高四位和低四位进行换位;(画出图)思路:1、首先用该数与1进行与保证唯一的有效位;0000-0000 0000-0000 0000-0000 1011-01100000-0000 0000-0000 0000-0000 1111-1111----------------------------------------0000-0000 0000-0000 0000-0000 1011-0110再用得到的与&15进行与运算0101 1100& 1111----低位b:0000 1100用位运算&15取出低四位;0101 1100&1111 0000 0x0f<<4;----------0101 0000高位c: 0101 0000低位右移4位c>>4;高位左移4位b<<4;最后或运算保留有效位c|b;int a,b(低位),c(高位);a=a&0xFF;b=a&0x0f;c=a&(0xof<<4);b=b<<4;c=c>>>4;a=b|c;用在加密解密当中;5、三元运算符:特点:只要是运算符就得有结果。

黑马程序员_javaweb讲义和笔记资料

黑马程序员_javaweb讲义和笔记资料

黑马程序员_javaweb讲义和笔记资料一、简介黑马程序员是一家专业的IT培训机构,提供全面的编程技术培训服务。

javaweb是其中的一门重要课程,本文为黑马程序员_javaweb讲义和笔记的资料整理。

二、javaweb基础知识1. Java语言概述Java语言的特点和优势,Java开发环境的搭建等。

2. Servlet技术Servlet的基本概念、生命周期、Servlet容器等。

3. JSP技术JSP的基本语法、JSP指令、JSP内置对象等。

4. MVC设计模式MVC设计模式在javaweb开发中的应用和实践。

三、javaweb开发流程1. 需求分析分析项目需求,明确开发目标和功能要求。

2. 数据库设计设计数据库表结构,确定数据存储方式和关系。

3. 技术选型根据项目需求和开发要求,选择合适的技术框架和工具。

4. 编码实现使用Java语言和相关技术进行编码实现。

5. 测试调试运行和调试项目,确保功能的正确性和稳定性。

6. 部署上线将项目部署到服务器上线,提供给用户访问和使用。

四、javaweb开发常用框架和工具1. Spring框架Spring框架的介绍和核心特性,以及在javaweb开发中的应用。

2. SpringMVC框架SpringMVC框架的详细讲解,包括请求映射、数据绑定、视图解析等。

3. MyBatis框架MyBatis框架的使用方法和技巧,以及与数据库的集成。

4. Maven工具Maven的基本使用和配置,常用插件介绍。

五、javaweb开发中的常见问题和解决方案1. 数据库连接异常分析数据库连接异常的原因和解决方法。

2. 页面跳转问题页面跳转的实现方式和常见错误排查。

3. 表单数据验证表单数据验证的常用技术和插件,提高数据输入的准确性和安全性。

4. 性能优化优化javaweb应用的性能,减少响应时间和资源占用。

六、实例项目提供一个实例项目,通过对该项目的讲解和分析,帮助学员理解和掌握javaweb开发的方法和技巧。

黑马程序员——集合框架

黑马程序员——集合框架

黑马程序员——集合框架集合:有时也被称作容器,是对象的持有者,它们可以以有助于高效访问的方式来储存和组织对象。

集合框架继承关系:-----------------------------------------------------------------------------------------------------------------------------------------Collection<E>:是集合框架的根接口。

所有的集合都继承Collection。

其中定义了集合中常用的方法,如add、remove、size、toArray、Iterator等。

List<E>:集合特点有序,元素可以重复。

继承了Collection,增添了许多有关索引的方法。

特有方法。

凡是可以操作角标的方法都是该体系特有的方法。

增add(index,element);addAll(index,Collection);删remove(index);改set(index,element);查get(index):subList(from,to);listIterator();int indexOf(obj):获取指定元素的位置。

ListIterator listIterator();ArrayList<E>:底层的数据结构使用的是数组结构。

特点:查询速度很快。

但是增删稍慢。

线程不同步。

是一个不错的基本列表实现,它将其元素存放在一个数组中。

它有一个容量,它表示在不需要为更大的数组分配内存的情况下所能容纳的元素数量。

当空间用尽时,就必须重新分配一个数组以替代原数组。

所以正确地设置初始容量可以提高性能。

如果数据的初始大小远远小于最终的大小,那么可以将初始容量设置的更大一点。

减少使用更大数组替代原数组的次数。

但是如果定义的太大又浪费空间。

ArrayList构造器:public ArrayList():使用默认容量创建一个新的ArrayList集合;public ArrayList(int a):定义一个新的ArrayList集合,不用改变就可以存放a个元素;public ArrayList(Collection<? extends E> coll):创建一个新的ArrayList集合,它的初始内容就是coll的内容。

黑马程序员ava知识总结

黑马程序员ava知识总结

一、黑马程序员—java概述与基础知识 61、何为编程? 62、Java语言概述,历史、特点63、什么是跨平台性?原理是什么?JVM 64、Jre和Jdk的区别? 75、java虚拟机JVM 76、Java程序运行机制77、学习java注意的地方78、Java语法格式89、代码注释:单行//,多行/* */,文档注释/** */ 810、Java中的标识符811、java中的常量和变量812、Java成员变量和局部变量914、基本数据类型转换之向上转型和向下转换1115、Java的运算符1116、表达式和三目运算符1217、程序流程控制1218、三大循环结构: 1419、嵌套循环与流程控制17二、黑马程序员—方法与数组181、什么是方法(Method)?182、Java中方法的格式:193、方法里的属性194、方法特点195、什么是方法的重载(Overload)?206、可变参数217、数组简介:228、一维数组的声明与初始化:229、数组的使用:2310、分配内存空间2411、二维数组:2512、操作数组的工具类-Arrays 2613、Java5新特性对数组的支持:27三、黑马程序员—面向对象(1)271、什么叫面向对象?272、类283、构造方法284、static关键字305、匿名对象316、this关键字317、面向对象之封装318、访问修饰符329、类的设计分析3210、面向对象之继承3311、子类访问父类和方法覆写3412、super关键字和调用父类构造方法3413、面向对象之多态3514、引用变量类型转换37四、黑马程序员—面向对象(2)381、基本数据类型的包装类382、基本数据类型和包装类相互转换383、基本类型和String之间的转换394、Object类395、代码块406、构造方法的私有化427、Singleton模式(单例模式) 饿汉式和懒汉式428、final 关键字449、抽象类4510、抽象类的体现-模板模式4711、接口(interface) 4812、接口的使用5013、面向接口编程之制定标准和简单工厂模式5014、面向接口编程之适配器模式5215、接口和抽象类的比较5316、匿名内部类5417、枚举类54五、黑马程序员—异常处理和常用类571、异常572、异常处理格式573、多异常处理584、异常的分类595、声明异常(throws)606、throw 608、throw和catch同时使用 619、常用类6210、String方法6411、StringBuffer 与StringBuilder 6612、Math和Random和UUID 6913、Date和Calendar 7014、System 74六、黑马程序员—线程技术741、进程和线程752、创建线程方式753、两种进程创建方式比较774、线程的生命周期785、控制线程796、多线程安全问题817、多线程安全问题的解决方法828、线程通信86七、黑马程序员—集合框架(1)891、集合类&容器892、Collection接口 903、Iterator接口914、集合遍历输出方式916、TreeSet 957、List接口998、List接口中常用类1019、Map接口104八、黑马程序员—集合框架(2)1071、Collections类1072、Arrays 1093、泛型(Generic) 1094、泛型的使用1105、声明多个泛型类型和通配符1146、泛型的上限与下限1157、泛型接口和方法1178、泛型的嵌套(map例子)118九、黑马程序员—IO操作(1) 1191、IO的概述和File方法1192、递归(Recursion) 1203、文件过滤器java.io.FilenameFilter 1224、流1235、操作流的步骤(重点)1246、字节流和字符流1257、文件拷贝1278、字节→字符转换流1299、自动关闭资源的try语句130十、IO文件操作(2) 1311、内存操作流1312、打印流1333、格式化输出1344、标准流1355、Scanner(简单文本扫描器) 1376、缓冲流1397、合并流(SequenceInputStream)140 十一、黑马程序员—网络编程1411、什么是网络编程?1412、网络通讯要素1423、TCP和UDP的联系和用途1424、InetAddress与Socket 1435、UDP传输1446、TCP传输1488、小例子154十二、黑马程序员—反射机制1561、反射的概念1562、获得Class对象1583、九个预定义Class对象1594、利用Class获取类的属性信息1605、Class中得到构造方法Constructor、方法Method、字段Field 1616、利用反射创建对象1667、使用反射调用方法1698、使用反射调用可变参数方法1709、使用反射操作字段17110、反射和泛型-反射来获取泛型信息173十三、黑马程序员—反射机制1751、GUI(图形用户界面) 1752、布局管理器1763、事件监听机制组成1774、Dialog 1845、菜单1871、Eclipse的使用技巧1912、静态导入(1.5特性,好处是不用写类名)1923、可变参数1935、基本数据类型的自动拆箱与装箱1946、枚举1947、反射实现框架功能1961、内省 了解JavaBean 1982、内省综合案例和Beanutils工具包 1983、注解(Annotation)2014、泛型2041、类加载器2082、类加载器的委托机制2083、一个类加载器的高级问题分析2124、代理的概念与作用2125、动态代理技术2146、分析JVM动态生成的类 2148、实现类似spring的可配置的AOP框架 220黑马程序员——面试题之交通灯管理系统 2241、面向对象的分析与设计2252、Road类的编写 2263、Lamp类的编写2274、LampController类的编写2305、MainClass类的编写 230黑马程序员——面试题之银行业务系统2321、需求2322、需求分析2333、NumberManager类 2334、NumberMachine类2345、CustomerType枚举类2356、ServiceWindow类2357、MainClass类与Constants类238一、黑马程序员—java概述与基础知识1、何为编程?编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。

黑马程序员java培训就业班笔记:day11总结

黑马程序员java培训就业班笔记:day11总结

Day11知识总结:1、异常处理细节:1、定义功能时,功能中有什么问题,都应该进行预先的处理比如try catch.如果处理不了,应该通过throws声明抛出,让调用者进行处理。

2、调用了抛出异常的功能的函数,应该进行处理,如果使用try catch处理的话,被调用的功能上抛出几个异常,就应该对应几个catch语句,必须要对多个异常进行针对性的处理。

3、如果出现多个catch中存在着父类异常的catch,那么这个catch一定放在catch的最后,通常这种情况在面试很多见。

4、如果函数内抛出异常,那么一定要在函数上声明,否则编译失败,但是要注意函数内抛出的异常是运行时异常(RuntimeException),那么函数上是可以不用throws声明的。

5、如果函数内抛出了异常,进行了本功能内部的处理,但是处理的并不完全,这时应该在异常处理中,继续将异常抛出,让在函数上声明让调用者知道问题的存在,但是有可能需要将异常进行转换,尽量抛出调用者识别的异常,处理起来更方便。

6、当子类覆盖父类中的异常声明的方法时,子类方法只能声明父类的异常或者该异常的子类。

如果父类抛出了多个异常,那么子类在覆盖时买智能抛出父类异常的子集。

7、如果父类和接口中的方法没有声明抛出过异常,那么子类的覆盖父类方法时,也不能抛出异常,如果子类中的方法发生了异常,那么子类只能try catch不能用throws声明,只能try,不能抛,如果非要在函数内抛出异常,那么只能抛出RuntimeException,因为这种异常不用在函数声明上。

2、finally:定义一定会被执行的代码。

通常用来关闭资源,异常处理的三种格式:1、try catch finally2、Try catch//可以多个catch3、Try finally记住:catch是用于处理异常的,如果没有catch就代表异常没有被处理过,如故哦该异常是检测时异常,必须被声明。

代码体现:3、异常总结:异常是什么?是对问题的描述,将问题进行对象的封装。

黑马程序员java培训就业班笔记day17(集合框架set)总结

黑马程序员java培训就业班笔记day17(集合框架set)总结

Day17总结1、LinkedList:特有方法:1、增加:addFirst()addLast()JDk1.6之后出现了替代方法Boolean offerFirst()Boolean offerLast()实现代码:Public static void main(String[] args){LinkedLis link=new LinkedList();Link.addFirst("abc1");Link.addFirst("abc2");Link.addFirst("abc3");Link.addFirst("abc4");While(!link.isEmpty()){//此方法可以按照顺序取出元素,但是被删除,可以去模拟一些简单的数据结构Sop(link.removeLast());//abc1、abc2、abc3、abc4}}重点:模拟堆栈、队列这两种常见的数据结构;实现代码:队列:先进先出Public static void main(String[] args){DuiLie d=new DuiLie();d.myAdd("abc1");d.myAdd("abc2");d.myAdd("abc3");While(!d.isNull()){//判断是否有元素Sop(d.myGet());}}Class DuiLie{Private LinkedList link;DuiLie(){Link=new LinkedList();}提供添加元素的方法Public void myAdd(Object obj){link.addFirst(obj);//这里修改为link.addLast()就是堆栈}提供获取元素的方法Public Object myGet(){Return link.removeLast();}判断集合中是否有内容Public boolean isNull(){Return link.isEmpty();}}2、获取:Object getFirst()获取对象,不删除,如果集合中没有元素会抛出NoSuchElementException;Object getLast();JDK1.6后Object peekFirst()Object peeklast()3、获取对象:Object removeFirst()获取到元素,但是删除了。

黑马程序员java培训就业班笔记集合体系地的总结

黑马程序员java培训就业班笔记集合体系地的总结

精彩文档
lhs.add( "A" );
lhs.add( "D" );
lhs.add( "E" );
lhs.add( "C" );
lhs.add( "F" ); System. out .println( "LinkedHashSet:" +lhs); TreeSet<String> ts= newTreeSet<String>();
实用标准文案
1、Collection :
集合框架的由来: 因为每个容器对象的自身的数据结构不同, 所以对它们进行单独的描
述和对象封装,并不断的向上抽取共性内容,这样变形成了集合框架。
定义: 集合就是一个容器、用来存储对象、长度可变。
理解: 其实班级就是一个容器, 班上的每一个学生都是单独封装了功能的对象, 因为班
重点掌握上述保证唯一性的方法以及哈希表内存原理实现。
|--linkedHashSet
以元素的插入顺序来维护集合的连接表,允许以插入的顺序的集合中迭代的
怎么去理解?
HashSet<String> hs= newHashSet<String>();
hs.add( "B" );hs.a来自d( "A" );
for (int i = 0; i < array.length; i++)
list.add(new Double(array[i])); } Collections.sort(list); for (int i = 0; i < array.length; i++)

黑马程序员java培训就业班笔记:day10总结

黑马程序员java培训就业班笔记:day10总结

Day10总结:1、多态的特点:1、成员变量:当在子父类中出现了相同的非私有成员变量时,在多态调用中的特点:在编译时:参考引用型变量所属类中是否有调用的成员变量,如果有编译通过,如果没有编译失败。

在运行时:参考引用型变量所属的类中的成员。

简单一句话:对于成员变量无论是编译还是运行都参考引用型变量所属类中的成员变量。

也就是说:成员变量看等号左边。

2、成员函数:当子父类中出现一模一样的函数时,在多态调用中的特点:在编译时:参考引用型变量的所属的类中是否有调用的成员函数。

在运行时:参考的是对象所属的类中是否有调用的成员函数。

原因是:编译时期应该参考父类,运行时期应该参考子类。

因为成员函数上有一个特点覆盖。

简单一句话:对于成员函数,编译看左边,运行看右边。

3、静态函数:在编译时期:参考引用型变量所属的类中是否调用的静态函数,如果有编译通过,如果没有编译失败。

在运行时期:参考的还是引用型变量所属的类中的静态函数。

简单一句话:对于静态函数,无论是编译还是运行都看左边总结:对于多态成员而言,无论编译还是运行都看左边,只有成员非静态函数,编译看左边,运行看右边,因为覆盖的特性。

2、多态的应用:代码实现:Object:所有类的父类,该类中的方法所有对象都具备。

代码实现:Class Demo extends Object{Private int num;Demo(int num){This.num=num;}通常都会按照对象自身的特点对对象进行比较,比如:现在要比较两个Demo对象中null值是否相同。

}Public boolean compare(Demo b){Return this.num=d.num;}发现Demo继承Oject已经具备了比较对象的方法,所以没有必要再定义新的方法compare 了,直接使用equals就可以了,可是Object equals比较的是地址值,不是我们所需的,那就保留的父类的功能声明,建立自身的比较内容,这就是覆盖。

黑马程序员:Java集合简单总结

黑马程序员:Java集合简单总结

黑马程序员:Java集合简单总结在Java语言中,学好集合是非常重要的,下面简单的对集合进行总结,以便大家学习,有问题再相互交流。

集合框架图在集合框架图中可以看出,Collection接口中主要有两个子接口,分别是List和Set。

List集合的特点是元素有序、包含重复元素,Set集合的特点是元素无序、不包含重复元素。

Map集合中存储的是键值映射关系,元素都是成对出现的。

Map接口的主要子接口有HashMap和TreeMap。

总结ist有顺序有重复没有排序,set无重复有排序,map的key也和set一样。

List接口List :特点是元素有序、可以包含重复元素。

它有两个实现类分别是:ArrayList和LinkedList。

ArrayList :内部维护一个数组结构,允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。

LinkedList :内部维护了一个双向链表结构,即通过节点之间彼此连接来实现的,每一个节点都包含前一个节点和后一个节点的引用。

当一个新节点插入时,只需要修改其中保持先后关系的节点引用即可,这样的存储结构保证了LinkedList集合在增删元素时效率非常高。

Set接口Set具有与Collection完全一样的接口,因此没有任何额外的功能,不像前面的List。

实际上Set就是Collection只是行为不同,也就是说Set集合并没有对Collection接口进行扩充,只是比collection接口要求更加严了。

Set :存入Set的每个元素都必须是唯一的,因为Set不保存重复元素。

加入Set的元素必须定义equals()方法以确保对象的唯一性。

HashSet :为快速查找设计的Set。

存入HashSet的对象必须定义hashCode()。

TreeSet :保存有序的Set,底层为树结构。

使用它可以从Set中提取有序的序列。

LinkedHashSet :具有HashSet的查询速度,且内部使用链表维护元素的顺序。

鱼皮知识星球 黑马程序员项目总结

鱼皮知识星球 黑马程序员项目总结

鱼皮知识星球黑马程序员项目总结下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, suchas educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!鱼皮知识星球是一个专注于知识分享和项目交流的社交平台,而黑马程序员项目则是该平台上的一项重要活动。

黑马毕向东JAVA基础总结笔记

黑马毕向东JAVA基础总结笔记

Java基础知识总结(超级经典)写代码:1,明确需求。

我要做什么?2,分析思路。

我要怎么做?1,2,3。

3,确定步骤。

每一个思路部分用到哪些语句,方法,和对象。

4,代码实现。

用具体的java语言代码把思路体现出来。

学习新技术的四点:1,该技术是什么?2,该技术有什么特点(使用注意):3,该技术怎么使用。

demo4,该技术什么时候用?test。

----------------------------------------------------------------------------------------------- 一:java概述:1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;1994年将Oak语言更名为Java;Java的三种技术架构:JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。

2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。

3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。

环境变量的配置:1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdkpath=%JAVA_HOME%\bin2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。

黑马程序员_javaweb讲义和笔记资料

黑马程序员_javaweb讲义和笔记资料

黑马程序员_javaweb讲义和笔记资料(最新版)目录一、黑马程序员_JavaWeb 讲义概述二、JavaWeb 基础教程学习笔记三、JavaWeb 笔记资料汇总四、结论正文一、黑马程序员_JavaWeb 讲义概述黑马程序员_JavaWeb 讲义是一套针对 JavaWeb 开发的教程,旨在帮助开发者快速掌握 JavaWeb 技术。

这套教程涵盖了 JavaWeb 开发的方方面面,包括基础语法、数据处理、网络编程、数据库操作等内容。

通过学习这套教程,开发者可以全面提升自己的 JavaWeb 开发技能。

二、JavaWeb 基础教程学习笔记1.Java 基础知识回顾在 JavaWeb 开发中,首先需要对 Java 语言的基本知识有一定的了解,例如数据类型、运算符、流程控制等。

此外,还需要了解 Java 面向对象编程的基本概念,如类、对象、封装、继承等。

2.JavaWeb 基础语法JavaWeb 开发需要掌握基本的 HTML、CSS 和 JavaScript 语法。

这些技术可以帮助开发者构建具有丰富视觉效果的 Web 页面。

3.数据处理在 JavaWeb 开发中,数据处理是非常重要的一个环节。

开发者需要掌握 Java 中的基本数据结构,如数组、链表、树、图等,以及数据处理的基本方法,如排序、查找等。

4.网络编程网络编程是 JavaWeb 开发的重要组成部分。

开发者需要了解网络模型,如 OSI 参考模型和 TCP/IP 参考模型,以及网络编程的基本原理,如 Socket 编程等。

5.数据库操作在 JavaWeb 开发中,数据库操作是非常常见的任务。

开发者需要掌握关系型数据库的基本知识,如表、字段、索引等,以及 SQL 语言的基本语法,如 SELECT、INSERT、UPDATE 等。

三、JavaWeb 笔记资料汇总在学习 JavaWeb 开发的过程中,记录笔记是非常重要的学习方法。

通过记录笔记,可以整理自己的学习思路,巩固所学知识,提高学习效率。

黑马程序员java培训就业班笔记:day05汇总

黑马程序员java培训就业班笔记:day05汇总

黑马程序员java培训就业班笔记:day05汇总————————————————————————————————作者:————————————————————————————————日期:Day05上午:1、数组的静态初始化多种定义格式:Int[] arr=new int[]//标准格式,可以明确数组的数据类型,和数组名,但是不知道数组的长度Int arr[]=new int[]Int[] arr=new int[]{2,1,3,4,5,}//通过大括号可以标示出数组中的内容,此处最好别写长度,因为容易出错,因为即初始化实体,又初始化实体中的元素。

Int[] arr={2,1,3,4,5};//可以明确数组的数据类型,和数组名,也可以知道数组中的内容。

2、arr.length:方便获取数组中的元素个数的方式。

3、操作数组的最基础的思想以及核心思想:a)最基础的思想:就是遍历。

什么是遍历。

Eg:int[] arr = new int[3];int[] arr = {4,8,9,2,6,9};//明确了数组的类型和长度,并明确了数组中元素的内容。

// int[] arr1 = new int[]{4,8,9};//方便获取数组中的元素个数的方式,可以使用数组实体一个属性。

lengthSystem.out.println("len:"+arr.length);for(int x=0; x<arr.length; x++){if(x%2==1)System.out.println("arr["+x+"]="+arr[x]);//arr[0] = 4;}这就是遍历的思想,获取数组中的元素,通常会用到遍历。

b)核心思想:就是操作数组中元素的角标,角标即索引,因为存数据的最终目的就是取出数据使用,就是操作角标,操作动作:1、给数组角标上的元素赋值,2、获取角标上元素的值,存储都得用角标4、数组中常见的操作:a)获取最值:思路:1、首先我们要定义一个功能完成获取数组中最大值的动作;2、定义个函数来实现这一功能;明确结果,整数数组中的最大值,int,明确是否有未知内容参与运算,参数列表中有一个参数,数组类型int[],一定要注意这里是数组类型,不是int型;3、如何实现功能细节呢?1、对数组中的元素进行比较,将比较后比较大的值进行记录,并参与下一次比较,当数组中的元素都比较完成后,最大值就已经被记录下来了。

java集合总结_工作总结.doc

java集合总结_工作总结.doc

java集合总结_工作总结数组、集合:都是一种容器,用一个对象管理多个对象;数组:不能自动增长;只能存放同类型的元素集合:能自动扩容;部分集合允许存放不同类型的元素;二、学习这些集合类要掌握哪些东西:1)怎样得到(选择)集合对象;2)怎样添加元素3)怎样删除元素4)怎样循环遍历没一个元素三、list、set、map collection:父接口;Set:接口---一个实现类:HashSetList:接口---三个实现类:LinkedList,Vector,ArrayListSortedSet:接口---实现类:TreeSet1、List:List:有序列表,允许存放重复的元素;实现类:ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级;下标也是从0开始;LinkedList:链表实现,增删快,查询慢Vector:数组实现,线程安全,重量级2.Set:无序集合,不允许存放重复的元素;实现类HashSet:equals返回true,hashCode返回相同的整数;哈希表;子接口SortedSet:对Set排序实现类:TreeSet:二叉树实现的;看API:E 泛型:表示一个对象;Iterator:接口,迭代器;java.util;hasNext();next();remove();Iterable:可迭代的,访问的;ng;实现了可迭代的接口就可以用迭代的方式访问;只需实现iterator();方法即可;Iteratoriterator();三种循环的访问方式:只有实现了Iterable接口的才能用第三种;能用第二种的也一定能用第三种;ArrayList:自动扩容,是数组照搬过来的;3.MapHashMap:键值对,key不能重复,但是value可以重复;key 的实现就是HashSet;value对应着放;HashSet的后台有一个HashMap;初始化后台容量;只不过生成一个HashSet的话,系统只提供key的访问;如果有两个Key重复,那么会覆盖之前的;Hashtable:线程安全的Properties:java.util.Properties;key和value都是String类型,用来读配置文件;HashMap与Hashtable区别:HashMap线程不安全的,允许null作为key或value;Hashtable线程安全的,不允许null作为key或value;TreeMap:对key排好序的Map;key就是TreeSet,value对应每个key;key要实现Comparable接口或TreeMap有自己的构造器;HashSet:remove(Objecto)的原则看这个对象O的Hashcode 和equals是否相等,并不是看是不是一个对象;定义一个Map;key是课程名称,value是Integer表示选课人数;map.put(cou,map.get(cou)+newInteger(1));四、Hashtable、Properties1,Hashtable:实现了Map接口,此类实现一个哈希表,作用和HashMap相同。

黑马程序员java培训就业班笔记:day16(集合框架基础总结)

黑马程序员java培训就业班笔记:day16(集合框架基础总结)

黑马程序员java培训就业班笔记:day16(集合框架基础总结)Day161、集合框架体系|--由来:数据多了可以用对象类存储,对象多了用集合来存。

|--理解::咱班就是一个集合,每个人都是单独封装了功能的对象,而且长度是不固定的,因为每天都有人请假,77人或者76人,所以这个集合的长度是可变的。

|--概述:集合是一个容器、存储对象、长度可变化。

|--什么时候使用容器:一旦数据多了就得先把数据存储起来再操作,这样效率更好|--和数组的区别:1、数组定义时长度是固定的(必须明确元素类型和长度) 集合定义时,可以不用明确长度,长度是可变的。

2、数组存储是同一类型的数据,集合存储的是对象,而对象可以是任意类型3、数组可以存储基本数据值,而集合只能对象。

|--集合框架构成与分类:|--数据结构?什么是数据结构?有哪些体现方式?|--每一个容器因为自身的数据机构不同,进行了单独的描述和对象的封装,以为这些对象有共性就进行向上抽取,形成了集合框架,|--学习体系结构的技巧:查阅顶层内容、建立低层对象(继承体系中学)2、Collection接口的常见方法:|--增Add();添加一个元素AddAll();添加一个集合,把小集合添加到大集合中|--删Remove();删除一个,删除会返回Boolean 类型,用到equals方法判断是否相同。

如果删除成功,会改变集合的长度,下面同理。

removeAll();删除一部分,按照指定的集合的元素来删Clear();清空|--判断:Contains();包含,先遍历对象的元素,用到了对象判断的equals方法isEmpty();是否为空Size();集合的元素的大小或者说长度|--取retainAll();取交集Iterator();取出元素|--转变toArray();理解总结:把我们现在的班级想成容器即可,班上来一个新同学add()添加一个,来了一堆同学addAll();添加一部分,班上出去一个remove()删除一个,出去一部分removeAll()删除一部分。

集合(Java)总结

集合(Java)总结

集合(Java)总结集合(Java)总结一、集合的作用集合是可以存储一批类型不同的对象,针对集合的实现类有许多,作用都是一样的,即存储、传输数据,但存储的数据结构不一样,其速度、平安性也不一样。

二、集合框架的组成:1、接口1)Collection:直接存储Set List2)Map:键名+键值2、实现:ArrayListVectorHashSetHashtable3、算法:实现了许多静态方法,可以对集合进行操作Collections三、Collection体系:ColllectionList(值可以重复) Set(值不行以重复)ArrayList VectorLinkedList HashSet四、List的通用方法addremovesetindexOfaddAll(Collection c)removeAll(Collection c)clone();//复制size();//实际元素个数capacity();//最大容量三种遍历方式Iterator(迭代器)Enumeration(序列)for(循环)五、ArrayList、Vector、LinkedList的区分ArrayList、Vector:以线性表的方式存储,查、改快,增删慢Vector:是线程平安,方法是同步方法TreeSetArrayList:是线程担心全,方法是非同步方法LinkedList:单链表,查、改慢,增删快六、Set的特点:不行以有重复值1、两个对象的比较:对于自定义的类,必需掩盖equals方法。

该类型的两个对象比较,只有掩盖了equals方法,才能确定这两个对象是否相同,否则不管相同还是不相同返回都是false。

2、向set集合对象中加入新对象,插入对象的hasCode值与集合中每一个对象的hashCode值比较,若有一个相等,返回false.若都不相同,插入对象与集合中每一个对象比较,若有一个相等,返回false 不插入,若都不相同将插入对象加入到集合中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、Collection:集合框架的由来:因为每个容器对象的自身的数据结构不同,所以对它们进行单独的描述和对象封装,并不断的向上抽取共性内容,这样变形成了集合框架。

定义:集合就是一个容器、用来存储对象、长度可变。

理解:其实班级就是一个容器,班上的每一个学生都是单独封装了功能的对象,因为班级中的人数由于有人请假每天都再变化,所以长度是可变的,常见方法:1、增加:add();增加一个元素addAll();增加一部分元素。

2、删除:Remove();删除一个元素,会返回boolean类型,其实用到是equals方法,所以判断是否有符合要求的元素。

如果删除成功会改变集合的长度。

下面同理。

removeAll();删除全部Clrea();清空容器总结:在这里要尤其注意,面试题中经常考到。

3、判断:Contains();是否包含,也就说要所有的都包含在其中才算包含,否则不算包含。

isEmpty();集合是否为空Size();集合长度。

4、取:retainAll();取交集。

理解总结:班级就是一个容器,班级中进来一位新生就是Add()添加一个元素,来了一堆同学就是addAll,班上出去一个学生就是remove删除一个,出去一部分就是removeAll删除一部分,班级是不是有人,isEmpty,班上是否包含张三contains,班上有多少人size。

班上是否包含隔壁班的同学retainAll.去交集。

集合使用细节:1、直接存储基本数据类型值也是可以的,因为JDK1.5后有自动装箱,会将基本数据类型转成对象,JDK1.4绝对不行。

Eg:coll.add(3)2、集合对象中存储的其实是对象的元素的引用。

3、Add的参数是Object类型,可以接收所有的类型的对象,会出现向上转型,取出元素时类型还是Object不能使用具体对象的特有内容,想要使用特有内容向下转型。

Eg:Object obj="obj";想要取出访问子类的特有方法,向下转型,String s=(String)it.next();sop(s.length());|--List:有序列表(存取顺序是一致的)因为该子体系元素中有索引或角标,可以存储重复的元素。

常用方法://添加:List.add(1,"abc7");//[abc1,abc7,abc2,abc3]在角标1位置往后顺延。

//删除Object obj=list.remove(2);//删除指定索引上的元素,根据角标删除会返回来被删对象Sop(obj);//obj:abc2 [abc1,abc7,abc3]//获取:获取指定角标上的元素并返回,这也是和remove的区别。

Object obj=list.get(1);Sop(obj);//obj:abc1 [abc1,abc7,abc3]//获取元素的索引,如果元素存在返回索引,不存在返回-1,依次还可以判断元素是否存在。

Int index=list.indexOf("abc1");Sop(index);//index=1//获取指定的子列表sublist(fromIndex,toindex)包含头不包含尾List=list.sublist(1,2);//[abc1]//修改:Object obj=list.set(1,"haha");Sop(obj);//[abc1,haha,abc3]记住:只有list集合支持增删改查。

|--ArrayList:低层是数组数据结构,不同步,查询快,增删慢,|--LinkedList:低层是链表数据结构,不同步,查询慢,增删较快。

|--Vector:低层是数组数据结构,同步,安全效率低,还有其特有方法枚举。

由于名称过长被iterator取代。

总结:掌握这些集合的方法,它们的方法和list集合的方法很相似,重点掌握各种集合的特点,尤其是前两个子类的低层数据结构。

|--Set无序、不能存储重复的元素、方法个collection集合的方法一致。

|--HashSet低层是哈希表数据结构,无序,能保证元素的唯一性,是根据元素的两个方法来保证元素的唯一性的,hasCode和equals方法。

只有当hasCode算出的哈希值相同的情况下才去判断equals方法是否为true.如果为真说明两个元素相同,不存储,所以往hashSet 集合中存储自定义对象时要覆写hasCode方法和equals方法,重点掌握上述保证唯一性的方法以及哈希表内存原理实现。

|--linkedHashSet以元素的插入顺序来维护集合的连接表,允许以插入的顺序的集合中迭代的怎么去理解?HashSet<String> hs=new HashSet<String>();hs.add("B");hs.add("A");hs.add("D");hs.add("E");hs.add("C");hs.add("F");System.out.println("HashSet:"+hs);LinkedHashSet<String> lhs=newLinkedHashSet<String>();lhs.add("B");lhs.add("A");lhs.add("D");lhs.add("E");lhs.add("C");lhs.add("F");System.out.println("LinkedHashSet:"+lhs);TreeSet<String> ts=new TreeSet<String>();ts.add("B");ts.add("A");ts.add("D");ts.add("E");ts.add("C");ts.add("F");System.out.println("TreeSet:"+ts);结果:HashSet:[D, E, F, A, B, C]LinkedHashSet:[B, A, D, E, C, F]TreeSet:[A, B, C, D, E, F]从结果可以知道对于LinkedHashSet集合可以保证元素按照添加的顺序取出元素,而TreeSet集合可以对集合中的元素进行自然排序。

|--TreeSet用于给set集合中元素按照指定的顺序进行排序,低层是二叉树结构,线程是不同步的,两种排序方式:1、让元素自身具备比较功能,就是强制让元素去实现comparable接口,覆盖compareTo方法。

这时元素具备的自然排序。

可是如果元素自身不具备比较的功能,获取具备的比较功能不是所需要的。

这时该排序方式就不能用了。

2、让集合自身具备比较功能,需要定义比较器,其实就是将实现了Comparator接口的子类对象作为参数传递给TreeSet集合的构造函数,让treeSet集合一创建就具备了比较功能。

该子类必须要覆盖compare方法。

掌握二叉树数据结构的特点:不明白?2、Map:特点:1、它是集合框架中的顶层2、它存储的是键值对。

3、Map集合中必须保证键的唯一性。

4、如果存储键值对时,键重复,新值覆盖旧值。

其实存储的就是一种映射关系。

常见方法:增加:Put();putAll();删除:Clrea();Remove(key);判断:containKey();containValue();获取:get(Object key);Size();Values();entrySet();将map集合中的映射关系map.Entry其实Entry也是一个接口,它是map接口中的一个内部接口。

Interface Map{public static interface Entry{public abstract Object getKey();public abstract Object getValue();}}keySet();将map中所有的键都存入了set集合,因为set具备迭代器,所以可以迭代方式取出所有的键,在根据get方法获取每一个键对应的值。

Map集合的取出原理:将map集合转成set集合,在通过迭代器取出.|--HashMap:低层是哈希表数据结构,该集合是不同步的,允许使用null键和null值。

JDK1.2效率高|--LinkedHashMap:保证按照插入的顺序进行取出。

|--TreeMap:低层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排序。

3、Iterator迭代器原理:其实就collection这个集合公共取出方式,因为每个容器的自身的数据结构不同,它们的取出方式也是不同的,要根据每个容器的特点来定义特定的取出方式,而取出方式直接在访问容器中的元素,所以将取出方式定义在容器的内部,是一个内部类,而对外提供访问接口。

这样可以通过接口访问任何的collection容器中的元素,所以它的出现降低了耦合性,我们只用面对Iterator接口,和使用接口就可以了。

理解:抓布娃娃游戏机。

|--ListIterator列表迭代器:要想在迭代过程中进行增删操作Iterator是不可以的,它只有删除动作,所以可以使用其子接口listIterator,是list集合特有的取出方式,它包包含了增删改查的方法。

4、Collections和Collection的区别:(面试题)1、java.util.Collection 是一个集合接口。

它提供了对集合对象进行基本操作的通用接口方法。

Collection接口在Java 类库中有很多具体的实现。

Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。

Collection├List│├LinkedList│├ArrayList│└Vector│└Stack└Set2、java.util.Collections 是一个包装类。

它包含有各种有关集合操作的静态多态方法。

此类不能实例化,就像一个工具类,服务于Java的Collection框架。

Java代码1.import java.util.ArrayList;2.import java.util.Collections;3.import java.util.List;4.5.public class TestCollections {6.7.public static void main(String args[]) {8.//注意List是实现Collection接口的9.List list = new ArrayList();10. double array[] = { 112, 111, 23, 456, 231};11. for (int i = 0; i < array.length; i++){12. list.add(new Double(array[i]));13. }14. Collections.sort(list);15. for (int i = 0; i < array.length; i++){16. System.out.println(list.get(i));17. }18. // 结果:23.0 111.0 112.0 231.0 456.019. }20.}。

相关文档
最新文档