- 博客(50)
- 收藏
- 关注
原创 Netty(二)I/O模型
I/O 模型基本说明I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能Java共支持3种网络编程模型/IO模式:BIO、NIO、AIOJava BIO : 同步并阻塞(传统阻塞型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销 【简单示意图】Java NIO : 同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注册到多路复用器上
2020-06-06 22:12:15 150
原创 Netty(一)介绍和应用场景
Netty的介绍Netty 是由 JBOSS 提供的一个 Java 开源框架,现为 Github上的独立项目。Netty是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络 IO 程序。Netty主要针对在TCP协议下,面向Clients端的高并发应用,或者Peer-to-Peer场景下的大量数据持续传输的应用。Netty本质是一个NIO框架,适用于服务器通讯相关的多种应用场景 要透彻理解Netty , 需要先学习 NIO 。Netty的应用场景在分布式系统中,各个
2020-06-06 21:11:20 524
原创 Redis-初始认识Redis
Redis初始Redis是什么开源(可以从git-hub上面获取源代码,个性化定制)底层使用C语言基于键值对的存储服务系统(类似于Java Map中的key-value)多种数据结构stringHashListSetZset(Sorted Sets)高性能,丰富功能Redis特性八个特性速度快10w OPS读写数据存储在内存中(速度快的真正原因)C语言...
2019-12-03 22:51:54 223
原创 Redis-在云服务器Linux上安装Redis
Linux下载Rediswget命令下载,解压,编译$ wget http://download.redis.io/releases/redis-5.0.7.tar.gz$ tar xzf redis-5.0.7.tar.gz$ cd redis-5.0.7$ make运行Redis服务器$ src/redis-serversrc下面中可执行文件说明redis-ser...
2019-12-03 22:40:48 221
原创 Java-随机访问流以及对象流(对象序列化)
随机访问流:RandomAccessFile概念:指定当前可以读取的位置1.随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。2.存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。3.如果随机访问文件以读取/写入模式创建,则输出操作也可用;4.输出操作从文件指针开始写入字节,并随着对字节的写入而前移...
2019-12-02 21:53:27 202
原创 Javaweb-在xml中配置一个Servlet以及重要接口,实现类
servlet创建编写servlet:写一个普通类,然后去实现或者继承javaEE规范中所提供的指定接口或者父类,然后再重写指定方法.这个指定接口或者父类都在tomcat的lib目录里面的servlet-api.jar中实现Servlet接口,重写里面的五种抽象方法,主要实现service方法继承HttpServlet类,HttpServlet继承GenericServlet类重写...
2019-12-02 20:32:54 562
原创 JavaWeb-tomcat,web项目,请求响应报文
一、相关概念j2ee,j2se为JDK5.0以前的名称,javaee和javase为JDK5.0以后的名称javaee :一个平台 ;一套技术体系一套技术体系:帮我们解决在企业级应用及开发过程中所遇到的各种问题。服务器: web服务器:提供http协议访问,处理静态资源html css js img都是服务器静态资源web容器:提供http协议访问方法,处理...
2019-12-02 10:19:09 761
原创 Springmvc-自定义适配器,自定义拦截器
一、自定义适配器HandlerAdapter适配器:用来转发HandlerMapping映射器的访问地址,HandlerAdapter指定对应的自定义Controller的方法执行。之前都是实现Controller接口,通过默认的HandlerAdapter执行实现的handleRequest方法。现在我们想通过自己定义的Controller控制器的方法去处理请求和响应以及ModelA...
2019-11-28 20:06:10 680 1
原创 springmvc-介绍,重要组件以及执行流程
一、Web、MVC、WebMVCWeb:Web完成一次请求的过程Web浏览器发起请求Web服务器接受请求并处理,产生响应Web服务器完成处理后,返回内容给Web客户端,Web客户端接收响应的内容,自行处理并显示出来在Web中,都是Web客户端发起的请求,Web服务器接收处理请求并产生响应。一般Web服务器不能主动通知Web客户端更新内容。有一些技术可以从服务器端通知客户端进行...
2019-11-28 20:03:54 195
原创 阿里云安装node
1、首先登录阿里云服务器(linux系统)2、使用wget命令从nodejs官网拉取要安装的版本:wget https://npm.taobao.org/mirrors/node/v10.16.2/node-v10.16.2-linux-x64.tar.xz3、使用 xz -d node-v10.16.2-linux-x64.tar.xz进行解压得到node-v10.16.2-linux-x6...
2019-11-25 16:33:41 393
原创 阿里云安装mysql
更新本地索引资源列表$ sudo apt-get update从资源列表中下载mysql$ sudo apt-get install mysql-server-5.7设置mysql数据库的密码连接阿里云服务器上的mysql数据库mysql -r root -u输入密码进入到mysql远程连接阿里云服务器上面的mysql数据库先在阿里云安全组件中,设置防...
2019-11-25 16:32:34 76
原创 阿里云安装maven
阿里云服务器:Ubuntu160.04前提:安装了jdk打开maven的官网下载页 http://maven.apache.org/download.cgi然后找到相应的tar.gz压缩包,然后右键选择【复制链接地址】回到Linux服务器中,创建一个maven目录,使用wget命令将复制的链接进行下载。然后使用命令tar -zxvf apache-maven-3.6.0-bin.tar...
2019-11-25 16:31:27 280
原创 阿里云安装tomcat
阿里云服务器:Ubuntu160.04前提:已经安装了jdk打开tomcat官网,http://tomcat.apache.org/ 选择指定的tomcat版本,本例中安装的是8.5.49。(下载链接:https://tomcat.apache.org/download-80.cgi)将tar.gz包下载到本地wget http://mirrors.tuna.tsinghua.edu...
2019-11-25 16:30:36 97
原创 阿里云安装jdk
从jdk的oracle官网先下载至本地电脑(如果wget直接从获取jdk资源链接,会获取失败,需要登录oracle账号)scp [本地jdk压缩包路径] [用户名]@[公网地址]:[云服务器指定安装路径]scp E:\jdk-8u191-linux-x64.tar.gz root@0.0.0.0:/opt解压压缩包。进入到压缩包所在路劲,默认解压至当前文件夹下面tar -zx...
2019-11-25 16:28:48 94
原创 Spring-事务管理
Spring事务管理机制事务:事务是构成单一逻辑工作单元的操作集合三层框架:分为Bean,Service,Dao层,service层调用dao层,所以我们一般在service层进行事务控制。jdbc中数据都是自动提交的需要将开启事务(切面类)通过拦截器织入到调用dao层之前操作数据库出现异常,需要将回滚事务(切面)通过异常拦截器织入到出现异常关闭事务(切面)通过后置拦截器织入...
2019-11-20 12:53:51 97
原创 Spring-Spring与jdbc,mybatis的结合
一、Spring和Jdbc的结合Spring获取DateSource通过数据源DataSource连接数据库对象Connection:现在Spring通过配置文件获取数据源DataSource,帮助我们管理Connection对象Spring通过创建数据库连接帮助我们管理Connection对象数据库连接处负责分配,管理和释放数据库连接,允许应用程序重复使用现有的数据库连接而不是重新...
2019-11-20 12:52:36 798
原创 Spring-AOP自动创建代理类以及aop标签
一、Spring自动创建代理类对象Spring中有两种默认创建自动代理类对象方式采用默认的增强器自动创建代理类对象的方式(存在指定方法的类为目标类):自动创建代理类对象,通过增强器指定的方法(连接点),以及增强器指定拦截器,自动代理Bean容器中存在指定方法的对象。不需要我们再一对一配置代理类以及指定目标类。注意点:当前配置文件中一定要存在一个advisor增强器(以及增...
2019-11-20 12:50:18 309
原创 Spring-AOP概念以及自定义Advice,Advisor
一、Spring中AOP(Aspect Oriented Programming)的实现Spring实现AOP两种方式:目标类实现了接口,采用JDK的动态代理实现AOP功能目标类没有实现任何接口,采用CGLIB的类库实现AOP功能Spring会自动在这两种方式进行选择使用Spring创建代理类对象的Bean标签的Property属性名要和对应setProperty方法保持一致Spri...
2019-11-20 12:42:46 581
原创 Spring-AOP,代理模式,以及动态代理方式
AOP面向切面编程面向切面编程(Aspect-Oriented Programming):是一种对开发技术的补充,允许开发人员在不改变原来模型的基础上动态的修改模型以满足新的需求面向切面编程的核心是:动态代理技术代理模式有两种:静态代理动态代理继承相同接口进行同样的接口方法代理子父类代理要求:代理类和目标类实现统一个接口(为了让代理类和目标类有同样的方法)...
2019-11-19 00:11:07 94
原创 Spring-注解实现容器注入
Spring注解@Autowired:依赖(组合关系)关系自动注入自动依赖注入的方式:先通过byType(根据容器中存在该属性类型的对象),再通过byName(根据属性名查找容器中的名字)@Autowired(required=false):存在成员变量required默认为true:必须从容器找到属性对象,否则报空指针@Autowired(required=false),如果没有在...
2019-11-19 00:09:55 407
原创 Spring-xml配置自定义事件监听器
一、自定义事件Spring中使用自定义事件类型:第一步:自定义事件类型:自定义类需要继承Spring中org.springframework.context.ApplicationEvent类第二步:设置事件监听器,实现org.springframework.context.ApplicationListener<自定义事件类型>接口,重写onApplicationEve...
2019-11-19 00:07:52 469
原创 Spring-注入对象方式以及对象生命周期
一、容器中注入对象的方式Set注入方式IoC容器对象注入的方式:set方式,constructor方式,autoaware自动注入set方式:将对象注入到容器中,创建对象,对象属性的初始化需要setXxx方法(property:设置属性,和attribute不一样)Teacher类public class Teacher implements Serializable { p...
2019-11-18 23:46:08 545
原创 Spring-Spring的介绍和SpringFrameWork使用
一、什么是Spring框架Spring框架是一种轻量级框架Spring中提供了多种功能模块,可以根据自己功能需求定制模块,只需要引入对应需求的模块使用就可以了;并不需要像重量级框架,需要使用一个功能模块就必须要把整个框架拿过来。Spring基本模块Spring基本模块:Spring架构是一个分层架构,由基本7个定义良好的模块组成。Spring模块构建在Core Container核...
2019-11-18 23:44:11 291
原创 Mybaits-动态SQL,自定义类型结果集ResultSet,Map传入多参数,SQL语句缓存机制
一、动态SQL Dynamic-SQL动态SQL语句:条件需求不一样的时候,对应sql语句执行结果也不一样。根据逻辑判断条件,选择执行不同的SQL语句,实现动态SQL语句举例说明:在Web应用程序中,有可能有一些搜索界面,需要输入一个或多个选项,然后根据这些已选择的条件去执行检索操作。xml配置文件中使用动态SQL语句:MyBatis通过使用,,,,元素提供了对构造动态SQL语...
2019-11-16 12:07:03 606
原创 Mybatis-Mapper映射文件的映射方式以及映射关系
一、一对一映射关系举例:Student和Address是一对一关系建表语句: drop table students; drop table addresses; 如果需要可以使用 cascade constraints; create table addresses( addr_id number primary key, str...
2019-11-16 11:57:37 913
原创 Mybatis-XxxMapper.xml配置文件
一、了解内容配置Mybatis两种方式:第一种:Mybatis通过读取mybatis-config.xml文件配置mybatis,通过动态读取配置文件,调用SqlSessionFactoryBuilder的bulid方法获取配置文件字节流获得SqlSessionFactory,创建SqlSession实现类DefultSqlSession的对象,动态代理去执行sql方法第二种:使...
2019-11-16 11:54:48 534
原创 Mybatis-Mybatis介绍以及mybatis-config.xml配置
一、什么是Mybatismybatis:是一种简化和实现了java数据化持久层(persistence layer)的开源框架,它抽象了大量的JDBC冗余代码,并提供了一个简单的API和数据交互方式。mybatis的背景:MyBatis的前身是iBATIS,iBATIS于2002年由ClintonBegin创建。MyBatis3是iBATIS的全新设计,支持注解和Mapper(映射器)...
2019-11-16 11:50:36 276
原创 Java--文件字节流和Properties类
一、FileInputStream/FileOutputStreamA:FileInputStream 读一些数据就少一些数据概念:用于文件字节数据内容读出的字节流,建立了字节流通道用法:1.构建文件对象 将文件对象传入到文件读入字节流File file = new File(“src/a.txt”);FileInputStream fis = new FileInput...
2019-11-15 21:35:35 155
原创 Java--File类型
一、File类(一)概述A:什么是File类其实File就是 文件夹或者文件路径(包括存在或者不存在)B:File的路径相对路径:当前项目的相对路径绝对路径:Windows下的盘符路径C:File的构造方法public File(String pathname) {} //根据文件路径名获得该文件的对象public File(String parent...
2019-11-15 21:33:48 221
原创 Java--字节流和字节数组流
一、IO流A:什么是IO流:IO流用于处理设备之间的数据传输JAVA对于数据的操作都是通过流的操作数据流操作都是在 IO包中B:类型:按照流操作分类: 输入流 输出流按照流操作的数据类型分类:字节流:字节流可以操作数据,计算机任何数据都是以字节的形式存储字符流:字符流只能操作纯字符数据,方便操作数据C:IO程序书写使用前:导入IO包使用时:进行I...
2019-11-15 21:30:08 1708
原创 线程池
一、线程池为什么要使用线程池:在一个应用程序中,我们需要多次使用线程,也就意味着要多次创建并销毁线程。而且创建并销毁线程的过程势必会损耗内存。什么是线程池:java中出现了一种管理线程的概念,可以方便的管理线程,用一个拿一个,用完在放回到线程池中,这样可以减少内存的损耗。如何创建一个线程池java中已经提供了创建线程的一个类:Executor;但在创建线程池时,使用它的子类...
2019-11-15 21:27:13 51
原创 synchronized和Lock的异同
synchronized和Lock的异同Java提供了两种锁机制实现对某个共享资源的同步:synchronized和Locksynchronized:多个线程访问同一个共享资源,将该资源设置为锁对象,调用Object类中wait(),notify()和notifyAll()调度机制进行线程之间的通信。Lock:使用Condition进行线程之间的调度两者的区别:用法不一样:sy...
2019-11-11 22:12:54 253
原创 run方法和start方法的区别
run方法和start方法的区别run方法:是线程的逻辑业务的具体实现,当线程被jvm调度执行的时候,会执行run方法的实现直接调用run方法,只是通过对象去调用方法,当前线程还是主线程,自定义线程并没有进行入就绪状态。start方法:线程对象调用该方法开启线程,线程进入就绪状态,等待获取时间片,cpu调度该线程并执行。start方法内部实现,通过调用该方法,将该线程添加到线程组...
2019-11-11 22:11:14 954
原创 java-history
1991年4月,由James Gosling博士领导的绿色计划(Green Project)开始启动,此计划的目的是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个计划的产品就是Java语言的前身:Oak(橡树)。Oak当时在消费品市场上并不算成功,但随着1995年互联网潮流的兴起,Oak迅速找到了最适合自己发展的市场定位并蜕变成为Java语言。1995年5月2...
2019-10-30 18:22:13 454
原创 java--command
1、java.exe:运行java程序,这个相信每一位用Java的人知道了。2、javac.exe:编译的Java程序,生成.class文件3、jar.exe功能说明:Java归档工具语法:jar [ 命令选项 ] [manifest] destination input-file [input-files]补充说明:jar工具是个java应用程序,可将多个文件合并为单个JAR归档文件。...
2019-10-30 18:20:41 291
原创 core java --1--java优点以及文件夹作用
一.core javajava编程语言第一代编程语言机器语言:直接使用机器能识别的0101进行编程优点:效率高缺点:可读性可维护性差 第二代编程语言 汇编语言:使用少量指令代替0101代码进行编程 第三代编程语言 面向对象编程语言:以对象为最小编程单位编程二、java:Java有哪些优点Java为纯面向对象的语言。平台无关性:Java为解释型语言,“一次...
2019-10-30 18:17:22 268
原创 linux--3--命令
linux命令一.更改文件属性1.chgrp:chgrp [-R] 属组名 文件名-R 递归更改文件属组 加上-R所有的文件及子文件都会更改一.文件类型:d rwx r-x r-x 2 yunze yunze 4096 Jul 21 19:45 Desktop文件类型;拥有者权限;同组人权限;其他人权限;链接号;拥有者;拥有组;大小;最后一次修改时间;文件名 当为[ ...
2019-10-30 18:11:38 191
原创 Maven的介绍以及使用
一、为什么使用Maven一个项目就是一个工程如果项目非常庞大,就不适合使用package来划分模块,最好是每一个模块对应一个工程,利于分工协作。借助于maven就可以将一个项目拆分成多个工程项目中使用jar包,需要 复制、粘贴 项目的lib中同样的jar包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作。借助于maven,可以将jar包保存在 仓库 中,不管在哪...
2019-10-29 18:14:02 143
原创 Svn介绍
版本控制工具一、什么叫版本控制工具版本控制软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置管理活动,追踪多个版本的开发和维护活动,及时发布软件。二、为什么使用版本控制在软件开发过程中,有可能发生的一些状况:开发过程中,代码改错了,或者误删了,需要恢复。随着开发...
2019-10-29 18:09:54 153 1
原创 Jdbc--2--jdbc的使用,数据库schema和catalog介绍
一、JDBC UsingA:第四步:执行SQL语句的方式executeQuery():返回结果集ResultSet的rs对象,一般是select(DQL语句)第五步:处理结果集:只有返回ResultSet结果集的时候才有第五步rs.next():返回boolean类型,true:下一行存在;false:没有下一行rs.getObject((int columnInde...
2019-10-29 18:06:17 3140 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人