【黑马程序员】Java基础总结
黑马程序员JavaEE基础班知识点整理
黑马程序员JavaEE基础班知识点整理天地玄黄,宇宙洪荒。
如果你也和我一样看过不少网络小说,那你的想象力肯定很丰富,这点作为程序员是很重要的。
如果你和我一样喜欢《黑客帝国》《银河系漫游指南》《钢铁侠》《三体》《西部世界》。
那有可能科幻就是你坚持钻研技术的动力来源。
虽然我们暂时不能像黑客帝国里一样进入虚拟世界,不能像邓肯一样到宇宙尽头餐馆吃饭,没有贾维斯的智能管家系统,也不能把机器人做的无法分辨真伪,但是如果没有人们对未来的想象我们的技术就没有了追求。
这些追求促使我们不断的学习,让技术不断的前进,我相信这些电影电视小说里的情节一定会实现。
抱有这样的期待和好奇很多同学来到黑马学习技术,首先接触的就是黑马的基础班。
视频课程,讲义是必须的,但是我们还要有知识的梳理。
今天我们就整理了基础班的一下问答和笔试题供大家交流学习。
希望大家梳理一下自己的基础知识,基础知识是我们技术飞船的主架,主架坚固才能让我们在宇宙里航行的更远~理论知识点一、基础概念1、面向对象的理解并举例2、面向对象的三大特性,并分别阐述对每个特性的理解3、阐述成员变量和局部变量的区别4、构造方法的概念和作用,和一般方法的区别5、静态代码块、构造代码块、构造方法的特点及执行顺序6、描述类和对象的关系7、创建对象的步骤等二、IO流理论知识点:1、io流的基本流都有哪些,简单说说基本流的体系2、字节流和字符流的使用场景3、拷贝文本文件一般会用到哪个流?为什么?4、在io流中拷贝文件一般会用哪几个流?5、在io流的拷贝过程中,通过while 循环读取字节进行拷贝,需要通过哪个流的什么方法读取字节6、File类的常用方法都有哪些?7、遍历指定目录下的文件的所有名称,一般用什么方法?8、在io流中一般常用的字符编码集都有哪些?简单阐述几种9、在字符流中,带缓冲区的包装流都有哪一些?具体阐述一下。
10、为什么read()方法返回值是int类型?11、标准输入流和输出流是什么?三、集合理论知识点1、集合的由来2、数组和集合的使用场景3、数组和集合的区别4、集合的遍历5、在迭代集合中元素时,可不可以通过集合对象的方法操作集合中的元素?6、 List的三个子类的特点7、栈和队列数据结构8、 List有三个儿子,在不同的场景分别应该使用谁呢?9、 HashSet保证元素唯一的原理10、 TreeSet两种排序方式11、 list集合和set集合有什么区别?12、双列集合获取键和值的两种方式13、 HashMap和Hashtable的区别14、 Collection和Collections的区别?四、反射理论知识点1、反射概述2、获取类的字节码文件三种方式五、线程理论知识点1、线程的生命周期。
黑马程序员_javaweb讲义和笔记资料
黑马程序员_javaweb讲义和笔记资料
黑马程序员提供的JavaWeb讲义和笔记资料非常详尽,对于学习JavaWeb开发的人来说非常有用。
这些资料涵盖了JavaWeb开发的基础
知识,包括HTML、CSS、JavaScript、Servlet、JSP等方面的内容。
以下是一些黑马程序员提供的JavaWeb讲义和笔记资料的介绍:
1. JavaWeb基础笔记:这是一份详细的笔记,涵盖了JavaWeb开发的基
础知识,包括HTTP协议、Web服务器、Web应用程序架构等方面的内容。
2. JavaWeb进阶笔记:这是一份进阶的笔记,主要介绍了JavaWeb开发
的高级技术,包括多线程、JavaMail、JNDI等方面的内容。
3. JavaWeb实战笔记:这是一份实战的笔记,通过多个案例介绍了JavaWeb开发的实际应用,包括文件上传、在线聊天室、在线购物等方面
的内容。
4. JavaWeb讲义:这是一份详细的讲义,介绍了JavaWeb开发的整个流程,包括开发环境的搭建、HTML/CSS/JavaScript的使用、Servlet/JSP的使用等方面的内容。
这些资料都是黑马程序员精心整理的,非常适合初学者和有一定Java基础的开发者使用。
通过学习这些资料,可以快速掌握JavaWeb开发的基本知识和技能,提高自己的开发能力。
【黑马程序员】Java入门知识点、Java编程入门学习
【黑马程序员】Java入门知识点、Java编程入门学习1、作用域public,private,protected,以及不写时的区别答:区别如下:作用域当前类同一package 子孙类其他packagepublic √√√√protected √√√×friendly √√××private √×××不写时默认为friendly2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)答:匿名的内部类是没有名字的内部类。
不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现3、Static Nested Class 和Inner Class的不同答:Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。
Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。
注:静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象4、&和&&的区别答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)5、Collection 和Collections的区别答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作6、什么时候用assert答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。
在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。
黑马程序员_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开发的方法和技巧。
【黑马程序员】Java基础-数组
【黑马程序员】Java基础-数组摘要:Java基础-数组这些是黑马程序员java基础入门的一个很重要的内容。
今天主要给大家简单讲解一下Java 基础-数组,以后会慢慢讲解黑马程序员的课程内容!数组的定义和初始化Java 中定义数组的语法有两种:type arrayName[]; type[] arrayName; type 为Java中的任意数据类型,包括基本类型和组合类型,arrayName为数组名,必须是一个合法的标识符,[ ] 指明该变量是一个数组类型变量。
例如:数组的初始化数组的引用可以通过下标来引用数组:arrayName[index]; 每个数组都有一个length属性来指明它的长度,引用的时候要防止数组越界数组的遍历最常用的for循环或者是使用增强for循环数组的排序一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法import java.util.Arrays;public class Test2{public static void main(String[] args){int[] a={5,4,2,4,9,1};Arrays.sort(a); //进行排序for(int i: a){System.out.print(i);}}}public static int[] bubbleSort(int[] args){//冒泡排序算法for(int i=0;i<args.length-1;i++){for(int j=i+1;j<args.length;j++){if (args>args[j]){int temp=args;args=args[j];args[j]=temp;}}}return args;}min=j;}}if (min!=i){int temp=args;args=args[min];args[min]=temp;}}return args;}public static int[] insertSort(int[] args){//插入排序算法for(int i=1;i<args.length;i++){for(int j=i;j>0;j--){if (args[j]<args[j-1]){int temp=args[j-1];args[j-1]=args[j];args[j]=temp; }else break;}}return args;}在实际应用中,我们要尽量选择效率高的算法。
黑马程序员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基础之面向对象资料
昨天学习了java基础语法,现在重头戏来了~java真正的核心思想!会贯穿整个java开发人员的一生哦!面向对象:★★★★★(核心特点:1:将复杂的事情简单化。
2:面向对象将以前的过程中的执行者,变成了指挥者。
3:面向对象这种思想是符合现在人们思考习惯的一种思想。
过程和对象在我们的程序中是如何体现的呢?过程其实就是函数;对象是将函数等一些内容进行了封装。
匿名对象使用场景:1:当对方法只进行一次调用的时候,可以使用匿名对象。
(2:当对象对成员进行多次调用时,不能使用匿名对象。
必须给对象起名字。
在类中定义其实都称之为成员。
成员有两种:1:成员变量:其实对应的就是事物的属性。
2:成员函数:其实对应的就是事物的行为。
所以,其实定义类,就是在定义成员变量和成员函数。
但是在定义前,必须先要对事物进行属性和行为的分析,才可以用代码来体现。
private int age;//私有的访问权限最低,只有在本类中的访问有效。
注意:私有仅仅是封装的一种体现形式而已。
私有的成员:其他类不能直接创建对象访问,所以只有通过本类对外提供具体的访问方式来完成对私有的访问,可以通过对外提供函数的形式对其进行访问。
好处:可以在函数中加入逻辑判断等操作,对数据进行判断等操作。
总结:开发时,记住,属性是用于存储数据的,直接被访问,容易出现安全隐患,所以,类中的属性通常被私有化,并对外提供公共的访问方法。
这个方法一般有两个,规范写法:对于属性 xxx,可以使用setXXX(,getXXX(对其进行操作。
(JavaBean类首次出现哦类中怎么没有定义主函数呢?注意:主函数的存在,仅为该类是否需要独立运行,如果不需要,主函数是不用定义的。
主函数的解释:保证所在类的独立运行,是程序的入口,被jvm调用。
成员变量和局部变量的区别:1:成员变量直接定义在类中。
局部变量定义在方法中,参数上,语句中。
2:成员变量在这个类中有效。
局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。
黑马程序员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 IO流学习总结
【黑马程序员】Java IO流学习总结Java流操作有关的类或接口:Java流类图结构:流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。
即数根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
IO流的分类•根据处理数据类型的不同分为:字符流和字节流•根据数据流向不同分为:输入流和输出流字符流和字节流字符流的由来:因为数据编码的不同,而有了对字符进行高效操作的流对象。
本质节流和字符流的区别:•读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映•处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能结论:只要是处理纯文本数据,就优先考虑使用字符流。
除此之外都使用字节流。
输入流和输出流对输入流只能进行读操作,对输出流只能进行写操作,程序中需要根据待传输数据Java IO流对象1.输入字节流InputStream IO 中输入字节流的继承图可见上图,可以看出:1 InputStream 是所有的输入字节流的父类,它是一个抽象类。
2 ByteArrayInputStream、StringBufferInputStream、FileInputStream 是三种基本的介质流,它本地文件中读取数据。
PipedInputStream 是从与其它线程共用的管道中读取数据,与P 3 ObjectInputStream 和所有FilterInputStream 的子类都是装饰流(装饰器模式的主角)。
2.输出字节流OutputStreamIO 中输出字节流的继承图可见上图,可以看出:1 OutputStream 是所有的输出字节流的父类,它是一个抽象类。
2 ByteArrayOutputStream、FileOutputStream 是两种基本的介质流,它们分别向Byte 数组、PipedOutputStream 是向与其它线程共用的管道中写入数据,3 ObjectOutputStream 和所有FilterOutputStream 的子类都是装饰流。
黑马程序员刘意老师java教程每日总结汇总
!:非true则false,非false则true
&&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。
(5)位运算符(了解)
A:^的特殊用法
一个数据针对另一个数据位异或两次,该数不变
B:面试题
a:请实现两个变量的交换
计算机语言:人与计算机交流沟通的
C,C++,C#,Java
(6)人机交换
图形界面:操作方便只管
DOS命令:需要记忆一些常见的命令
2:
(1)功能键的认识
tab
shift
ctrl
alt
windos
空格
上下左右
回车
截图
(2)快捷键
全选Ctrl+A
复制Ctrl+C
粘贴Ctrl+V
剪切Ctrl+X
撤销Ctrl+Z
面试题:
short s = 1;
s = s + 1;
//错误:不兼容的类型:从int转换到short可能会有损失
//因为s+1后的数据类型是int类型
short s = 1;
s += 1;
//不会报错,因为扩展运算符隐含了强制类型转换
//等效于short s = (short)(s+1)
请问上面的代码哪个有问题?
(3)比较运算符
A:==,!=,>,>=,<,<=
B:无论运算符两端简单还是复杂最终结果是boolean类型。
C:千万不要把==写成了=
(4)逻辑运算符
黑马毕向东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 基础教程学习笔记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培训就业班笔记:day13(多线程通信)总结
Day13总结1、单列设计模式:1、恶汉式:代码表现:Class Single{Privtae static final Single s=new Single();Private Single(){}Public static Single getInstance(){Return s;}}2、懒汉式:延迟加载,存在着多线程并发访问的安全问题,需要利用同步来解决安全问题,可是同步会降低效率,所以利用双重if()判断形式解决效率低的问题。
实现代码:Class Single{Private Single(){}Private static Single s=null;Public static Single getInstance(){If(s==null){Synchroinzed{If(s==null)S=new Single();}Return s;}}}2、死锁:即同步的短处,不是线程和进程没有了,而是不动了。
表现形式:同步嵌套的时候,利用的锁不一样,容易引发死锁。
实现代码:3、线程间通信:其实就是多个线程在操作同一个资源,可是操作的动作不同,动作不同,意味着线程的任务是不一样的。
就需要对任务对象进行单独的封装和描述。
4、等待唤醒机制:最重要的机制重点掌握Wait():等待:让当前线程出于冻结状态,当前线程就被存储到线程池当中。
Notify();唤醒线程池中的任意一个线程,让该线程恢复到运行状态,会具有CPU的执行资格。
notifyAll():唤醒线程池中的所有等待的线程,让它们具有CPU的执行资格。
所谓的监视器:就是多线程中的锁。
上面几个功能必需在同步当中,要标示清楚它所在的锁。
也就说:wait到底让哪个锁上的线程等待了,notify:究竟是唤醒了哪个锁上被等待的线程。
NotifyAll:用上面的一样。
为何是Object中的方式?因为这些方式都是必需要标识出所属的锁,而锁是任意的对象。
能被任意对象挪用的方式必然概念在Object类中。
传智播客黑马程序员javaIO流重点总结(必读)
IO流总结异常父类是Throwable,处理异常的两种方案,一种try--catch另外一种抛出熟练使用Try---catch---finally,注意:能和try一起使用的只有catch和finally关键字Try块里面存放的是有可能发生异常的代码,通常和catch块一起使用,catch块用于处理try块中抛出的异常,finally块不是必须的,通常将释放资源(例如IO流的close方法)的代码放到finally块里面注意:finally和Final还有Finalize的区别File类注意:File类封装的路径,而不一定是一个具体的文件,File类不能用于读写文件,File类只能用来处理和文件相关的操作构造方法*File(Stringpathname):根据一个路径得到File对象*File(Stringparent,Stringchild):根据一个目录和一个子文件/目录得到File对象*File(Fileparent,Stringchild):根据一个父File目录和一个子文件/目录得到File对象创建功能*publicbooleanmkdir():创建文件夹如果存在这样的文件夹,就不创建了*publicbooleanmkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来注意:mkdir只能创建单级目录,mkdirs用于创建多级目录判断功能,*publicbooleanisDirectory():判断是否是目录*publicbooleanisFile():判断是否是文件*publicbooleanexists():判断文件是否存在注意:判断功能返回的都是布尔类型的获取功能*publicStringgetName():获取名称*publiclonglength():获取长度。
字节数*publicFile[]listFiles():获取指定目录下的所有文件或者文件夹对象,返回的是File数组*publicFile[]listFiles(FilenameFilterfilter):注意:此方法需要传入筛选文件名的接口FileNameFilter,用于过滤文件概念*InputOutput流用来处理设备之间的数据传输,Java中输入输出功能是通过流来实现,把数据写入文件需要创建流对象*Java对数据的操作是通过流的方式*Java用于操作流的类都在IO包中*流按流向分为两种:输入流,输出流。
黑马程序员java笔记
黑马程序员java笔记黑马程序员是一家知名的IT培训机构,其提供的Java笔记是一个非常实用的学习资源,主要包括以下内容:1.Java基础语法:包括变量、数据类型、运算符、控制流、异常处理等知识点,通过笔记的方式详细讲解了Java编程的基础知识。
2.Java面向对象编程:介绍了面向对象的概念、类和对象、继承和多态等核心知识点,帮助读者深入理解Java面向对象编程的特性。
3.Java常用类库:包括了Java标准库中常用的类和接口,如String、ArrayList、HashMap等,并提供了相应的示例代码和注释说明。
4.Java网络编程:介绍了Java网络编程的基础知识,包括TCP/IP协议、Socket编程、HTTP协议等,让读者能够了解如何使用Java进行网络通信。
5.Java多线程编程:介绍了Java多线程编程的相关知识,包括线程的概念、线程的创建、线程的同步和通信等,让读者能够掌握多线程编程的技巧。
6.Java与数据库交互:介绍了如何使用Java与数据库进行交互,包括JDBC API的使用、SQL语句的编写等,让读者能够掌握Java数据库编程的基本方法。
7.Java Web开发:介绍了Java Web开发的基础知识,包括Servlet、JSP、JSTL等技术的使用,以及如何使用Java进行Web应用程序的开发。
8.Java进阶知识:包括Java泛型、Java注解、Java反射等进阶知识点,让读者能够更加深入地了解Java的高级特性和应用。
黑马程序员提供的Java笔记内容全面且详细,适合初学者和有一定基础的开发者使用。
通过学习这些笔记,可以帮助读者更好地掌握Java编程语言的核心知识点和技能,提高自己的编程能力。
【黑马程序员】Java之debug总结一
【⿊马程序员】Java之debug总结⼀
【⿊马程序员】Java之debug总结⼀程序员必会的debug技术,善⽤debug,可以培养⾃⼰独⽴解决问题的能⼒,在不求⼈的情况下⾃主解决问题.(都是根据⾃⼰开发总结的,不⾜之处敬请指正)
debug分类
1.main⽅法debug
2.Junit注解@Test的Debug
3.服务器debug 以tomcat为例: tomcat debug启动即可
4.服务器远程debug(实际开发中可能会⽤,应⽤场景:本地没有环境,统⼀在测试服务器上进⾏代码测试)
5.maven项⽬debug
6.前台debug 主要:debug js代码(1.jsp中嵌⼊的js代码2.js⽂件中的js代码)
⼀.main⽅法debug
⼆.Junit 的Debug
三.服务器debug(以tomcat为例) 第⼀步:创建⼀个web项⽬,如下
第⼆步:把项⽬添加到web服务器tomcat中
第三步:debug启动项⽬
第四步:断点,访问项⽬
四.服务器远程debug(由于只有⼀台电脑并且本地没有开虚拟机,所以只提供配置描述,就不具体分步骤写了)
今天先介绍这四种,后⾯两种我会尽快补上....
mainDebug.zip addrLocal.zip。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【黑马程序员】Java基础总结黑马程序员的javaEE课程主要分为2个部分:java基础+java就业。
今天就简单的给大家总结一下咱们java基础的知识。
注:Java采用Unicode符号集,每个字符占2个字节,无论英文还是中文还是其他字符。
标识符为变量、类或方法起的名称以字母,下划线、或者$符号开头由字母、数字、下划线或者$符号开头区分大小写,没有长度限制,不能使用关键字尽量取得容易辨识,见名知意如:identifier、userName、user_Name、_sys_varl、$change基本数据类型Java定义了8中基本数据类型[AppleScript] 纯文本查看复制代码?1 2 3 4 5 6 7/*** @author 传智播客*/布尔值----boolean(只有true和false两种类型)字符-------char ( 16 位的Unicode字符用单引号( '' )标注;'a'表示字母a '\t' 表示制表符 '\u????'中?用确切的代替申明并且初始化: char c = 'A' 申明变量 char ch1,ch2)整数--------byte (8位) short(16) int(32) long(64)【以0开头表示八进制;以0x开始表示16进制】浮点型-----float double变量必须在类的内部【可以在方法外也可以在方法类】在方法类定义的变量叫做局部变量,需要显示的初始化成员变量和类变量【对象】自动初始化【数字初始化为0,对象初始化为null】常量在程序运行中,其值保持不变的量不同数据类型间的相互转换【封装Wrapper类】Java中类的定义:[AppleScript] 纯文本查看复制代码?1 2 3 4 5 6 7 8/*** @author 传智播客*/<修饰符> Class <类名>{ <属性申明>;<构造器申明>;<方法申明>;}成员变量申明:[AppleScript] 纯文本查看复制代码?1<修饰符> <类型> <名称>;修饰符:[AppleScript] 纯文本查看复制代码?1 2 3 4 5/*** @author 传智播客*/final:修饰常量,常量的值不能被修改【例如 final int CONSTANT = 50;】static:申明静态变量[类变量] static int nCount;方法的申明:[AppleScript] 纯文本查看复制代码?1 2/*** @author 传智播客3 4 5 6*/<修饰符> <返回值类型> <名称>[参数列表]{语句;}方法参数的传递方式:1、值传递:形参是基本数据类型,方法调用时,实际参数把值传递给形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容;是两个不同的存储单元,所以方法执行中,形式参数值的改变不会影响实际参数的值。
2、引用传递:形参类型是引用数据类型【传递地址】,方法调用时,实际参数是对象或者数组,这时,形式参数和实际参数指向的是同一地址,方法执行中,对形式参数的操作实际上是对实际参数的操作,这个结果在方法结束后被保留了下来,所以对形式参数的操作实际上就是对实际参数的操作。
构造器申明:[AppleScript] 纯文本查看复制代码?1 2 3 4 5 6 7/*** @author 传智播客*/<修饰符> <类名>[参数列表]{语句;}注释:构造器没有返回值,void也不行;如果有返回值,方法会被当做普通函数执行;构造器函数特点:1、作用:完成对类对象的初始化2、名称必须和类名相同3、不能有返回值,不能有return 语句4、一般申明为Public类型构造器的使用:1、不能现实的调用2、在创建一个类的对象时,系统自动调用构造器为该对象初始化3、构造器只能和new关键字一起使用格式:类名对象名 = new 构造函数名称(成员变量的初始值) ;默认构造器:1、每个类至少有一个构造器2、如果不编写构造函数,系统自动添加默认的构造函数【默认构造函数不带参数,默认构造函数函数体为空】3、不必编写构造函数就能使用new XXX()创建实例对象创建格式:<对象名> = new <类名>(实参)对象的清除:对象为null时,Java自动调用垃圾回收机制清除对象,释放对象占用的内存空间手动编写finalize() 方法撤销对象 -- 不提倡对象的内存模型:栈内存:方法中定义的变量(基本类型和引用类型)。
超过变量的作用域,自动释放变量的内存堆内存:new 创建的对象(包括数组),由系统自动回收类的继承【仅支持单继承】[AppleScript] 纯文本查看复制代码?1 2 3 4 5 6/*** @author 传智播客*/<修饰符> class <名称> extends <父类>{申明;}子类可以继承父类中非private的方法和属性;子类可以添加新的属性和方法;【程序代码重,减少冗余】方法的重载(overload):1、一个类中有多个同名的方法2、条件:参数的个数不同;参数的类型不同3、如果两个方法只有返回值不一样,不是重载,会报错方法的覆盖(override):1、子类可以修改父类继承过来的行为2、子类可以创建和父类的方法不同功能的方法,但是下面必须相同:【方法名、返回值、参数列表】super关键字:往往在覆盖方法时,真正不目的不是代替现有的行为,而是在某些方面扩展那些行为;类中使用super关键字指向父类的成员包括数据和方法;3中使用方法:super.方法名([参数表]); ---- 调用父类的方法super.成员变量名;---- 访问父类的成员变量super([参数表]); ---- 调用父类的构造函数构造函数不能被继承:子类从父类继承所有的方法和变量子类不能继承父类的构造函数有两种方式可以获取构造函数:1、使用默认的构造函数2、编写1个或者多个构造函数调用父类的构造函数:要调用父类的构造函数,必须在子类构造函数的第一行使用super关键字要调用特定的父类的构造函数,必须为super提供参数如果没有this或者super调用,编译器会插入一个对父类无参数构造函数的隐式调用:super();变量的多态:类型为X的参考变量,指向的对象类型既可以是X,也可以是X的子类;如:Employee x = new Manager(); Employee y = new Employee();实例方法能够被覆盖,静态(static) 方法不能被覆盖原因:静态方法在编译时候,根据调用该方法的类或者对象所属的类决定实例方法在运行时根据对象所属的类决定如:Super s = new Sub(); 编译时候S是Super类的对象,运行时 S 指向Sub类的对象;instanceof操作符:可以根据对象所属的类进行不同的处理抽象类:只能被继承,不能被实例化的类定义格式:[AppleScript] 纯文本查看复制代码?1 2 3 4 5 6 7/*** @author 传智播客*/abstract class 类名{abstract 返回值类型方法名[参数列表];...}说明:抽象类中可以包含抽象方法和非抽象方法,也可以不包含抽象方法和非抽象方法;只要有一个抽象方法,就属于抽象类;[AppleScript] 纯文本查看复制代码?01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17/*** @author 传智播客*/abstract class Animal{public abstract void eat();}class Dog extends Animal{public void eat(){System.out.println("狗吃骨头");} }class Cat extends Animal{public void eat(){System.out.println("猫吃老鼠");} }class Wolf extends Animal{public void eat(){System.out.println("狼吃羊");} }说明:不能创建抽象类的对象,即不能被实例化;使用时,必须用起创建子类子类可以定义自己的成员变量和方法,但是必须将父类的所有抽象方法代码写完;如果子类只是实现了部分抽象的方法,那么,该类仍然是抽象类;最终类:final 类不能被子类化;如ng.String 是final 类,这样做是基于安全的考虑;标记为final的方法不能被覆盖;处于安全的考虑,如果方法的实现不应改变,而且对对象的一致性要求比较高,则可以创建一个final方法。
标记为final的变量代表常量,只能一次赋值;接口:使用interface关键字申明,可以支持多重继承接口中只能包含:抽象方法;常量(默认为public static final )【用得较少】说明:1、接口本身只是提供定义,使用时,必须通过类实现接口( implements ) 实现接口时,必须实现所有的方法。
否则该类还是抽象类( abstract class )。
2、一个雷尅实现多个接口。
3、扩展子句(extends )必须在实现子句( implements )之前包:package <顶层包名>[.<子包名>]*;如:package shipping.domain;说明:1、如果有包申明,必须在源文件开始处申明。
他的前面只能有空白和注释,不能有其他语句;2、每个源文件只能有一个包申明;3、如果没有包申明,则该类属于"默认"包(没有名称的包)4、包的名称有层次,且用 . 分开;import语句:基本语法:import <包名>[.<子包名>].<类名>或者import <包名>[.<子包名>].*;其实在学习java过程中基础还是比较容易,如果大家想学习java基础的知识,欢迎大家可以去传智播客官网/去了解java基础知识!。