11 2021 档案

摘要:Servlet技术 一,Servlet概念 1,Servlet是JavaEE规范之一。规范就是接口 2,Servlet就是JavaWeb三大组件之一。三大组件分别是:Servlet程序、Filter过滤器、Listener监听器 3,Servlet是运行在服务器上的一个java小程序,它可以接收客户 阅读全文
posted @ 2021-11-30 22:41 doremi429 阅读(45) 评论(0) 推荐(0) 编辑
摘要:1,修改工程访问路径 context修改路径 ,访问的地址也会改变成一致 2,修改运行的端口号 3,修改运行时使用的浏览器 4,配置资源热部署 阅读全文
posted @ 2021-11-30 18:14 doremi429 阅读(29) 评论(0) 推荐(0) 编辑
摘要:IDEA部署工程到Tomcat上运行 1,建议修改web工程对应的Tomcat运行实例名称 2,将需要部署的web工程添加到Tomcat运行实例中,添加或删除 Application context:工程路径 3,还可以修改你的Tomcat实例启动后默认的访问地址 4, 在IDEA中如何运行,和停止 阅读全文
posted @ 2021-11-30 18:06 doremi429 阅读(99) 评论(0) 推荐(0) 编辑
摘要:给动态web工程添加额外jar包 1,打开项目结构菜单操作界面,添加一个自己的类库 2,添加你当前类库需要的jar包 3,选择你添加的类库,给哪个模块使用 4,选择Artifacts选项,将类库添加到打包部署中,点击fix 阅读全文
posted @ 2021-11-30 17:51 doremi429 阅读(1040) 评论(0) 推荐(0) 编辑
摘要:1,IDEA中如何创建动态web工程 (1)创建一个新模块 (2)选择你要创建什么类型的模块 (3)输入模块名,finish完成创建 创建成功如下图: 一般在WEB-INF下建一个lib目录 存放jar包: 动态web工程目录介绍: src:存自己编写的java源代码 web:存放web工程的资源文 阅读全文
posted @ 2021-11-30 17:05 doremi429 阅读(131) 评论(0) 推荐(0) 编辑
摘要:Tomcat(IDEA整合Tomcat服务器) 可以加多个版本tomcat 阅读全文
posted @ 2021-11-29 20:44 doremi429 阅读(65) 评论(0) 推荐(0) 编辑
摘要:Tomcat(默认访问的工程和默认访问的资源) ROOT的工程的访问,以及默认index.html页面的访问 当我们在浏览器地址栏中输入访问地址如下: http://ip:port/ > 没有工程名的时候,默认访问的是ROOT工程 当我们在浏览器地址栏中输入的访问地址如下: http://ip:po 阅读全文
posted @ 2021-11-29 20:38 doremi429 阅读(115) 评论(0) 推荐(0) 编辑
摘要:Tomcat(部署web工程) 第一种方法:只需要把web工程的目录拷贝到Tomcat的webapps目录下即可 1,在webapps目录下创建一个book工程, 2,或者把做的工程内容拷贝到webapps里 3,如何访问Tomcat下的web工程 访问的localhost:8080在webapps 阅读全文
posted @ 2021-11-29 20:12 doremi429 阅读(44) 评论(0) 推荐(0) 编辑
摘要:修改Tomcat默认端口号 Mysql默认的端口号是:3306 Tomcat默认的端口号是:8080 找到Tomcat目录下的conf目录,找到server.xml配置文件 找到Connector标签 修改port属性为你需要的端口号。 端口号范围:1-65535, 修改完端口号,一定要重启Tomc 阅读全文
posted @ 2021-11-29 19:14 doremi429 阅读(243) 评论(0) 推荐(0) 编辑
摘要:1,安装 找到你需要用的Tomcat版本对应的zip压缩包,解压到需要安装的目录即可 2,目录介绍 bin 存放tomcat服务器的可执行程序 conf 存放tomcat服务器的配置文件 lib 存放tomcat服务器的jar包 logs 存放tomcat服务器运行时输出的日记 temp 存放tom 阅读全文
posted @ 2021-11-29 19:09 doremi429 阅读(95) 评论(0) 推荐(0) 编辑
摘要:Tomcat服务器和Servlet版本的对应关系 Servlet 程序从2.5版本是现在世面使用最多的版本(xml配置) 到了Servlet3.0后。就是注解版本的Servlet使用 阅读全文
posted @ 2021-11-29 17:12 doremi429 阅读(543) 评论(0) 推荐(0) 编辑
摘要:常见Web服务器 阅读全文
posted @ 2021-11-29 16:47 doremi429 阅读(14) 评论(0) 推荐(0) 编辑
摘要:一,JavaWeb概念 1,JavaWeb,所有通过java语言编写可以通过浏览器访问的程序的总称 JavaWeb是基于请求和响应来开发的。 2,什么是请求 请求:指客户端给服务端发送数据,Request 3,什么是响应 响应:指服务器给客户端回传数据,Response 二,Web 资源的分类 we 阅读全文
posted @ 2021-11-29 16:41 doremi429 阅读(63) 评论(0) 推荐(0) 编辑
摘要:dom4j 阅读全文
posted @ 2021-11-29 16:33 doremi429 阅读(7) 评论(0) 推荐(0) 编辑
摘要:xml可扩展的标记语言 不管是html文件还是xml文件 他们都是标记性文档,都可以使用w3c 组织制定的dom技术解析 阅读全文
posted @ 2021-11-29 16:01 doremi429 阅读(23) 评论(0) 推荐(0) 编辑
摘要:xml语法 1,文档声明 2,xml 注释 <!-- --> 3,元素(标签) xml元素:指的是从(且包括)开始标签直到(且包括)结束标签的部分 xml 命名规则: (1)名称可以含字母,数字以及其它字符 (2)名称不能以数字或者标点符号开始 (3)名称不能包含空格 xml中的元素(标签)也分成单 阅读全文
posted @ 2021-11-29 15:38 doremi429 阅读(261) 评论(0) 推荐(0) 编辑
摘要:1,XML简介 xml是可扩展的标记性语言 XML作用: (1)用来保存数据,而且这些数据具有自我描述性 (2)他可以作为项目或者模块的配置文件 (3)可以作为网络传输数据的格式(现在以Json为主) 阅读全文
posted @ 2021-11-29 15:08 doremi429 阅读(78) 评论(0) 推荐(0) 编辑
摘要:AOP操作(AspectJ配置文件)(了解) (实际中大部分用注解方式) 1,创建两个类,增强类和被增强类,创建方法 2,在spring配置文件中创建两个类对象 3,在spring配置文件中配置切入点 阅读全文
posted @ 2021-11-29 14:52 doremi429 阅读(39) 评论(0) 推荐(0) 编辑
摘要:AOP操作(AspectJ注解) 1,创建类,在类里面定义方法 2,创建增强类(编写增强逻辑) (1)在增强类里面,创建方法,让不同方法代表不同通知类型 3,进行通知的配置 (1)在spring配置文件中,开启注解扫描 (2)使用注解创建 User 和 UserProxy对象 (3)在增强类上面添加 阅读全文
posted @ 2021-11-28 22:49 doremi429 阅读(64) 评论(0) 推荐(0) 编辑
摘要:AOP操作(准备) 1,Spring 框架中一般基于 AspectJ 实现AOP操作 (1)什么是 AspectJ *AspectJ 不是 Spring 组成部分,独立AOP框架,一般把 AspectJ 和Spring 框架一起使用,进行AOP操作 2,基于 AspectJ 实现 AOP 操作 (1 阅读全文
posted @ 2021-11-28 20:57 doremi429 阅读(23) 评论(0) 推荐(0) 编辑
摘要:AOP(术语) 1,连接点 类里面哪些方法可以被增强,这些方法称为连接点 2,切入点 实际被真正增强的方法,称为切入点 3,通知(增强) (1)实际增强的逻辑部分称为通知(增强) (2)通知有多种类型 *前置通知:比如在add方法执行前执行 *后置通知:比如在add方法执行后执行 *环绕通知:在ad 阅读全文
posted @ 2021-11-28 17:22 doremi429 阅读(21) 评论(0) 推荐(0) 编辑
摘要:AOP(JDK动态代理) 1,使用JDK动态代理,使用Proxy类里面的方法创建代理对象 (1)调用 newProxyInstance 方法 方法有三个参数 第一参数,类加载器 第二参数,增强方法所在的类,这个类实现的接口,支持多个接口 第三参数,实现这个接口 InvocationHandler,创 阅读全文
posted @ 2021-11-28 17:12 doremi429 阅读(59) 评论(0) 推荐(0) 编辑
摘要:AOP(底层原理) 1,AOP底层使用动态代理 (1)有两种情况动态代理 第一种 有接口情况,使用JDK动态代理 *创建接口实现类代理对象,增强类的方法 第二种 无接口情况,使用CGLIB动态代理 *创建子类的代理对象,增强类的方法 阅读全文
posted @ 2021-11-28 11:23 doremi429 阅读(30) 评论(0) 推荐(0) 编辑
摘要:AOP(概念) 1,什么是AOP (1)面向切面(方面)编程 :利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 (2)通俗描述:不通过修改源代码方式,在主干功能里面添加新功能 (3)使用登录例子说明 阅读全文
posted @ 2021-11-27 23:17 doremi429 阅读(47) 评论(0) 推荐(0) 编辑
摘要:完全注解开发 (1)创建配置类,替代xml配置文件 (2)编写测试类 在实际中一般用springboot做 阅读全文
posted @ 2021-11-27 23:05 doremi429 阅读(28) 评论(0) 推荐(0) 编辑
摘要:基于注解方式实现属性注入 (1)@Autowired:根据属性类型进行自动装配 第一步 把 service 和 dao 对象创建,在service 和 dao 类添加创建对象注解 第二步 在service注入 dao 对象,在service 类添加dao类型属性,在属性上面使用注解 (2)@Qual 阅读全文
posted @ 2021-11-27 22:56 doremi429 阅读(51) 评论(0) 推荐(0) 编辑
摘要:4,开启组件扫描细节配置 阅读全文
posted @ 2021-11-27 16:32 doremi429 阅读(18) 评论(0) 推荐(0) 编辑
摘要:IoC操作Bean管理(基于注解方式) 1,什么是注解 (1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值...) (2)使用注解,注解作用在类上面,方法上面,属性上面 (3)使用注解目的:简化xml配置 2,Spring针对Bean管理中创建对象提供注解 (1)@Com 阅读全文
posted @ 2021-11-27 16:13 doremi429 阅读(46) 评论(0) 推荐(0) 编辑
摘要:IoC操作Bean管理(引入外部属性文件) 1,直接配置数据库信息 (1)配置德鲁伊连接池 (2)引入德鲁伊连接池依赖jar包 2,通过引入外部属性文件配置数据库连接池 (1)创建外部属性文件,properties格式文件,写数据库信息 (2)把外部properties属性文件引入到spring配置 阅读全文
posted @ 2021-11-26 22:49 doremi429 阅读(29) 评论(0) 推荐(0) 编辑
摘要:IoC操作Bean管理(XML自动装配) 1,什么是自动装配 (1)根据指定装配规则(属性名称或者属性类型),Spring自动将匹配的属性值进行注入 2,演示自动装配过程 (1)根据属性名称自动注入 (2)根据属性类型自动注入 注:按属性类型注入时有多个同类型不同id值的会报错 阅读全文
posted @ 2021-11-26 21:54 doremi429 阅读(34) 评论(0) 推荐(0) 编辑
摘要:1,生命周期 即从对象创建到对象销毁的过程 2,bean生命周期 (1)通过构造器创建bean实例(无参数构造) (2)为bean的属性设置值和对其他bean的引用(调用set方法) (3)调用bean的初始化方法(需要进行配置初始化的方法) (4)bean可以使用了(对象获取到了) (5)当容器关 阅读全文
posted @ 2021-11-26 17:14 doremi429 阅读(48) 评论(0) 推荐(0) 编辑
摘要:IoC操作Bean管理(bean作用域) 1,在Spring里面,设置创建bean实例是单实例还是多实例 2,在Spring里面,默认情况下,bean是单实例对象 3,如何设置单实例还是多实例 (1)在spring配置文件bean标签里面有属性(scope)用于设置单实例还是多实例 (2)scope 阅读全文
posted @ 2021-11-26 16:58 doremi429 阅读(33) 评论(0) 推荐(0) 编辑
摘要:IoC操作Bean管理(FactoryBean) 1,Spring有两种类型bean,一种像自己创建的普通bean,另一种工厂bean(FactoryBean) 2,普通bean:在spring配置文件中定义bean类型就是返回类型 3,工厂bean:在spring配置文件中定义bean类型可以和返 阅读全文
posted @ 2021-11-26 16:43 doremi429 阅读(41) 评论(0) 推荐(0) 编辑
摘要:Ico操作Bean管理(xml注入集合属性) 1,注入数组类型属性 2,注入List集合类型属性 3,注入Map集合类型属性 (1)创建类,定义数组、list、map、set类型属性,生成对应set方法 (2)在spring配置文件进行配置 4,在集合中设置对象类型值 5,把集合注入部分提取出来 ( 阅读全文
posted @ 2021-11-24 22:43 doremi429 阅读(34) 评论(0) 推荐(0) 编辑
摘要:注入属性-内部bean和级联赋值 (1)一对多关系:部分和员工 一个部门有多个员工,一个员工属于一个部门 部门是一,员工是多 (2)在实体类之间表示一对多关系 (3)在spring配置文件中进行配置 注入属性-级联赋值 (1)第一种写法 (2)第二种写法 阅读全文
posted @ 2021-11-24 16:29 doremi429 阅读(30) 评论(0) 推荐(0) 编辑
摘要:注入属性-外部bean (1)创建两个类service类和dao类 (2)在service调用dao里面的方法 (3)在spring配置文件中进行配置 阅读全文
posted @ 2021-11-24 15:47 doremi429 阅读(23) 评论(0) 推荐(0) 编辑
摘要:Ioc操作Bean管理(xml注入其他类型属性), 字面量 (1)null值 (2)属性值包含特殊符号 阅读全文
posted @ 2021-11-23 22:38 doremi429 阅读(34) 评论(0) 推荐(0) 编辑
摘要:5,p名称空间注入(简化xml配置) (1)使用p名称空间注入,可以简化基于xml配置方式 (了解实际用不多) 第一步 添加 p 名称空间在配置文件中 第二步 进行属性注入,在bean标签里面进行操作 阅读全文
posted @ 2021-11-23 22:14 doremi429 阅读(39) 评论(0) 推荐(0) 编辑
摘要:Ioc操作Bean管理 1,什么是Bean管理 (0)Bean管理指的是两个操作 (1)Spring创建对象 (2)Spring注入属性 2,Bean管理操作有两种方式 (1)基于xml配置文件方式实现 (2)基于注解方式实现 Ioc操作Bean管理(基于xml方式) 1,基于xml方式创建对象 < 阅读全文
posted @ 2021-11-23 21:44 doremi429 阅读(75) 评论(0) 推荐(0) 编辑
摘要:IoC(概念和原理) 1,什么是IoC (1)控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理 (2)使用IoC目的:为了降低耦合度 (3)做入门案例就是IoC实现 2,IoC底层原理 (1)xml解析、工厂模式、反射 3,画图讲解Ioc底层原理 工厂模式(解耦合) 目的降低耦合度 阅读全文
posted @ 2021-11-22 16:58 doremi429 阅读(278) 评论(0) 推荐(0) 编辑
摘要:解决办法: 将默认的“Hide empty Middle Packages”或者“compact middle packages”勾选项去掉,这样就不会把中间空包进行合并,也就不存在上面的问题了。 阅读全文
posted @ 2021-11-22 15:35 doremi429 阅读(402) 评论(0) 推荐(0) 编辑
摘要:1,下载Spring5 下载地址:https://repo.spring.io/ui/native/libs-release/org/springframework/spring/ 2,打开idea创建java工程 3,导入spring5 相关jar包 Core Container(Beans,Co 阅读全文
posted @ 2021-11-22 15:32 doremi429 阅读(26) 评论(0) 推荐(0) 编辑
摘要:SSH:Struct2 + Spring +Hibernate SSM:SpringMVC + Spring + Mybatis 优点 1,Sping是一个开源的免费的框架(容器) 2,Spirng是一个轻量级的、非入侵式的框架 3,控制反转(IOC),面向切面编程(AOP)(两个核心) 4,支持事 阅读全文
posted @ 2021-11-22 11:36 doremi429 阅读(505) 评论(0) 推荐(0) 编辑
摘要:1,maven属性设置 <properties>设置maven的常用属性 <properties> 属性设置 <!--maven构建项目使用编码,避免中文乱码--> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 阅读全文
posted @ 2021-11-21 16:45 doremi429 阅读(129) 评论(0) 推荐(0) 编辑
摘要:1,依赖范围,使用scope表示的 scope的值有compile,test,provided ,默认是compile scope:表示依赖使用的范围,也就是在maven构建项目的哪些阶段起作用。 maven构建项目 清理,编译,测试,打包,安装,部署 构成(阶段) junit的依赖范围是 test 阅读全文
posted @ 2021-11-21 16:12 doremi429 阅读(154) 评论(0) 推荐(0) 编辑
摘要:导入其它Maven工程时可能会出现依赖代码变红等等可以重新导入 右键pom.xml文件 >Maven >Reimport ,idea强制刷新内容,一般能解决依赖没有识别的问题(刷新当前工程) 右侧边栏的Maven有一个刷新按钮,可以刷新所有工程 阅读全文
posted @ 2021-11-21 15:47 doremi429 阅读(167) 评论(0) 推荐(0) 编辑
摘要:1,在idea中设置maven,让idea和maven结合使用 idea中内置了maven,一般不使用内置,因为用内置修改maven的设置不方便 使用自己安装的maven,需要覆盖idea中默认的设置,让idea知道maven安装位置等信息 配置的入口 ①:配置当前工程的设置,file settin 阅读全文
posted @ 2021-11-17 22:42 doremi429 阅读(1347) 评论(0) 推荐(0) 编辑
摘要:Maven命令: 1,mvn clean:清理(会删除原来编译和测试的目录,即target目录,但是已经install到仓库里的包不会删除) 2,mvn compile:编译main/java/目录下的java 为class文件,同时把class拷贝到target/classes目录下面 把main 阅读全文
posted @ 2021-11-15 23:40 doremi429 阅读(67) 评论(0) 推荐(0) 编辑
摘要:maven生命周期,maven命令,maven插件 maven生命周期:就是maven构建项目的过程,清理,编译,测试,报告,打包,安装,部署 maven命令:maven独立使用,通过命令,完成maven的生命周期的执行。 可以使用命令,完成项目的清理,编译,测试等等 maven插件:maven命令 阅读全文
posted @ 2021-11-15 23:14 doremi429 阅读(97) 评论(0) 推荐(0) 编辑
摘要:二 1,maven约定的目录结构,约定是大家遵循的一个规则。 每一个maven项目在磁盘中都是一个文件夹(项目-Hello) Hello/ /src /main #放主程序java代码和配置文件 /java #放程序包和包中的java文件 /resources #java程序中要使用的配置文件 /t 阅读全文
posted @ 2021-11-15 00:05 doremi429 阅读(48) 评论(0) 推荐(0) 编辑
摘要:与传统开发项目相比使用Maven: 1)Maven可以管理jar文件 2)自动下载jar和它的文档,源代码 3)管理jar直接的依赖,a.jar需要b.jar,maven会自动下载b.jar 4)管理你需要的jar版本 5)编译程序,把java编译成class 6)测试代码是否正确 7)打包文件,形 阅读全文
posted @ 2021-11-12 17:02 doremi429 阅读(104) 评论(0) 推荐(0) 编辑
摘要:1 package multithread4; 2 3 4 /* 5 class Test implements Runnable{ 6 public void run(Thread t) { 7 8 } 9 }*/ 10 //如果错误,错误发生在哪一行,错误在第一行,应该被abstract修饰 r 阅读全文
posted @ 2021-11-11 20:06 doremi429 阅读(15) 评论(0) 推荐(0) 编辑
摘要:1 package multithread4; 2 3 /* 4 * toString():返回该线程的字符串表现形式,包括线程名称、优先级和线程组 5 * Thread[Thread-0,5,main]....14 5是优先级,main是所属线程组 6 * 7 * 字段 MAX_PRIORITY: 阅读全文
posted @ 2021-11-11 18:20 doremi429 阅读(13) 评论(0) 推荐(0) 编辑
摘要:1 package multithread4; 2 /* 3 * 停止线程: 4 * 1,stop方法。 5 * 6 * 2,run方法结束。 7 * 8 * 怎么控制线程的任务结束呢? 9 * 任务中都会有循环结构,只要控制住循环就可以结束任务,线程就结束 10 * 11 * 控制循环通常就用定义 阅读全文
posted @ 2021-11-11 17:29 doremi429 阅读(11) 评论(0) 推荐(0) 编辑
摘要:1 package multithread4; 2 /* 3 * 停止线程: 4 * 1,stop方法。 5 * 6 * 2,run方法结束。 7 * 8 * 怎么控制线程的任务结束呢? 9 * 任务中都会有循环结构,只要控制住循环就可以结束任务,线程就结束 10 * 11 * 控制循环通常就用定义 阅读全文
posted @ 2021-11-11 17:04 doremi429 阅读(32) 评论(0) 推荐(0) 编辑
摘要:1 package multithread4; 2 /* 3 * 停止线程: 4 * 1,stop方法。 5 * 6 * 2,run方法结束。 7 * 8 * 怎么控制线程的任务结束呢? 9 * 任务中都会有循环结构,只要控制住循环就可以结束任务,线程就结束 10 * 11 * 控制循环通常就用定义 阅读全文
posted @ 2021-11-11 16:46 doremi429 阅读(18) 评论(0) 推荐(0) 编辑
摘要:1 package multithread4; 2 3 /* 4 * wait 和 sleep区别? 5 * 1, wait可以指定时间也可以不指定。 6 * sleep必须指定时间。 7 * 8 * 2,在同步中时,对cpu的执行权和锁的处理不同。 9 * wait:释放执行权,释放锁。 10 * 阅读全文
posted @ 2021-11-11 16:28 doremi429 阅读(17) 评论(0) 推荐(0) 编辑
摘要:1 package multithread4; 2 3 import java.util.concurrent.locks.Condition; 4 import java.util.concurrent.locks.Lock; 5 import java.util.concurrent.locks 阅读全文
posted @ 2021-11-11 16:13 doremi429 阅读(44) 评论(0) 推荐(0) 编辑
摘要:1 package multithread4; 2 3 /* 4 * 生产者,消费者。 5 * 6 * 多生产者,多消费者的问题。 7 * 8 * if判断标记,只有一次,会导致不该运行的线程运行了。出现了数据错误的情况。 9 * while判断标记,解决了线程获取执行权后,是否要运行! 10 * 阅读全文
posted @ 2021-11-11 11:51 doremi429 阅读(7) 评论(0) 推荐(0) 编辑
摘要:1 package multithread4; 2 3 /* 4 * 生产者,消费者。 5 * 6 * 死锁 四个线程都等待没有被唤醒也是一种情况 7 */ 8 9 class Resource2{ 10 private String name; 11 private int count = 1; 阅读全文
posted @ 2021-11-11 11:37 doremi429 阅读(12) 评论(0) 推荐(0) 编辑
摘要:1 package multithread4; 2 3 4 5 6 /* 7 * 等待/唤醒机制。 8 * 9 * 涉及的方法: 10 * 11 * 1,wait();让线程处于冻结状态,被wait的线程会被存储到线程池(等待集)中。 12 * 2,notify();唤醒线程池中的一个线程(任意) 阅读全文
posted @ 2021-11-10 22:38 doremi429 阅读(21) 评论(0) 推荐(0) 编辑
摘要:1 package multithread4; 2 3 4 5 /* 6 * 等待/唤醒机制。 7 * 8 * 涉及的方法: 9 * 10 * 1,wait();让线程处于冻结状态,被wait的线程会被存储到线程池(等待集)中。 11 * 2,notify();唤醒线程池中的一个线程(任意) 12 阅读全文
posted @ 2021-11-10 22:27 doremi429 阅读(10) 评论(0) 推荐(0) 编辑
摘要:1 package multithread4; 2 3 4 5 /* 6 * 线程间通讯: 7 * 多个线程在处理同一资源,但是任务却不同。 8 * 9 */ 10 11 //资源 12 class Resource{ 13 String name; 14 String sex; 15 } 16 1 阅读全文
posted @ 2021-11-10 20:30 doremi429 阅读(12) 评论(0) 推荐(0) 编辑
摘要:1 package multithread3; 2 3 4 5 /* 6 * 死锁:常见情景之一:同步的嵌套。 7 * 面试可能会让写死锁 8 */ 9 class Ticket implements Runnable { 10 private /*static*/ int num = 200; 1 阅读全文
posted @ 2021-11-10 16:55 doremi429 阅读(9) 评论(0) 推荐(0) 编辑
摘要:1 package multithread.test; 2 3 4 /* 5 * 多线程下的单例 6 * 7 * 8 */ 9 //饿汉式(单例设计模式) 10 class Single { 11 private static final Single s = new Single(); 12 pr 阅读全文
posted @ 2021-11-10 15:41 doremi429 阅读(15) 评论(0) 推荐(0) 编辑
摘要:1 package multithread.test; 2 3 4 5 /* 6 * 静态的同步函数使用的锁是: 该函数所属字节码文件对象 7 * 可以用getClass方法获取,也可以用当前 类名.class 表示 8 * 9 * 10 */ 11 class Ticket implements 阅读全文
posted @ 2021-11-09 11:25 doremi429 阅读(8) 评论(0) 推荐(0) 编辑
摘要:1 package multithread.test; 2 3 /* 4 * 同步函数使用的锁是this 5 * 6 * 同步函数和同步代码块的区别: 7 * 同步函数的锁是固定的this。 8 * 9 * 同步代码块的锁是任意的对象 10 * 11 * 建议使用同步代码块 12 */ 13 cla 阅读全文
posted @ 2021-11-08 23:35 doremi429 阅读(9) 评论(0) 推荐(0) 编辑
摘要:1 package multithread.test; 2 /* 3 * 需求:储户,有两个,每个都到银行存钱每次存100,,共存3次。 4 * 5 * 6 */ 7 8 class Bank{ 9 private int sum; 10 // private Object obj = new Ob 阅读全文
posted @ 2021-11-08 23:34 doremi429 阅读(11) 评论(0) 推荐(0) 编辑
摘要:1 package multithread.test; 2 3 import com.sun.org.apache.bcel.internal.generic.NEW; 4 5 /* 6 * 卖票 7 */ 8 9 10 /* 11 * 线程安全问题产生的原因: 12 * 1,多个线程在操作共享的数 阅读全文
posted @ 2021-11-06 17:18 doremi429 阅读(101) 评论(0) 推荐(0) 编辑
摘要:1 package multithread.test; 2 3 /* 4 * 卖票 5 */ 6 7 8 /* 9 * 线程安全问题产生的原因: 10 * 1,多个线程在操作共享的数据。 11 * 2,操作共享数据的线程代码有多条。 12 * 13 * 当一个线程在执行操作共享数据的多条代码过程中, 阅读全文
posted @ 2021-11-06 10:45 doremi429 阅读(27) 评论(0) 推荐(0) 编辑
摘要:1 package p1.exception; 2 3 /* 4 * 异常的注意事项: 5 * 6 * 1,子类在覆盖父类方法时,父类的方法如果抛出了异常, 7 * 那么子类的方法只能抛出父类的异常或者该异常的子类。 8 * 9 * 2,如果父类抛出多个异常,那么子类只能抛出父类异常的子集。 10 阅读全文
posted @ 2021-11-04 23:01 doremi429 阅读(9) 评论(0) 推荐(0) 编辑
摘要:1 package p1.exception; 2 3 4 /* 5 * 老师用电脑上课。 6 * 7 * 问题领域中涉及两个对象。 8 * 老师,电脑。 9 * 10 * 分析其中的问题。 11 * 比如电脑蓝屏。冒烟。 12 * 13 */ 14 15 class LanPingExceptio 阅读全文
posted @ 2021-11-04 22:45 doremi429 阅读(21) 评论(0) 推荐(0) 编辑
摘要:1 package p1.exception; 2 3 4 class Demo_0{ 5 public int show(int index) throws ArrayIndexOutOfBoundsException{ 6 if (index<0) { 7 throw new ArrayInde 阅读全文
posted @ 2021-11-04 21:38 doremi429 阅读(14) 评论(0) 推荐(0) 编辑
摘要:1 异常处理的原则: 2 * 1,函数内部如果抛出需要检测的异常,那么函数上必须要声明。 3 * 否则必须在函数内用trycatch捕捉,否则编译失败。 4 * 5 * 2,如果调用到了声明异常的函数,要么trycatch要么throws,否则编译失败。 6 * 7 * 3,什么时候catch,什么 阅读全文
posted @ 2021-11-03 23:01 doremi429 阅读(16) 评论(0) 推荐(0) 编辑
摘要:1 package p1.exception; 2 3 4 /* 5 * 异常处理的捕捉形式: 6 * 这是可以对异常进行针对性处理的方式. 7 * 8 * 具体格式是: 9 * try{ 10 * //需要被检测异常的代码 11 * } 12 * catch(异常类 变量){ //该变量用于接收发 阅读全文
posted @ 2021-11-03 22:52 doremi429 阅读(54) 评论(0) 推荐(0) 编辑
摘要:1 package p1.exception; 2 /* 3 * 对于角标是整数不存在,可以用角标越界表示, 4 * 对于负数为角标的情况,准备用负数角标异常来表示。 5 * 6 * 负数角标这种异常在java中并没有定义过。 7 * 那就按照java异常的创建思想,面向对象,将负数角标进行自定义描 阅读全文
posted @ 2021-11-03 22:13 doremi429 阅读(83) 评论(0) 推荐(0) 编辑
摘要:1 package p1.exception; 2 /* 3 * 对于角标是整数不存在,可以用角标越界表示, 4 * 对于负数为角标的情况,准备用负数角标异常来表示。 5 * 6 * 负数角标这种异常在java中并没有定义过。 7 * 那就按照java异常的创建思想,面向对象,将负数角标进行自定义描 阅读全文
posted @ 2021-11-03 21:50 doremi429 阅读(22) 评论(0) 推荐(0) 编辑
摘要:1 class Demo { 2 public static int method(int[] arr,int index) { 3 4 // System.out.println(arr[index]); 5 if (arr == null) { 6 throw new NullPointerEx 阅读全文
posted @ 2021-11-03 20:48 doremi429 阅读(35) 评论(0) 推荐(0) 编辑
摘要:1 package p1.exception; 2 3 4 /* 5 * 异常:是在运行时期发生的不正常情况。 6 * 7 * 8 * 在java中用类的形式对不正常情况进行了描述和封装对象。 9 * 10 * 描述不正常的情况的类,就称为异常类。 11 * 12 * 以前正常流程代码和问题处理代码 阅读全文
posted @ 2021-11-03 19:55 doremi429 阅读(11) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示