自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring

Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架传统方式:UserDaoImpl、UserMysqlImpl、UserOracleImpl实现类UserService业务接口UserServiceImpl业务实现测试:IOC理论原型:利用set进行动态实现的注入 修改UserServiceImpl如下:测试:结果:小结:控制反转IOC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IOC的一种方法bea

2021-11-23 23:50:09 569

原创 MyBatis学习笔记

MyBatis简介什么是 MyBatis?MyBatis 是一款优秀的持久层框架它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。如何获得MyBatis?maven仓库<!-- https://mvnrepository

2021-11-10 22:29:16 1300

原创 JavaWeb基础知识

JavaWebJavaWeb基本概念Java Web,是用Java技术来解决相关web互联网领域的技术栈。web包括:web服务端和web客户端两部分。Java在客户端的应用有Java Applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP、第三方框架等等。**静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。**静态web资源开发技术:HTML、CSS动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web

2021-09-27 21:37:04 503 1

原创 mybatis错误 --- 1 字节的 UTF-8 序列的字节 1 无效 和 通信链路故障

1 字节的 UTF-8 序列的字节 1 无效Mybatis执行代码报错:Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 18; 1 字节的 UTF-8 序列的字节 1 无效。具体报错:java.lang.ExceptionInInitializer

2021-09-16 23:24:35 716 1

原创 Windows系统 Hadoop安装和配置

Windows系统 Hadoop安装和配置下载JDKJDK下载地址:http://www.oracle.com/下载Hadoophadoop下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/下载winutilwinutils下载地址:https://github.com/s911415/apache-hadoop-3.1.3-winutilswinutils压缩包:链接:https://pan.baid

2021-09-16 17:12:19 439

原创 JavaScript基础知识和jQuery基础知识简介

文章目录JavaScript引入JavaScript基本语法数据类型严格检查模式流程控制Map和Setiterator函数函数定义变量的作用域方法内部对象DateJOSN面向对象编程原型对象class继承操作BOM对象***操作DOM对象***操作表单(验证)jQueryJavaScript引入JavaScript内部标签<script> //...</script>外部引用<script src="js文件路径"></script&gt

2021-09-10 16:37:32 574 2

原创 CSS(重点选择器)

文章目录CSS入门CSS的三种导入方式选择器(重点)基本选择器***层次选择器结构伪类选择器属性选择器***美化网页元素字体样式文本样式阴影超链接伪类列表背景渐变盒子模型边框border内外边距圆角边框阴影浮动displayfloat父级边框塌陷的问题定位相对定位 relative绝对定位和固定定位z-index总结CSS 指层叠样式表 (Cascading Style Sheets),美化页面CSS入门<!DOCTYPE html><html lang="en"><

2021-09-07 14:36:15 196

原创 HTML5基础知识

HTML5HTML的全称为超文本语言,是一种标记语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图片,动画,声音,表格,链接等W3C标准:结构化语言(HTML,XML)表现标准语言(CSS)行为语言(DOM,ECMAScript)HTML基本结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zt8ewiSU-16308939

2021-09-06 10:17:22 503

原创 IDEA连接数据库、事务(Java)和数据库连接池(DBCP-C3P0连接池)

使用IDEA连接数据库找到IDEA中连接数据库的地方右上角或者 左下角输入用户名和密码,单机测试连接,然后点击应用,最后点击ok连接成功后点击Schemas双击数据库可以查看数据库表的内容修改数据库的表,看下图:控制台(写SQL语言的地方)选择默认的即可​ 切换数据库测试跟Navicate一样,选择运行的语句(Navicate会同步出现account表)连接数据库遇到的问题如果再IDEA连接不上数据库,则再这里修改为数据库对应的版本的SQl驱

2021-09-03 17:27:12 1586

原创 MySQL基础知识(配合Navicat使用)

