自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 23.java接口默认方法和时间API

1.接口默认方法1.1 接口默认方法的定义在java8之前,接口(interface)没有提供任何具体的实现,接口定义的方法全部都是抽象方法java8之后对接口做了进一步增强:允许接口中可以添加使用default关键字,即默认方法,或者也可以叫做可扩展方法接口里可以声明静态方法,并且可以做具体实现默认方法与抽象方法的区别抽象方法必须要实现,默认方法不是,因为默认方法做了具体实现;这个接口中的默认方法可以通过子类继承到这个默认方法,当然子类也可以重写该默认方法。为了提高代码的可重

2020-10-12 20:33:15 213

原创 22.Stream流

Stream流1.定义单从"stream"这个单词来看,它似乎和我们之前学的IO流中的InputStream和OutputStream流有些关系。实际上,没有任何关系!java8新增的Stream流是为了提高程序员在集合的操作要想操作流,首先需要一个数据源,可以是数组或者集合,每次操作都会返回一个新的流对象,方便链式进行操作,但原有的流对象会保持不变。2.创建流import java.util.ArrayList;import java.util.Arrays;import java.ut

2020-10-12 20:29:39 194

原创 21.java8新特性lambda

1.lambda表达式1.定义lambda表达式是jdk8的一个新特性,可以取代大部分的匿名函数,写出更优雅的java代码,尤其在集合遍历和其他集合操作中,可以极大的优化代码结构jdk1.8(java8)也提供了大量的内置函数式接口供我们使用,使用Lambda表达式的运用更加方便、高效Lambda表达式一定要配合函数式接口一起使用!所谓函数式接口,就是接口中只有一个抽象方法的接口就是函数式接口,jdk也内置了函数式接口。2.函数式接口接口中只有一个抽象方法的接口就是函数式接口。可

2020-10-12 20:26:59 113

原创 17.多线程(4)

13.线程池1.什么是线程池一个创建线程的容器,可以通过该容器去创建不同业务场景的线程来完成不同的需求2.为什么需要线程池线程缺少统一的管理,占用过多的系统资源缺乏更多功能.比如定时执行、定期执行等使用线程池的优势可以重用存在的线程,减少对象的创建、消亡的开销有效的控制并发数,提高系统资源的使用率线程池可以实现定时执行、定期执行等功能.3.如何创建线程池线程池所在的包都在java.util.concurrent包下,顶级的接口Executors,真正的线程池接

2020-10-12 20:25:55 70

原创 17.多线程(3)

