- 博客(31)
- 收藏
- 关注
原创 使用FastDFS上传一张图片
一.Demo案例1.新建maven项目,pom文件中添加依赖 <dependency> <groupId>cn.bestwu</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.27</version> </dependency>2.编写conf文件,指明 tracker_se
2020-09-28 20:19:11
292
原创 JAVA学习日志3-6(spring AOP)
spring aop 是面向切面编程,底层也是使用代理模式来进行实现的在spring aop 如果是实现接口方式 使用 jdk 提供的代理模式,如果继承的方式,就使用cglib来实现代理模式。aop来实现代码的分离,以及动态来执行某些操作(方法)。一些概念被代理对象:只包含核心代码的对象。代理对象:对被代理对象增强的对象。连接点(joinpoint):指核心代码中的所有方法。切入点(pointcut):指核心代码中需要增强的方法。通知(advice):指事务、日志等代码,增强代码。织入(
2020-09-05 15:51:07
176
原创 JAVA学习日志3-5(spring 动态代理)
动态代理代理可以理解为在某个操作前后添加另一些操作,如在进行转账操作前添加开启手动提交事务的操作,在转账操作结束后添加提交事务或回滚事务的操作。如果转账操作记为A操作,添加了事务后的A操作就可以成为A操作的代理。当使用A操作时使用的A操作的代理。事务的操作并不是业务操作,和转账业务是不想关,所以需要将二者进行分离。需要在transfer内的代码中添加事务相关的代码静态代理由于dao层使用connection对象是从链接池中会获取的,每个操作可能不再同一个链接上,所以直接进行事务操作时不合理的。可
2020-09-02 22:18:20
190
原创 JAVA学习日志3-4(Spring IoC)
Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架IoC控制反转,当A类依赖B类时(A类需要B类的实例化对象)在没有控制反转前需要A类主动去创建B类的对象(new B类对象)。控制反转后,B类在初始化之前,B类所需要的对象就由容器创建好了并存储在容器中,当B类需要使用A类的对象时再由容器传递给B类。可以降低程序之间的耦合度。降低耦合度的方法1.通过反射来加载要实例化的类2.把完整的包名+类名放入到配置文件 xml手写一个简单的ioc如test依赖service,serc
2020-08-31 22:31:40
215
原创 JAVA学习日志3-3(mybatis)
mybatis中的模糊查询方式一传递条件时就附加%方式二在xml中拼接%方式三在xml中通过函数拼接%方式四在xml中拼接%(接口中没有给参数写注解时使用value,使用注解时用具体名字)${变量} 和#{变量}区别${变量}变量的名字不能任意,使用注解的名称,没有注解则使用默认值value#{变量} 变量的名字可以任意定义,相当于占位符mybatis 中主键的使用表中的主键设置为自增长,所以在插入数据时是不需要插入主键的。mybatis可以把插入后的主键值在放回给实
2020-08-28 22:40:28
232
原创 JAVA学习日志3-2(mybatis)
mybatis1.mybatis 是一个持久层框架 主要用于来对数据库进行操作,mybtais 底层还是对jdbc的封装。2.mybatis是一个 ORM 映射的框架O == >对象R == >数据库表M ==>映射mybatis 能够实现数据库表(列)与对象(属性)的映射关系mybatis的优势1.相对于传统的jdbc来进行开发 代码量少了百分之五十2.它是一个orm映射框架 能够 实现数据库表与对应的映射3.mybatis 框架支持动态sql语句 提供了一些动
2020-08-25 21:34:55
218
原创 JAVA学习日志2-11(JSP)
JSP的九大内置对象这些对象是隐式对象,是由tomcat容器创建appliaction全局上下文对象,与servlet的ServletContext是一个作用,作用域都整个web项目,生命周期是随着服务器开启而开启 随着服务器的关闭而关闭session会话对象,每一个用户都会创建一个session ,用于记录这个用户的唯一性。session作用域范围在整个会话中request请求对象,服务器用于来获取用户发送请求的一些请求 作用域局限于一次请求之内pageCont.
2020-08-15 17:49:00
213
原创 JAVA学习日志2-10(JSP)
JSPjsp是一种动态的网页技术,编写java代码时可以嵌套html来进行使用jsp的运行过程1.翻译过程:把jsp文件翻译成一个.java文件2.编译过程: 把.java 编译成一个字节码文件 class文件3.运行过程:执行字节码文件jsp其实本质是一个特殊的servlet。其中嵌套的html代码是通过,out.write()方法写入到页面的,从class文件中可以看到。jsp和servlet的一些区别1.jsp主要做页面的展示 servlet 主要用于来处理请求与响应2.
2020-08-12 22:07:57
167
原创 JAVA学习日志2-9(XML)
ServletConfig在servlet运行的时候,需要获取到当前servlet的配置信息(设置编码格式),可以使用ServletConfig来进行获取,ServletConfig是由tomcat容器进行创建 ,当servlet实例化的时候,就会把当前servlet的一些配置信息放入到ServletConfig对象里获取servlet ServletConfig对象在init()方法有这个对象可以使用在servlet 其它的方法中 获取该对象:this.getServletConfig();
2020-08-12 20:49:05
172
原创 JAVA学习日志2-8(servlet)
JAVA学习日志2-8(servlet)响应对象响应对象,当客户端发送请求的时候 给客户端一个响应结果(文本 视频 图片),其实就是告诉客户端服务器已经收到请求。在servlet中 这个对象是由tomcat容器创建的,类似于内置的对象,直接来使用,不用去实例化。响应对象组成部分: 响应行 响应头 响应体响应行包含一些状态码与协议。状态码:2xx 成功,3xx重定向,4xx客户机出现错误,5xx服务器出现错误。http是一个请求与响应的协议,http协议是一次性连接协议,也就是每一次
2020-08-11 21:01:48
286
原创 JAVA学习日志2-7(srevlet)
WEB服务器在idea中新建web项目,配置tomcatservletservlet 就是运行在服务器的java代码,作用主要用于来处理请求与响应,也就是前后端进行交互一个桥梁。在idea 中引入tomcat 的lib ,因为servlet是由tomcat容器创建所以在idea使用的时候需要引入其jar。servlet的简单案例新建一个用来存放servlet的包,在包内定义一个类继承HttpServlet重写service 方法public class Serverlet1 ext
2020-08-08 13:52:38
172
原创 JAVA学习日志2-6(连接池)
JAVA学习日志2-6(连接池)事务在数据库中执行一组操作(执行多条sql语句),通过事务保证所有的单元(每条sql语句)要么同时成功,要么同时失败。(如A给B转账,转账成功时同时修改A和B的数据内容,转账失败时则把A和B的数据回滚到转账前的状态)事务的四大原则 ACDL原则A -事务的原子性: 事务是最小的原子单位 执行操作的时候 要么同时执行成功 要么同时执行失败C-事务的一致性: 事务要么是执行前的状态 要么是执行后状态D-事务的隔离性: 每一个事务都是相互独立的 互不影响L-事
2020-08-06 21:52:22
275
原创 JAVA学习日志-单例设计模式是如何保证只实例化一次对象的?
工具类是需要被反复使用的,而工具类的内容又是相同的,如果每个调用者都实例化工具类就会在内存中存储大量重复数据。工具类成为共有部分–>静态(在工具类a里定义一个静态的工具类a的实例b,因为实例b是静态的是每个工具类a的公共部分,所以使用工具类a时让使用者转去使用实例b)不能随意去实例化–>私有构造方法(构造方法私有化后,使用者就无法new出对象,使用工具类a的实际是给实例b进行初始化,在通过实例b调用方法)这样一来使用者使用的其实是一个静态的实例b,存储于方法区的静态区间里。单线程时pu
2020-08-05 22:57:06
830
原创 JAVA学习日志2-5(JDBC)
JAVA学习日志2-5(JDBC)JDBCjdbc的全称是 java database connection,是java和数据库连接的桥梁。jdbc是java提供的一个接口或者是规范,具体的实现是由各个数据库厂商来完成的。所有不同的数据库需要不同的jabc驱动包。jabc中一些常用的接口和类接口或类DriverManager(类)驱动管理类,用于注册驱动Connection(接口)连接对象,用于连接数据库Statemnet(接口)执行sql的对象,用于发送s
2020-08-05 22:07:01
227
原创 JAVA学习日志2-4
JAVA学习日志2-4数据库中的约束条件约束主键约束primary key唯一约束unique非空约束not null默认约束default外键约束foreign key主键约束 primary key经过主键约束的字段是区分每一行数据的唯一标识,即通过主键可以找到唯一的一行内容,所有主键是 不重复的、不为空。一张表中只能存在一个主键。#设置主键1create table tab1 (tid int(10) primary ke
2020-08-04 21:53:10
184
原创 JAVA学习日志2-3
java学习日志2-3数据库的分类有关系型数据库和非关系新数据库,关系型数据库有mysql、Oracle等,非关系型的数据库有redis等。mysqlsql语句的分类:DDL(Data Definition Language) 数据库定义语言,主要对数据库、数据库表进行操作DML(Data Manipulation Language)数据库操作语言,主要 对表进行增、删、改操作DQL 数据查询语言DCL 数据库权限管理DDL库相关创建数据库create database mybs;
2020-08-03 21:28:20
150
原创 JAVA学习日志2-2
JAVA2-2学习日志jQueryjQuery是封装后的js,优化了html文档操作、事件处理、动画设计、ajax的交互,而且jquery做了适配可以兼容大部分浏览器.使用JQuery前需要先引入
2020-08-01 10:06:59
173
原创 JAVA学习日志2-1
JAVA2-1学习日志JavaScriptjavascript是主要用在web页面开发的脚本语言,如一些验证、动画的编写。js负责的是web页面的"行为",单纯的html+css无法进行运算、逻辑判断等操作。js的组成js由3部分组成ECMA、DOM、BOMECMAscript:核心语法、语句DOM(document object model):文档对象,用来操作文档中的元素和内容BOM(browser object model):浏览器对象,用来操作浏览器对象基础语法js的引入方式
2020-07-30 21:12:40
178
原创 JAVA学习日志13-线程
JAVA学习日志13多线程1.程序: 一个固定的逻辑和数据的集合,永久保存在硬盘2.cpu 中央处理器: 进行硬件与软件的协调工作3.并发: 在一个时间段 执行两个或者多个事件行4.并行 在同一时刻 执行两个或者多个事件5.进程:运行在内存中的程序,有自己独立的资源分配6.线程:一条独立的执行路径。多线程是指在执行有多个任务的程序时(如杀毒软件的杀毒 和 垃圾清理功能),每个线程都可以独立完成其中一个任务,每个子任务没有依赖关系可以单独执行。进程和线程的关系一个进程可以有多
2020-07-20 20:52:55
138
原创 JAVA学习日志12-流
JAVA学习日志12IO流字节流实际是以字节为单位进行读取的,字符流是以字符为单位读取编写IO的注意事项1.需要导包2.需要对异常进行处理(捕获或抛出)3.使用结束后要关闭流OutputStreamoutputstream是抽象类,是输出字节流的所有类的超类,不能实例化对象一些方法public void close()关闭资源public void flush()把缓存区的数据 刷新到磁盘public abstract void write(int b)
2020-07-18 10:40:01
173
原创 JAVA学习日志11
JAVA学习日志11异常异常就是指一些报错,预期之外的执行流程Thorwable 是顶级的异常父类,所有的异常信息都会封装到异常对象中。异常信息包括有:1.代码出现的错误行数 2.具体的异常的类型 3. 对异常的描述信息.Throwable的两个子类:Error和Exception。Error由jvm抛出,是无法捕获和处理的错误情况我们一般不去处理。Exception是可以捕获和处理的异常。RuntimeException是Exception的一个特殊子类,是运行时异常,在编译过程中不做检查。j
2020-07-17 08:47:25
112
原创 JAVA学习日志10(set集合和map)
JAVA学习日志10Set集合1.是Collection的子类 Set也是一个接口2.特点:set集合存的数据不能重复set集合是无序 存与取获取的顺序不一样set集合没有索引set集合方法都是Collection的方法实现类 : 实例化对象的时候 只能实例化其子类set集合的遍历方法(一)1.没有泛型的set 可以把其转换成数组 toArray() 方法public static void main(String[] args) { Set set = new Hash
2020-07-15 21:52:17
241
原创 JAVA学习日志9(List集合)
JAVA学习日志9集合数组是用来存放相同数据类型的一个容器,长度是固定的。固定的长度有扩展性差。而集合也可以用来存储数据且长度不固定。数组和集合1.相同点:都可以用来存储数据 都可以通过索引来获取数据2.不同点:数组长度不可变而集合长度是可变的 数组可以存基本数据类型也可以存引用数据类型,而集合只能存引用数据类型集合的架构单列集合双列集合CollectionCollection 是一个接口不能实例话,只能实例化其子类,如 Collection col = new ArrayLi
2020-07-15 08:57:18
244
原创 JAVA学习日志8(String和包装类)
JAVA学习日志8API应用程序接口编程,也就是JDK提供的一些可以用的封装好的类或者是实现的方法 枚举,我们更关注的是怎么使用而不是实现的原理。类与库类与库的使用实际就是把别人已经写好的类在自己项目中的调用。步骤1.将已有项目导出export ,转成java下的jar文件2.在目的项目下新建lib目录把导出的.jar文件移到lib目录下3.添加依赖,右键点击jar 选择build path4.添加成功后就可以使用jar中的类与方法5.删除时先删除jar在删除依赖库库是由多个
2020-07-13 21:46:08
308
原创 JAVA学习日志7(抽象类和接口)
JAVA学习日志7抽象类一种不能被实例化的类,其成员方法是对若干子类方法的抽取1.语法: 访问控制修饰符 abstract class 类名{成员}抽象方法抽象方法只能存在抽象类(或 接口)中,抽象方法没有任何方法体,他在抽象类中的作用是提出这样的一个方法,让子类去实现(实际是重写)这个方法抽象类的特点抽象方法和抽象类都是要abstract关键字修饰抽象方法只能存在于抽象类(或接口)中,抽象类中也可以存在普通方法抽象类不能被实例话继承了抽象类的子类,必须实现父类里全部的抽象方法,如
2020-07-09 20:47:33
306
原创 JAVA学习日志6(多态)
JAVA学习日志6代码块代码块是写在大括号里的一段代码。(类=成员变量+成员方法+代码块,一些执行语句是不能直接写在类里的,只能放在方法里或代码块里)局部代码块1.定义位置:方法中2.作用:限制变量的生命周期,即代码块中局部变量随着代码块的执行而开始,随着代码快的结束而终止节省内存空间构造代码块1.定义位置:类中方法外2.作用:主要给成员变量来赋值3.说明[1].构造比构造方法先执行[2].构造代码块是由jvm来执行的[3].每实例化对象一次 都会执行一次构造代码块[4].
2020-07-08 22:02:22
199
原创 JAVA学习日志5(继承)
JAVA学习日志4静态用处:在一个类的很多具体实例中,有一个变量的值是一样的,而这个值是存储于堆内存的,这使得堆里存储了大量的重复数据造成了内存空间浪费。而且这个变量要改变时,得去找到每一个实例去逐个修改,比较麻烦。使用静态变量/静态方法来解决这一问题。当有静态的时候,实例中的静态成员都存储在方法区的静态区间,因为这些实例的这个值都相同所以静态区间仅存储一个值。发生值的变动时只需要改变静态区间里的值就可以实现所有实例这个值的修改。语法:在 成员变量/成员方法前添加 static 即可静态变量/方
2020-07-07 21:16:16
206
原创 JAVA学习日志4(对象和类)
JAVA 学习日志4面向对象在面向对象之前是面向对象的思想,面向对象的思想要落实到每一步具体操作每一步都要亲力亲为,面向对象是把一个功能打包起来,只要输入原料获得预期产出即可,并不需要知道包内如何运转。面向对象的优点1.简化代码,便于后期的维护和扩展类和对象类类是一组属性和行为的集合,是一个抽象,概括的概念。1.类的定义语法 : public class 类名 { 成员变量 成员方法}对象对象是类的一个具体实例1.创建对象的语法: 类的名称 对象名 = new 类的名称();
2020-07-06 21:26:18
324
原创 JAVA学习日志3
java学习日志3循环嵌套循环中又包含循环,此处可以关注3个基本排序算法 冒泡排序,插入排序,选择排序。后序添加方法把需要经常执行的多个简单步骤提取出来组成一个方法,每次需要执行这些简单步骤时,可以通过调用方法来实现。作用:1.增加代码可阅读性 2.方法内部的代码对于调用者时位置,增强了封装性定义方法时的注意事项:1.必须要有访问控制修饰符(public 等)2.必须有返回类型3.必须有方法名称4.方法有参数时必须写明其数据类型4.方法执行到 return 便会终止执行,返回类型
2020-07-02 21:04:23
144
原创 JAVA 学习日志
JAVA 学习日志注释java注释有3中方式 1.当行注释 2.多行注释 3.文档注释单行注释:快捷键ctrl+/ 可以进行嵌套但只可以注释一行多行注释:快捷键ctrl+shift+/ 不可以进行嵌套可一次性注释多行文档注释关键字java中预定义了一些英文字符串,这些字符串否是小写字母,全部的关键字如下标识符标识符是用来标记java中的类 接口 枚举等标识符的组成:1.大小写英文字母2.数字0~93.字符$ _(通常只使用这两个,其余字符不建议使用)标识符命名注意事项:
2020-06-30 21:00:56
416
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人