数据库的基本概念数据(Data), 数据库(DataBase,DB), 数据库管理系统(DataBase Management System,DBMS),数据库系统(DataBase System,DBS), 数据库应用系统(DataBase Application System,DBAS)关系型数据库:MySQL,Oracle,SqlServer,DB2,SQLlite通过表和表之间,行和列之间的关系进行数据的存储,例如:学院信息表,考勤表非关系型数据库:Redis,Mong

2021-08-27 14:11:58 1684 1

原创 注解和反射

注解简述:Annotation的作用:不是程序本身,可以对程序做出解释(这一点和注释comment没什么区别)可以被其他程序(比如:编译器等)读取Annotation的格式:@注释名 ,还可以添加一些参数值,例如:@SuppressWarnings(value = “unchecked”).Annotation在哪里使用?可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元注解

2021-08-23 14:15:17 170 2

原创 多线程!!

多线程Thread(线程)简述:多条执行路径,主线程和子线程并行交替执行三种创建线程的方式1、继承Thread方法自定义线程类继承Thread类重写run()方法,编写线程执行体创建线程对象,调用start()方法启动线程package com.sgl.demo01;//创建线程方式一:继承Thread类,重写run()方法,调用start开启线程public class TestThread1 extends Thread{ @Override public vo

2021-08-22 14:12:44 1762 9

原创 网络编程*