11.线程死锁问题线程死锁是一定要规避的问题!问题:两个小孩都喜欢对方的玩具唐唐:你把你的玩具鸭借我玩,我就把芭比娃娃给你玩豆豆:你把你的芭比娃娃借给我,我就把玩具鸭借给你造成了僵局的状态,谁都不把自己的玩具给对方,这就是死锁案例1唐唐类public class TangTang implements Runnable { Object babi = new Object();//芭比娃娃 Object duck = new Object();//玩具鸭 @Ov

2020-10-12 20:23:02 128 1

原创 17.多线程(2)

8.定时器定时器可以用于比如系统每周删除一次日志文件,或者在指定日期关闭系统。定时器类import java.util.TimerTask;/** * 定时器 * 用于给线程任务定时操作 * */public class MyTask extends TimerTask{ @Override public void run() { for (int i = 0; i <= 10; i++) { System.out.println(Thread.curren

2020-10-12 20:19:17 132

原创 17.多线程(1)

多线程1.多线程定义每一个应用程序开启后都会开启一个进程,一个进程中可以开启多个线程完成不同的功能,比如qq开启一个进程,qq可以同时聊天、听音乐、看qq空间就是开启了多个线程来完成不同的任务。CPU在某一个时间片只能处理一个任务(线程),如果没有实现多线程,你的qq就应该先执行聊天任务,聊天任务结束才可以听音乐、听音乐任务结束后才可以打开qq空间,我们可以开启多线程,让cpu交替去执行这3个任务,由于cpu计算能力很强,让你感觉这3个任务在同时进行,这样的好处是提高了用户的体验度总结:有1,2,

2020-10-12 20:14:23 188

原创 20.xml解析

java的xml解析1.xml定义xml(Extensible Markup Language)可扩展标记语言;可以通过xml来存储数据,一般用于项目或者框架的配置信息特点:xml与操作系统、编程语言的开发平台无关实现不同系统之间的数据交换2.Java中xml的作用java项目中,xml文件一般都是用来存储一些项目的配置信息,不会键大量数据配置在xml中在我们后期需要学习的servlet中,我们需要通过配置web.xml文件实现一些任务的调度,或者我们后期需要学习的几乎所有是ja

2020-10-12 20:06:34 126

原创 19.反射

反射1.反射定义反射是框架的灵魂,什么是框架?我们之前写一些功能都是通过最底层的代码去实现这些功能,为了提高开发效率,公司里面都是需要用到框架去开发,所谓java框架就是通过java语言给你封装了一个半成品,那你基于这个框架平台去开发能够节省很多的代码提高工作的效率。基本上所有的开发语言都会有不同的框架,比如学习前端我们最底层javascript,基于javascript的框架vue、jquery、bootstrap等等,java的框架比如现在流行的ssm、springboot、sprin

2020-10-12 20:05:21 87

原创 16.网络编程

网络编程1.socket定义旺旺即时通讯工具、QQ、微信、即时通讯大多数都是通过socket网络编程机制实现的,我们想实现网络的通讯,计算机网络编程是一个实现客户端和服务器端通过一个双向链路进行数据交换的复杂的过程,该过程必须经过三块,分别是:客户端、通信链路、服务器端。为了更好的理解该过程,我们可以将该过程比喻成手机和电脑通过USB数据线进行传输数据的过程,客户端相当于手机,数据链路相当于USB数据线,而电脑相当于服务器。socket也叫套接字,相当于数据线两端的插头,java socket是实现

2020-10-12 20:03:30 134

原创 2.js数组,对象,集合和流程控制

1.数组Array可以包含任何的数据类型var arr = [1,5,7,6,9];//通过下标取值和赋值arr[0] = 10;长度arr.length注意:如果给arrlength赋值,数组大小就会发生变化,如果赋值过小,元素就会丢失indexO.通过元素获得下标索引arr.indexOf(2);1字符串的"1"和数字1 是不同的slice() 截取Array的一部分,返回一个新的数组值,类似于substringarr.slice(1,3);5,7pu

2020-09-16 19:53:39 117

原创 14.IO

IO流1.定义:IO流(input/output):对文件的输入和输出流,从内存写入到磁盘就是输出流,从磁盘的文件写入到内存中就是输入流((以程序为参照物)。2.File类的操作import java.io.File;import java.io.IOException;public class FileTest { public static void main(String[] args) { File file = new File("D:\\wu.txt"); FileT

2020-09-16 19:52:46 67

原创 1.js入门

入门1.什么是javaScriptjavaScript是世界上最流行的脚本语言一个合格的后端人员,必须要精通javaScriptECMAScript可以理解为是JavaScript的一个标准,但实际上后两者是ECMA-262标准的实现和扩展最新版本已经到es6版本,但大部分浏览器只停留在支持es5代码上,导致开发环境和线上环境版本不一致2.快速入门2.1 引入javaScript<!DOCTYPE html><html lang="en"><head&g

2020-09-15 19:27:06 308

原创 12.实用类(总)

实用类1.包装类1.1 定义包装类是把基本类型转换为对象,是引用类型1.2作用包装类可以有很多操作的方法之前我们学习的集合比如add(1)在底层中会转换成包装类型integer类型插入到集合容器中,集合里面插入的都是引用类型。1.3 包装类型继承关系图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YZClMbBi-1600158779378)(D:\downfile\QQ\tu1 (1)].png)1.4 构造方法创建包装类型在构造方法中可以将

2020-09-15 16:33:15 214

原创 12.常用类之包装类

实用类1.包装类1.1 定义包装类是把基本类型转换为对象,是引用类型1.2作用包装类可以有很多操作的方法之前我们学习的集合比如add(1)在底层中会转换成包装类型integer类型插入到集合容器中,集合里面插入的都是引用类型。1.3 包装类型继承关系图1.4 构造方法创建包装类型在构造方法中可以将与之对应的基本数据类型作为构造方法参数,来创建包装类的对象charcater除外,在构造方法中可将对应的基本类型以字符串类型作为构造方法参数,来创建包装类的对象/** *

2020-09-14 22:12:55 298

原创 11.泛型

泛型1.背景java推出泛型以前,程序员可以构建一个元素类型为object类型的集合,该集合能够存储任何的数据类型的对象,而在使用该集合的过程中,需要程序员明确知道每个元素的数据类型,否则很容易引发ClassCastException异常,那通过泛型我们就能够约束集合插入的类型,那么该集合的所有元素都必须是此类型,那么就不需要进行object类型转换。import java.util.ArrayList;import java.util.Iterator;import java.util.Li

2020-09-14 22:08:57 483

原创 11.集合之总结

1 collections工具类案例1:自然排序import java.util.ArrayList;import java.util.Collections;import java.util.List;public class Test { public static void main(String[] args) { //所有的集合插入的元素必须是引用类型,Integer类型是int类型的包装类,是int类型的引用类型 List<Integer> lists =

2020-09-12 20:08:29 212

原创 11.集合之map

map接口下的集合map接口下的集合采用键值对Map<k,v>的存储方式,保存具有映射关系的数据。因此map集合里保存两组值,一组用于保存map里的key值,另外一组用于保存map里的value值,key和value可以是任意引用类型的数据。key值不允许重复,键可以为null,如果添加key-value键值对时已经有重复的key,则添加的value会覆盖key原来对应的value值.常用的实现类有HashMap、LinkedHashMap、TreeMap等。HashMap是以hash算法

2020-09-12 20:06:28 205

原创 11.集合之set

setset接口用于存储无序并且元素不可重复的集合,如下图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3e4grplS-1599911871739)(D:\downfile\QQ\tu2.png)]set接口常用的实现子类有HashSet、LinkedHashSet、TreeSet类等。1 HashSetHashSet是set集合中最常用的实现类,HashSet是按照哈希算法来存储的,因此具有很好的存取和查找性能。HashSet特点:无

2020-09-12 20:02:02 197

原创 1.单例模式

单例模式1.定义所谓单例,就是整个程序有且仅有一个实例。该类负责创建自己的对象,同时要确保只有一个对象被创建。好处:就是一个类你只能创建一个实例对象可以节约内存开销,一般常用于在工具类的实现(之前的静态方法也可以用于工具类的实现)。2.特点构造器私有持有自己类的属性对外提供获取实例的静态方法一般单例模式分为两大类:懒汉模式,饿汉模式.详细分其实有懒汉,饿汉,双检锁,内部类,枚举。3.懒汉模式/** * 懒汉模式,延迟初始化,在调用方法获取的时候才会实例对象 * 线

2020-09-12 19:56:09 77

原创 11.集合之List

集合1.定义1.集合可以看作是一种容器,用来存储对象信息的容器,并且长度是可变的。因为对象是可以创建无限个数的,而对象数组是开辟固定长度的存储空间,显然用对象是不合适的对象数组长度不可变化并且无法保存具有映射关系的数据;集合可以用于存储数量不确定的数据,长度可变,以及可以保存具有映射关系的数据数组元素既可以是基本类型的值,也可以是对象;集合只能保存对象(比如list集合add(1)方法,是把1变成包装类Integer包装类)所有的集合继承关系图(虽然很全,但是我们不是都要掌握,

2020-09-08 21:36:23 1189

原创 12.日志

日志1.定义作用:用于记录应用程序的执行过程或异常等记录在文件,可以通过日志文件知道应用程序的操作或异常信息。对于一个应用程序来说日志记录是必不可少的一部分。线上问题追踪,基于日志的业务逻辑统计分析等都离不日志。java领域存在多种日志框架,目前常用的日志框架包括Log4j 1,Log4j 2,CommonsLogging,Slf4j,Logback,Jul。日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:

2020-09-07 19:17:34 113

原创 7.方法、常量、内部类和枚举

方法1.定义把代码逻辑细节用方法封装起来,通过对象能够重复调用方法,代码复用,提高工作效率。//行为:叫做方法。 public void study() { System.out.println("学习"); }2. 方法种类无返回值的无参方法//void代表无返回值//()中写写形参,空代表没有参数public void game() { System.out.println("游戏"); }无返回值的有参方法//方法中有参赛,为形参public void

2020-09-04 21:09:28 119

原创 7.mybatis缓存

缓存1. 简介1.1 什么是缓存存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。1.2 为什么使用缓存减少和数据库的交互次数,减少系统开销,提高系统效率。1.3 什么样的数据能使用缓存经常查询并且不经常改变的数据2.Mybatis缓存MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。mybatis 系统中

2020-09-03 20:44:49 65

原创 13.异常

异常1.定义java编程语言使用异常处理机制为程序提供了错误处理的能力,程序出现错误,程序安全退出的机制。java是采用面向对象的方式来处理异常的。处理过程:抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行 路径,并把异常对象提交给jre。捕获异常:jre得到该异常后,寻找相应的代码来处理该异常。jre在方法的调用栈中查找,从生成异 常的方法开始回溯,直到找到相应的异常处理代码为止。2.异常继承关系图:error:是程序无

2020-09-02 21:58:07 132

原创 10.接口

接口1.定义接口是一种能力,在接口中对方法做具体的定义,但是不去做具体的实现,通过子类实现接口的抽象方法做具体的实现,优势:扩展性更强接口是抽象类实体,因为类是单继承关系,所以可以通过多实现接口拥有更多的父类.接口和抽象类的区别:抽象类中可以有属性,可以有抽象方法,构造方法,普通方法,接口中没有属性,都是public static final修饰的常量,都是public abstract修饰的抽象方法抽象类和接口都不能被实例化类可以单独继承类.也可以单独实现接

2020-09-01 15:05:17 140

原创 6.mybatis动态sql

动态Sql1.什么是动态sql:就是根据不同的条件生成不同的SQL语句利用动态SQL这一特性可以彻底摆脱这种痛苦如果你之前用过 JSTL 或任何基于类 XML 语言的文本处理器,你对动态 SQL 元素可能会感觉似曾相识。在 MyBatis 之前的版本中,需要花时间了解大量的元素。借助功能强大的基于 OGNL 的表达式,MyBatis 3 替换了之前的大部分元素,大大精简了元素种类,现在要学习的元素种类比原来的一半还要少。类型ifchoose (when, otherwise)trim (

2020-08-31 21:31:04 125

原创 5.mybatis注解

注解1.面向接口编程我们在一般实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理想的系统设计规范应是所有的定义与实现分离,尽管这可能对系统中的某些情况有点麻烦。根本原因:解耦,可拓展,提高复用,分层开发中,上层不用管具体的实现,大家都遵守共同的标准,使得开发变得容易,规范性更好.什么叫面向接口编程在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系

2020-08-30 21:16:23 110

原创 9.oop之多态

多态1. 定义同一个引用类型,使用不同的实例而执行的操作,实现多种形态。创建一个对象以父类类型接收,因创建的实例不同,而表现出不同的形态,多态一定要在继承关系下的方法重写的情况下才能实现。2.多态有两种体现方式2.1、使用父类作为方法的形参实现多态示例:通过食堂给不同的人打饭,方式和价格都不同父类person类/** * 父类-人类 * @author Administrator * */public abstract class Person { String

2020-08-29 19:42:32 381

原创 4.Resultmap及分页

1.Resultmap (结果集映射)1.1、问题:属性名和字段名不一致?数据库 id name pwd实体类 id name password1.2、解决: <!-- 结果集映射 --> <resultMap id="UserMap" type="User"> <!-- column数据库中的字段,property实体类中的属性 --> <result column="id" prop

2020-08-28 22:35:41 271

原创 3.mybatis的配置

配置解析1.配置种类MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)transactionManager(事务管理器)dataSource(数据源)d

2020-08-27 22:04:00 45

原创 6.1对象数组

对象数组1.定义将对象作为一个数组来应用2.示例创建实例类Studentpublic class Student { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } publi

2020-08-26 16:28:07 115

原创 2.mybatis的简单增删改查

mybatis的crud1.CRUD1. namespancenamespace中的包名要和dao/mapper接口的包名一致!2.select选择,查询语句:id:就是对应的namespace中的方法名;resultType:sql语句执行的返回值;parameterType:参数类型;编写接口User getById(int id);编写对应的mapper中的sql语句 <select id="getById" resultType="com.pojo.Use

2020-08-25 22:39:52 67

原创 1.mybatis入门

mybatis入门1.什么是MybitsMyBatis 是一款优秀的持久层框架。它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache softwar

2020-08-24 21:20:12 85

原创 8.oop之继承

继承1.概念子类继承父类,就可以拥有父类的属性和方法,私有的除外.属于单继承关系,一个类只能继承一个父类.把多个子类共有的属性和方法抽取出来放到父类里面,提供给子类使用,私有的除外.优点:代码重用,提高了工作效率,扩展性变强.父类叫基类,也叫超类。子类也叫派生类。示例:(1)父类-人类/** * 父类 人类 * * */public class Person { private String name; private int age; private

2020-08-22 12:07:59 290

原创 7.方法

方法1.定义把代码逻辑细节用方法封装起来,通过对象能够重复调用方法,代码复用,提高工作效率。//行为:叫做方法。 public void study() { System.out.println("学习"); }2. 方法种类无返回值的无参方法//void代表无返回值//()中写写形参,空代表没有参数public void game() { System.out.println("游戏"); }无返回值的有参方法//方法中有参赛,为形参public void

2020-08-22 12:06:43 147

原创 6.oop面向对象编程

oop1.定义oop:object oriented programing 面向对象编程之前:面向过程:把一个项目放在一个类中去写,把一个事件一步一步去执行。弊端:代码都在一个类,自上而下,代码耦合度高,后期扩展功能和维护的成本很高代码自上而下执行,代码复用性不高代码复用,提高工作效率,节约了成本就是好技术所有提出了面向对象面向对象:以对象为核心,把这个事件分析出两个对象,通过调用重复的调用其功能。2.类和对象类:把相同的属性和方法归为一类,类里面有属性和方法。抽象的概

2020-08-22 12:03:40 130

原创 java数组

数组1. 定义数组就是同一类型的一组数的有序集合,并且个数有限。2. 定义数组步骤:声明int[] a;//在栈内存中开辟,用于存放数组在堆内存中的地址开辟空间a[] = new int[5];赋值a[1] = 10;使用a[1]+=a[1];3.案例案例1计算平均分(数组增加) public static void main(String[] args) { int b[] = new int[] {1,2,3,4,5}; int sum

2020-08-15 15:38:45 108

原创 java循环结构

循环结构定义:在特定的条件下重复的去做一件事1. while语句先判断,后执行 //循环必要条件:1..起始值2..循环条件3..循环体(满足条件执行的代码)4..迭代 //输出十遍我很帅 int n = 1; while(n <= 10) { System.out.println("我很帅!第" + n + "遍。"); n++; } System.out.println("========================"); //输出10—1 in

2020-08-12 07:52:25 131

原创 java选择结构

选择结构1. 定义​ 用于选择和判断,进行流程控制2. if结构单if语句int money=20; if(money>100) { System.out.println("吃肯德基!"); }else{ System.out.println("吃炒粉!"); }多重if语句Scanner input=new Scanner(System.in); System.out.println("请输入分数:"); int score=input.nextInt(

2020-08-09 17:00:50 159

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除