
笔记
三郎君
写文章勤分享:巩固自己,帮助他人,何乐而不为!
展开
-
传统的JDBC 编程的分析(入门必会)
传统的JDBC 编程的分析步骤://加载数据库驱动//通过驱动管理类获取数据库链接//定义 sql 语句 ?表示占位符//获取预处理 statement//设置参数,第一个参数为 sql 语句中参数的序号(从 1 开始),第二个参数为设置的参数值//向数据库发出 sql 执行查询,查询出结果集//遍历查询结果集//释放资源代码:public static void main(String[] args) {Connection connection = null;PreparedS原创 2020-12-30 20:32:30 · 343 阅读 · 0 评论 -
什么是框架?框架要解决的问题?
什么是框架?框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。简而言之,框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。框架要解决的问题框架要解决的最重要的一个问题是技术整合的问题,在 J2EE 的 框架中,有着各种各样的技术,不同的软件企原创 2020-12-30 20:14:51 · 1729 阅读 · 0 评论 -
Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?第一种是使用标签,逐一定义数据库列名和对象属性名之间的映射关系。第二种是使用sql列的别名功能,将列的别名书写为对象属性名。有了列名与属性名的映射关系后,Mybatis通过反射创建对象,同时使用反射给对象的属性逐一赋值并返回,那些找不到映射关系的属性,是无法完成赋值的。...原创 2020-12-08 08:48:15 · 1159 阅读 · 0 评论 -
Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?Mybatis仅支持association关联对象和collection关联集合对象的延迟加载,association指的就是一对一,collection指的就是一对多查询。在Mybatis配置文件中,可以配置是否启用延迟加载lazyLoadingEnabled=true|false。它的原理是,使用CGLIB创建目标对象的代理对象,当调用目标方法时,进入拦截器方法,比如调用a.getB().getName(),拦截器invoke()原创 2020-12-08 08:47:55 · 3317 阅读 · 3 评论 -
mybatis如何批量插入?
mybatis如何批量插入?首先创建一个简单地insert语句<insert id=”insertname”>insert into names (name) values (#{value})</insert>然后在java代码中像下面这样执行批处理插入:list<string> names = new arraylist();names.add(“fred”);names.add(“barney”);names.add(“betty”);name原创 2020-12-08 08:47:40 · 298 阅读 · 0 评论 -
三郎数据结构算法学习笔记:二叉树的三种遍历及增删改查
三郎数据结构算法学习笔记:二叉树的三种遍历二叉树遍历的说明遍历图示运行结果源代码(自己去掉注释)二叉树遍历的说明前序遍历: 根左右中序遍历: 左根右后序遍历:左右根遍历图示运行结果源代码(自己去掉注释)package com.atguigu.tree;public class BinaryTreeDemo { public static void main(String[] args) { //先需要创建一颗二叉树 BinaryTree binaryTree =原创 2020-12-07 15:11:54 · 126 阅读 · 0 评论 -
Spring依赖注入的方式有几种,各是什么?
一、构造器注入将被依赖对象通过构造函数的参数注入给依赖对象,并且在初始化对象的时候注入。优点:对象初始化完成后便可获得可使用的对象。缺点:当需要注入的对象很多时,构造器参数列表将会很长;不够灵活。若有多种注入方式,每种方式只需注入指定几个依赖,那么就需要提供多个重载的构造函数,麻烦。二、setter方法注入IoC Service Provider通过调用成员变量提供的setter函数将被依赖对象注入给依赖类。优点:灵活。可以选择性地注入需要的对象。缺点:依赖对象初始化完成后由于尚未注原创 2020-11-27 11:36:28 · 2803 阅读 · 1 评论 -
Java中八种基本数据类型的大小,以及他们的封装类
Java中八种基本数据类型的大小,以及他们的封装类1.int是基本数据类型,Integer是int的封装类,是引用类型。int默认值是0,而Integer默认值是null,所以Integer能区分出0和null的情况。一旦java看到null,就知道这个引用还没有指向某个对象,再任何引用使用前,必须为其指定一个对象,否则会报错。2.基本数据类型在声明时系统会自动给它分配空间,而引用类型声明时只是分配了引用空间,必须通过实例化开辟数据空间之后才可以赋值。数组对象也是一个引用对象,将一个数组原创 2020-11-27 11:33:31 · 2452 阅读 · 0 评论 -
Java中标识符的命名规则是什么?硬性要求和非硬性要求
Java中标识符的命名规则是什么?标识符的含义:命名规则:(硬性要求)命名规范:(非硬性要求)标识符的含义:是指在程序中,我们自己定义的内容,譬如,类的名字,方法名称以及变量名称等等,都是标识符。命名规则:(硬性要求)标识符可以包含英文字母,0-9的数字,$以及_标识符不能以数字开头标识符不是关键字命名规范:(非硬性要求)类名规范:首字符大写,后面每个单词首字母大写(大驼峰式)。变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。方法名规范:同变量名...原创 2020-11-27 11:29:23 · 997 阅读 · 0 评论 -
三郎数据结构算法学习笔记:冒泡排序及其简单优化
三郎数据结构算法学习笔记:冒泡排序及其简单优化基本思想优化图示结果源代码基本思想冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。优化因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在 排序过程中设置一个标志 flag 判断元素是否进行过交换。从而减少不必要的比较。(这里说的优化,可以在冒泡排原创 2020-11-24 13:00:48 · 111 阅读 · 0 评论 -
InnoDB与MyISAM的区别
InnoDB与MyISAM的区别1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务;2. InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;3. InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应原创 2020-10-29 22:34:37 · 155 阅读 · 0 评论 -
简单说一说MySQL中drop、delete与truncate的区别?
简单说一说drop、delete与truncate的区别SQL中的drop、delete、truncate都表示删除,但是三者有一些差别delete和truncate只删除表的数据不删除表的结构速度,一般来说: drop> truncate >deletedelete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.truncate,drop是ddl, 操作立即生效,原数据不放到rollbackse原创 2020-10-29 22:25:44 · 512 阅读 · 0 评论 -
Java全套2020教程免费分享
全套2020年Java教程免费分享包含视频资料文件太多哟了记得分开存关注我私聊我单独发原创 2020-10-29 15:46:21 · 296 阅读 · 1 评论 -
python程序没有报错但是运行没有任何结果怎么办?
python程序没有报错运行没有任何结果怎么办?可以从以下情况进行分析:1.没有语法错误不代表没有逻辑错误IDE工具毕竟不是人工智能,即使是人工智能也能力有限我们可以新建一个地方写一个输出看是否能正常运行,可以的话我们排除编译器错误可以百分百肯定是自己代码错误而不是编译器的问题2.一般的错误IDE都会报出,可是运行程序没有任何反应说明程序第一行就有错误在第一行写一个检查点输出python为例print(“mymain检查点1”)把它放在所以代码之前记住是所有代码之前第二行再写一个p原创 2020-10-28 22:53:29 · 63847 阅读 · 8 评论 -
H5+CSS前端特效源代码:可旋转动态日文片假名
H5+CSS前端特效源代码:可旋转日文片假名1.效果展示H5部分<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible原创 2020-10-27 23:28:58 · 46943 阅读 · 0 评论 -
图解如何修改Win10系统C盘下用户的账户文件夹名称?
1.我要该C:/用户/下:sanlang这个文件夹的名字改成:三郎真帅一般都是中文名字该英文,我的是英文今天为了好对比改成中文因为中文经常编译器乱码2.登录管理员账户操作电脑:登录操作教程记住登录之前要先注销3.找到注册表里的对应位置运行打开“regedit”,找到目录为:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Profilelist,找到之前文件夹对应的ProfileImagePath输入reged原创 2020-10-27 17:29:29 · 1594 阅读 · 0 评论 -
图解如何启用Win10管理员账户
1.管理员运行cmd,命令提示符2.输入命令:net user administrator /active:yes结果显示:原创 2020-10-27 17:07:55 · 375 阅读 · 0 评论 -
三郎数据结构算法学习笔记:数组模拟环形队列系统附完整源代码
三郎数据结构算法学习笔记:数组模拟环形队列环形队列:满足队列先进先出特点,此外加上条件强制性的首尾相连值得注意的是这里的首尾相连是逻辑层面上的,不是物理层面上的本次采用的是数组模拟环形队列,不是链表哦结果展示:参考完整源代码:/* * author:sanalang * time:2020.10.26 * function: CircleArrayQueue based on array * */import java.util.Scanner;class CircleArr原创 2020-10-26 20:29:17 · 165 阅读 · 0 评论 -
H5+css+js前端特效源代码:发光动画按钮:上传按钮
前端特效:发光动画按钮:上传按钮H5+CSS+JS骨架+皮肤+功能效果展示源代码:H5部分:<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv原创 2020-10-26 20:02:22 · 1099 阅读 · 0 评论 -
三郎数据结构算法学习笔记:数组模拟队列系统
用数组模拟队列队列特点:先进先出算法思想:这里我们用数组模拟队列假设数组容量上限MaxSize放置好头尾指针结果演示:/** author:sanalang* time:2020.10.25* function: ArrayQueue based on array* */import java.util.Scanner;class ArrayQueueDemo { public static <handle> void main(String[] args) {原创 2020-10-25 19:02:05 · 157 阅读 · 0 评论 -
思科Cisco交换机的基本模式和命令基本使用和技巧大全
了解交换机的基本模式和命令(其他比如路由器基本相同)常用:Switch> 用户模式 enable(简写en进特权模式;exit重新进入交换机命令界面)Switch# 特权模式(使能模式; exit返回特权模式)Switch(config# 全局配置模式(conf t 由特权模式进入)Switch(config-if)# 端口模式(interface 端口 例如:int fa0/1)其他:Switch(config-line)#(例如line vty 0 4进入)Switch(conf原创 2020-10-24 21:43:51 · 9668 阅读 · 7 评论 -
什么是svg?它是干什么的?有什么作用?
SVG 绘图通过编写代码来实现,格式为XML,绘制出一个矢量图像。所以,对于一个SVG格式的图像,看到的最终形式是一个描述文本,相对比较容易读懂,易于修改使用,可以通过描述内容的关键字来建立索引,像表示图像的形状元素;同时,SVG还可以使用一些特殊处理,这些都可以通过修改代 码来实现,可以添加阴影,可以生成动态效果,这些都可以实现。 [3]基于SVG构成一个矢量图像时,我们使用的基本是各种形状标签,这些标签元素包括根元素(svg),形状元素;还有特殊效果处理中的滤镜效果和渐变效果SVG提供了、原创 2020-10-24 20:40:07 · 7849 阅读 · 0 评论 -
背景动态星空H5特效源代码
背景动态星空H5特效源代码源代码已经在下面点个关注呗!<!--name:sanlang from:internet model web function:a login page with starts--><!DOCTYPE HTML><html><head><base href="https://www.ym4j.com:443/"><meta http-equiv="X-UA-Compatibl原创 2020-10-23 18:02:41 · 75439 阅读 · 12 评论 -
IDEA,Pycharm,CLion,PHPcharm软件包免费分享
免费分享哦关注哦即可评论区留下邮箱或者私信我哦!百分百有效原创 2020-10-23 08:51:15 · 346 阅读 · 3 评论 -
Spring的AOP理解:
Spring的AOP理解:OOP面向对象,允许开发者定义纵向的关系,但并适用于定义横向的关系,导致了大量代码的重复,而不利于各个模块的重用。AOP,一般称为面向切面,作为面向对象的一种补充,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。可用于权限认证、日志、事务处理。AOP实现的关键在于 代理模式,AOP代理主要分为静态代理和动态代理。静态代理原创 2020-10-23 07:05:50 · 92 阅读 · 0 评论 -
SpringMVC常用的注解有哪些?
SpringMVC常用的注解有哪些?@RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径。@RequestBody:注解实现接收http请求的json数据,将json转换为java对象。@ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。...原创 2020-10-23 07:05:36 · 306 阅读 · 0 评论 -
SpringMVC怎么样设定重定向和转发的?
SpringMVC怎么样设定重定向和转发的?(1)转发:在返回值前面加"forward:",譬如"forward:user.do?name=method4"(2)重定向:在返回值前面加"redirect:",譬如"redirect:http://www.baidu.com"原创 2020-10-23 07:05:17 · 824 阅读 · 0 评论 -
Spring中依赖注入的方式有几种,各是什么?
依赖注入的方式有几种,各是什么?一、构造器注入将被依赖对象通过构造函数的参数注入给依赖对象,并且在初始化对象的时候注入。优点:对象初始化完成后便可获得可使用的对象。缺点:当需要注入的对象很多时,构造器参数列表将会很长;不够灵活。若有多种注入方式,每种方式只需注入指定几个依赖,那么就需要提供多个重载的构造函数,麻烦。二、setter方法注入IoC Service Provider通过调用成员变量提供的setter函数将被依赖对象注入给依赖类。优点:灵活。可以选择性地注入需要的对象。缺原创 2020-10-23 07:05:08 · 2445 阅读 · 0 评论 -
Spring中Autowired和Resource关键字的区别?
Spring中Autowired和Resource关键字的区别?@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。1、共同点两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。2、不同点(1)@Autowired@Autowired为Spring提供的注解,需要导入包org.spr原创 2020-10-23 07:04:58 · 639 阅读 · 0 评论 -
数据库的事务是什么?有什么特点?
数据库的事务什么是事务?: 多条sql语句,要么全部成功,要么全部失败。事务的特性:数据库事务特性:原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)、持久性(Durabiliy)。简称ACID。原子性:组成一个事务的多个数据库操作是一个不可分割的原子单元,只有所有操作都成功,整个事务才会提交。任何一个操作失败,已经执行的任何操作都必须撤销,让数据库返回初始状态。一致性:事务操作成功后,数据库所处的状态和它的业务规则是一致的。即数据不会被破坏。如A转账10原创 2020-10-23 07:04:40 · 452 阅读 · 0 评论 -
数据库的三范式是什么
1、数据库的三范式是什么第一范式:列不可再分第二范式:行可以唯一区分,主键约束第三范式:表的非主属性不能依赖与其他表的非主属性 外键约束且三大范式是一级一级依赖的,第二范式建立在第一范式上,第三范式建立第一第二范式上。...原创 2020-10-22 14:25:21 · 196 阅读 · 0 评论 -
Spring MVC流程
1、 用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、 DispatcherServlet调用HandlerAdapter处理器适配器。5、 HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制原创 2020-10-22 09:47:55 · 123 阅读 · 0 评论 -
讲一下什么是Spring?
Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。主要由以下几个模块组成:Spring Core:核心类库,提供IOC服务;Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);Spring AOP:AOP服务;Spring DAO:对JDBC的抽象,简化了数据访原创 2020-10-22 09:45:29 · 742 阅读 · 0 评论 -
1、 Spring的IOC和AOP机制?
我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂。主要用到的设计模式有工厂模式和代理模式。IOC就是典型的工厂模式,通过sessionfactory去注入实例。AOP就是典型的代理模式的体现。代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代原创 2020-10-22 09:43:19 · 809 阅读 · 0 评论 -
如何创建线程池?
《阿里巴巴Java开发手册》中强制线程池不允许使用 Executors 去创建,而是通过ThreadPoolExecutor 的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险**Executors 返回线程池对象的弊端如下:FixedThreadPool 和 SingleThreadExecutor : 允许请求的队列长度为Integer.MAX_VALUE,可能堆积大量的请求,从而导致OOM。CachedThreadPool 和 ScheduledThreadPoo原创 2020-10-22 09:37:25 · 221 阅读 · 0 评论 -
执行execute()方法和submit()方法的区别是什么呢?
执行execute()方法和submit()方法的区别是什么呢?1) execute() 方法用于提交不需要返回值的任务,所以无法判断任务是否被线程池执行成功与否;2)submit()方法用于提交需要返回值的任务。线程池会返回一个future类型的对象,通过这个future对象可以判断任务是否执行成功,并且可以通过future的get()方法来获取返回值,get()方法会阻塞当前线程直到任务完成,而使用 get(long timeout,TimeUnit unit) 方法则会阻塞当前线程一段时间后立即返原创 2020-10-22 09:35:33 · 1177 阅读 · 0 评论 -
为什么要用线程池?
线程池提供了一种限制和管理资源(包括执行一个任务)。 每个线程池还维护一些基本统计信息,例如已完成任务的数量。这里借用**《Java并发编程的艺术》**提到的来说一下使用线程池的好处:降低资源消耗。 通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。 当任务到达时,任务可以不需要的等到线程创建就能立即执行。提高线程的可管理性。 线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。...原创 2020-10-22 09:33:42 · 157 阅读 · 0 评论 -
Java有三个线程T1,T2,T3,如何保证顺序执行?
有三个线程T1,T2,T3,如何保证顺序执行?在多线程中有多种方法让线程按特定顺序执行,你可以用线程类的join()方法在一个线程中启动另一个线程,另外一个线程完成该线程继续执行。为了确保三个线程的顺序你应该先启动最后一个(T3调用T2,T2调用T1),这样T1就会先完成而T3最后完成。实际上先启动三个线程中哪一个都行,因为在每个线程的run方法中用join方法限定了三个线程的执行顺序。public class JoinTest2 {// 1.现在有T1、T2、T3三个线程,你怎样保证T2在T原创 2020-10-22 09:32:21 · 803 阅读 · 2 评论 -
Java如何停止一个正在运行的线程
Java中如何停止一个正在运行的线程1、使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。2、使用stop方法强行终止,但是不推荐这个方法,因为stop和suspend及resume一样都是过期作废的方法。3、使用interrupt方法中断线程。3、notify()和notifyAll()有什么区别?notify可能会导致死锁,而notifyAll则不会任何时候只有一个线程可以获得锁,也就是说只有一个线程可以运行synchronized 中的代码使用notifyall,可以唤醒原创 2020-10-22 09:30:36 · 1889 阅读 · 0 评论 -
Java中实现多线程有几种方法
Java中实现多线程有几种方法继承Thread类;实现Runnable接口;实现Callable接口通过FutureTask包装器来创建Thread线程;使用ExecutorService、Callable、Future实现有返回结果的多线程(也就是使用了ExecutorService来管理前面的三种方式)。...原创 2020-10-22 09:28:52 · 223 阅读 · 0 评论