网络编程package com.sgl.lession01.lession2;import java.net.InetAddress;import java.net.UnknownHostException;public class TextTextDemo01{ public static void main(String[] args) throws UnknownHostException { //查询本机地址 InetAddress byName

2021-08-21 14:42:18 103

原创 GUI编程

GUI编程1、简介Gui核心技术:Swing,AWT学习Gui的用处:了解MVC架构,了解监听器!2、AWT2.1、AWT介绍1. 包含很多类和接口!GUI:图形用户界面2. 元素:窗口,按钮,文本框3. java.awt2.2、组件和容器1、framepackage com.sgl.lession01;import java.awt.*;//GUI的第一个界面public class TestFrame { public static void main(Str

2021-08-21 14:41:33 198

原创 NIO.2(Path接口和Files工具类)

NIO.2Path接口Path接口是一共用在文件系统中定位文件的对象,通常表示一个依赖于文件系统的文件路径NIO.2提供了Paths和Files两个工具类,其中Paths类提供了两个返回Path的静态方法,提供静态方法可以创建Path对象,Files类提供大量的静态方法来操作文件Path中常用方法:Path getRoot() //返回该路径的根组件作为路径对象,如果此路径没有根组件,返回nullPath getParent() //返回父路径,如果此路径没有父路

2021-08-19 18:01:36 262

原创 NIO(Buffer和Channel)

NIO(New I/O)NIO采用内存映射文件的方式来处理输入输出,它将文件或文件一段区域映射到内存中,这样就可以像访问内存一样来访问文件在标准I/O中,使用的是字节流和字符流,NIO使用的是通道(Channel)和缓冲区(Buffer)。数据总是从通道读入缓冲区,或从缓冲区写入通道NIO主要有三大核心:1. Buffer:可以看作是一个容器,其本质是一个数组缓冲区,读入或写出到Channel中的所有对象都会先放在Buffer中2. Channel:是对传统的输入输出的模拟,在NIO中,所有

2021-08-19 18:00:23 387

原创 对象序列化(Serializable)

对象序列化对象序列化(Serializable)是指将一个Java对象转换成一个I/O流中的字节序列的过程目的是将对象保存到磁盘中,或允许在网络中直接传输对象将I/O流中的字节序列恢复为Java对象的过程被称之为反序列化(Deserialize)Java中,可序列化的类必须实现Serializable或Externalizable两个接口之一。如下:实现Serializable与实现Externalizable的对比:实现Serializable实现Externalizable

2021-08-18 13:14:57 681

原创 RandomAccessFile类

RandomAccessFile类RandomAccessFile类,不属于流,但具有读写文件数据的功能,可以随机从文件的任何位置开始执行读写数据的操作RandomAccessFile类可以将文件以指定的操作权限(如只读,只写等)的方式打开,具体使用哪种权限取决于创建它所采用的构造方法通过两种构造方法创建RandomAccessFile对象,需要接受两个参数:第一个参数指定关联的文件,第二个参数mode指定访问文件的模式(文件的权限)RandomAccessFile构造方法如下:RandomA

2021-08-18 13:14:05 1849

原创 File类(常用方法、遍历目录下的文件、listFiles()方法和删除文件及目录)

File类File类的常用方法Filie类常用的构造方法File(String pathname) //通过指定的一个字符串类型的文件路径来创建一个新的File对象File(String parent,String child) //通过指定的一个字符串类型的父路径和一个字符串类型的子路径(包括文件名称)创建一个File对象File(File parent,String child) //根据指定的File类的父路径和字符串类型的子路径(包括文件的名称)创建一个F

2021-08-18 13:12:57 4417

原创 字符流(Reader和Writer),字符流操作文件,字符流的缓冲区

字符流抽象类Reader和Writer时是字符流的顶级父类Reader是字符输入流,用于从某个源设备读取字符Writer是字符输出流,用于从某个原设备写入字符注意:Reader和Writer是抽象类,不能被实例化Reader和Writer提供不同的子类,这些子类的体系结构图如下:FileReader和FileWriter用于读写文件,BufferedReader和BufferedWriter是具有缓冲功能的流,提高读写效率字符流操作文件字符输入流FileReader,从文件中读取一个

2021-08-17 14:46:55 864

原创 字节流(InputStream和OutputStream),字节流读写文件,字节流的缓冲区,字节缓冲流

字节流抽象类InputStream和OutputStream是字节流的顶级父类所有的字节输入流都继承自InputStream,所有的输出流都继承子OutputStreamInputStream的常用方法:int read() int read(byte b[])int read(byte b[], int off, int len) void close() OutputStream的常用方法:v

2021-08-17 14:43:19 4436

原创 I/O流!!

I/O流I/O流的输入输出都是相对程序I/O(Input/Output)流分为以下3类:字节流和字符流根据流操作的数据单位不同字节流:以字节为单位进行数据的读写,每次读写一个或者多个字节数据字符流:以字符为单位进行数据的读写,每次读写一个或者多个字符数据输入流和输出流根据流传输方向的不同输入流:只能从流中读取数据,而不能向其写入数据输出流:只能从流中写入数据,而不能向其读取数据节点流和处理流根据流功能的不同节点流:也称为低级流,可以从一个特定的I/O设备(如磁

2021-08-17 14:35:43 135

原创 Parallel Stream(并行流)

Parallel Stream(并行流)以上介绍的创建Stream流对象的3种方法都是创建的串行流(Serial Stream),串行流就是将源数据转换为一个流对象,然后单线程下执行聚合操作的流(也就是单一管道流)并行流(Parallel Stream)就是将数据分为多个子流对象进行多线程操作(也就是多个管道流)如下图介绍:简述:在创建Stream流对象时,默认创建都是串行流。两种方式创建Stream并行流:第1种方式是通过Collection集合接口中的parallelStream()方法直

2021-08-17 14:34:35 8790

原创 Stream流对象的创建和方法

创建Stream流对象聚合操作的主要使用步骤,首先解决的问题就是创建Stream流对象Java中,集合对象有对应的集合类。可以通过集合类提供的静态方法创建Stream流对象;数组没有对应的数组类,所以必须通过其他方法创建Stream流对象Stream流创建的方式:所有的Collection集合都可以使用静态方法stream()静态方法获取Stream流对象;Stream接口的of()静态方法可以获取基本类型包装类数组,引用类型数组和单个元素的Stream流对象;Arrays数组工具类的st

2021-08-16 14:49:52 2712

原创 聚合操作!

聚合操作简介:Stream流结合lambda表达式进一步简化集合、数组中元素的查找、过滤、转换等操作,这一性能就是聚合操作聚合操作实际操作流程:将原始集合或者数组对象转换为Stream流对象;对Stream流对象中的元素进行一系列的过滤、查找等中间操作(Intermediate Operations),然后返回一个Stream流对象对Stream流进行遍历,统计,收集等终结操作(Terminal Operation),获取想要的结果package com.sgl;import java.

2021-08-16 14:47:59 935

原创 泛型(参数化类型)

泛型参数化类型(parameterized type),即泛型泛型可以限定操作的数据类型,在定义集合类时,可以使用**"<参数化类型>"的方式指定该集合中存储的数据类型**具体格式:ArrayLsit<参数化类型>list = new ArrayList<参数化类型>();代码如下:package com.sgl;import java.util.ArrayList;public class Test { public static vo

2021-08-16 14:47:18 362

原创 TreeMap和 Properties集合

TreeMap集合存储键值映射关系,并且不允许出现重复的键TreeMap内部是通过二叉树的原理保证键的唯一性,与TreeSet集合存储原理一样上代码:package com.sgl;import java.util.TreeMap;public class Test { public static void main(String[] args) { //创建TreeMap集合 TreeMap<Object, Object> tree

2021-08-16 14:46:10 134

原创 了解LinkedHashMap集合

LinkedHashMap集合保证元素添加顺序LinkedHashMap是HashMap集合的子类,和LinkedList一样也使用双向链表来维护内部元素的院系LinkedHashMap元素的迭代顺序与存入顺序一致上代码:package com.sgl;import java.util.HashMap;import java.util.LinkedHashMap;public class Test { public static void main(String[] args) .

2021-08-16 14:45:12 133

原创 forEach(BiConsumer action)方法遍历Map集合

forEach(BiConsumer action)方法遍历Map集合直接上代码:package com.sgl;import java.util.HashMap;public class Test { public static void main(String[] args) { //创建HashMap对象 HashMap<Object, Object> map = new HashMap<>(); map.p

2021-08-16 14:44:12 1533

原创 Iterator迭代器遍历Map集合

Iterator迭代器遍历Map集合将Map集合转换为Iterator接口对象,两种方法将Iterator将Map集合转换为Iterator接口对象,及keySet()和entrySet()keySet()方法需要先将Map集合中所有的键对象转换为Set单列集合,接着将包含键对象的Set集合转为Iterator接口对象,然后遍历Map集合中所有的键,再根据键获取相应的值package com.sgl;import java.util.HashMap;import java.util.It

2021-08-16 14:42:06 2310

原创 HashMap集合

HashMap集合HashMap集合是Map接口的一个实现类,它用于存储键值映射关系,该集合的键和值允许为空,但键不能重复,且集合中的元素是无序的HashMap底层是由哈希表结构组成的,就是**“数组+链表”**的结合体,数组是HashMap的主体结构,链表则主要是为了解决哈希值冲突而存在的分支结构图分析:​ 水平方向以数组为主体并在竖直方向以链表结构进行结合的就是HashMap中的哈希表结构。水平方向数组的长度称为HashMap集合的容量(capacity),竖直方向每个元素对应的链表结构称为

2021-08-15 15:20:56 282

原创 双列集合Map

双列集合MapMap集合是一种双列集合,它的每一个元素都包含一个键对象Key和值对象Value,键和值对象之间存在一种对应关系,称为映射。Map中的映射是一对一的关系,一个键对象Key对应唯一一个值对象Value,Key和Value可以是任意数据类型,并且Key不允许重复方法声明 功能描述void clear() //删除 hashMap

2021-08-15 15:17:21 270

原创 TreeSet的排序规则:自然排序和定制排序

自定义类型存储,如Student和Teacher类型数据等,由于这些自定义的类型的数据没有实现Comparable接口,因此无法直接在TreeSet集合中进行排序操作。解决方案,Java提高了两种TreeSet的排序规则**,自然排序**(默认情况下,TreeSet集合采用自然排序)和定制排序自然排序自然排序要求TreeSet集合中存储的元素所在的类必须实现Comparable接口,并重写comoareTo()方法,然后TreeSet集合就会对该类型使用compareTo()方法进行比较,并默认进

2021-08-14 00:22:53 2406

原创 TreeSet集合

TreeSet集合TreeSet集合是Set集合的另一个实现类,它内部采用平衡二叉树来存储元素。这样的结构可以保证TreeSet集合没有重复的元素,并且可以进行排序。二叉树:二叉树每个节点最多有两个子节点的有序树,每个几点及其子节点组成的树称为子树,通常左侧的子节点称为“左子树”,右侧的子节点称为“右子树”,其中左子树的元素小于它的根节点,而右子树的元素大于它的根节点。二叉树中元素的存储结构如图:同一层的元素,左边的元素总是小于右边的元素。当二叉树存入新的元素时,新元素首先与第1个元素(最顶层

2021-08-14 00:06:47 466

原创 自定义类型对象存入HashSet集合的过程

将字符串存入HashSet时,String类就已经默认重写了hashCode()和equals()方法,如果将自定义类型对象存入HashSet集合,结果如何?package com.sgl;import java.util.HashSet;class Student{ String id; String name; public Student(String id,String name) { this.id = id; this.name

2021-08-12 23:51:59 1141

原创 Set接口和HashSet集合

Set接口Set接口和List接口一样,同样继承自Collection接口,它与Collection接口中的方法基本一致没有对Collection接口进行功能上的扩充,只是比Collection接口更加严格与List接口不同的是,Set接口中的元素无序,且不重复HashSet集合HashSet是Set接口实现的一个类,所存储的元素是不可以重复的,且无序。向HashSet添加一个元素时,首先会调用该元素的hashCode()方法来确定元素的存储位置,然后调用元素对象的equals()方法来确保

2021-08-12 23:50:31 120

原创 JDK8的forEach循环(Lambda表达式)

JDK8的forEach循环根据Lambda表达式特性还增加了一个forEach(Consumer action)方法来遍历集合,该方法需要的参数是一个函数式接口上代码:package com.sgl;import java.util.ArrayList;public class Test { public static void main(String[] args) { ArrayList<Object> list = new ArrayList&l

2021-08-12 23:04:12 3009

原创 foreach的局限性和解决办法

foreach存在局限性,在循环遍历数组集合时,只能访问集合中的元素,但不能对其中的元素进行修改package com.sgl;public class Test { static String[] strs = {"aaa","bbb","ccc"}; public static void main(String[] args) { //String[] strs = {"aaa","bbb","ccc"}; .

2021-08-12 23:02:50 401

原创 foreach遍历集合

foreach遍历集合foreach循环用于遍历数组或集合中的元素,语法格式如下:for (容器中元素的类型 临时变量:容器变量){ //执行语句}于for循环相比**,foreach循环不需要获取容器的长度,也不需要根据索引访问容器中的元素,它会自动遍历容器中的每一个元素**package com.sgl;import java.util.ArrayList;public class Test { public static void main(String[]

2021-08-12 22:47:37 2142

原创 Iterator遍历集合

Iterator遍历集合Interator遍历集合的整个过程,当遍历集合元素时,首先通过调用ArrayList集合的Interator()方法获得迭代器对象,然后使用hasNext()方法判断集合中是否存在下一个元素,如果存在,**则调用next()方法将元素取出,**否则说明已经到达集合的末尾,终止遍历。通过next()方法获取元素时,必须保证要获取元素的存在,否则,会抛出NoSuchElementException异常package com.sgl;import java.util.ArrayLi

2021-08-12 22:44:47 2119

Python课程设计.doc

两种画图,Flying Happybird小游戏(来自B站视频学习),碰撞小球

2021-08-03

空空如也

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

TA关注的人

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