自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 实用Excel技巧分享:快速整理考勤数据!

关于考勤数据

2022-10-04 17:12:32 3722 1

原创 maven download jar path

https://repo1.maven.org/maven2/mysql/mysql-connector-java/

2021-08-07 12:07:07 126

原创 windows安装python模块

要做一个爬虫,去访问网站某些商品的库存。代码是用python写的,部署的时候提示“python module not found”, windows 和 linux 确实差别还是挺大的。那就见招拆招,想办法处理吧。安装easy_install 和 pipeasy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的安装easy_install下载地址:https://pypi.python.org/pypi/ez_setup(也可从文章后边的相关资源下载)解压

2021-05-29 22:15:50 190

原创 Java面试宝典02

2021-05-18 07:54:56 96

原创 Java面试宝典01

2021-05-18 07:54:09 66

原创 Java面试宝典(2020版)

2021-05-18 07:50:28 189

原创 Spring常见面试题

2021-05-17 23:10:06 79

原创 Mybatis常见面试题

2021-05-17 22:27:40 202

原创 java动态代理实现与原理

java动态代理实现与原理详细分析关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式–代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理。一、代理模式代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服

2021-05-16 20:09:15 114

原创 动态代理的两种方式以及区别

动态代理的两种方式以及区别JDK动态代理:利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。CGlib动态代理:利用ASM(开源的Java字节码编辑库,操作字节码)开源包,将代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。区别:JDK代理只能对实现接口的类生成代理;CGlib是针对类实现代理,对指定的类生成一个子类,并覆盖其中的方法,这种通过继承类的实现方式,不能代理final修饰的类。强制使用CGlib<aop:aspec

2021-05-16 20:03:33 369

原创 mybatis中#与$的区别

mybatis中#与$的区别MyBatis中使用parameterType向SQL语句传参,parameterType支持的类型可以是基本类型int,String,HashMap和java自定义类型。在SQL中引用这些参数的时候,可以使用两种方式:#{parameterName}${parameterName}首先,我们说一下这两种引用参数时的区别,使用#{parameterName}引用参数的时候,Mybatis会把这个参数认为是一个字符串,并自动加上’’,例如传入参数是“Smith”,那么在下

2021-05-16 19:18:08 176 3

原创 mybatis一级缓存二级缓存

mybatis一级缓存二级缓存一级缓存  Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一样的情况下,我们使用同一个SqlSession对象调用一个Mapper方法,往往只执行一次SQL,因为使用SelSession第一次查询后,MyBatis会将其放在缓存中,以后再查询的时候,如果没有声明需要刷新,并且缓存没有超时的情况下,SqlSession都会取出当前缓存的数据,而不会再次发送SQL到数据库。

2021-05-16 19:15:18 65

原创 Docker 系列学习(三) 安装和使用docker

鉴于系统比较多,安装教程建议参考Docker的官方文档。

2020-09-08 15:42:58 128

原创 Docker 系列学习(二) 全面介绍docker

Docker简介Docker是一种遵从Apache2.0协议开源的Linux容器管理解决方案,它通过进程和进程通信技术对操作系统的文件资源和网络的进行隔离,实现了包含文件资源、系统资源(shell环境等)以及网络资源的容器创建和管理。每一个容器都有一个唯一的进程,当该进程结束的时候,容器也会完全的停止。其他信息Go语言编写仅适用于Linux平台Docker 官网:http://www.docker.comGithub Docker 源码:https://github.com/dock...

2020-09-07 18:32:03 313

原创 Docker 系列学习(一)认识docker

Docker 系列学习(一)认识dockerpart 1 : 容器技术的起源假设你们公司正在秘密研发下一个“今日头条”APP,我们姑且称为明日头条,程序员自己从头到尾搭建了一套环境开始写代码,写完代码后程序员要把代码交给测试同学测试,这时测试同学开始从头到尾搭建这套环境,测试过程中出现问题程序员也不用担心,大可以一脸无辜的撒娇,“明明在人家的环境上可以运行的”。测试同学测完后终于可以上线了,这时运维同学又要重新从头到尾搭建这套环境,费了九牛二虎之力搭建好环境开始上线,糟糕,上线系统就崩溃了,这时心理素

2020-09-04 11:16:11 145

原创 Ansible - 基本入门学习

AnsibleAnsible–快速入门介绍Ansible是一款简单的运维自动化工具,只需要使用ssh协议连接就可以来进行系统管理,自动化执行命令,部署等任务。Ansible的特点1、ansible不需要单独安装客户端,也不需要启动任何服务2、ansible是python中的一套完整的自动化执行任务模块3、ansible playbook 采用yaml配置,对于自动化任务执行过一目了然Ansible组成结构Ansible是Ansible的命令工具,核心执行工具;一次性或临时执行的操作都是通

2020-09-02 18:08:35 230

原创 java-观察者模式(Observer Pattern)

当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。介绍意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)...

2020-04-19 14:48:54 149

原创 java-单例模式(Single Pattern)

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3...

2020-04-19 14:43:50 119

原创 java-工厂模式(factory pattern)

从简单工厂模式到复杂工厂模式。1. 简单工厂模式该模式对对象创建管理方式最为简单,其仅仅简单的对不同类对象的创建进行了封装。该模式通过向工厂传递类型来指定要创建的对象,其UML类图如下:下面我们使用手机生产来讲解该模式:Phone接口类:手机标准规范类(AbstractProduct)public interface Phone { void make();}...

2020-04-19 14:35:29 117

原创 java-设计模式几大原则

1.单一原则(Single Responsibility Principle):一个类或者一个方法只负责一项职责,尽量做到类的只有一个行为原因引起变化;  a、业务对象(BO business object)、业务逻辑(BL business logic)拆分;2.里氏替换原则(LSP liskov substitution principle):子类可以扩展父类的功能,但不能改变原有父类...

2020-04-19 14:20:59 138

原创 Tomcat-安装及配置教程

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。今天就在这里教大家如何进行安装以及配置。首先进入Tomcat官网:http://tomcat.apache.org/选择自己需要的版本,下载后资源是一个zip文件。解压zip文件,获取tomcat.尝...

2020-04-12 21:04:49 835

转载 IntelliJ IDEA Spring Boot 打成war包

IntelliJ IDEA Spring Boot 打成war包Springboot由于使用内置tomact,建议打成jar方便一点,但在这里我着重讲的是Springboot打war包。第一步:修改packaging为war包;第二步:删除默认的tomact,这里有两种方式删除;(1).第一种方式:注意:如果当前项目还需使用jsp,则需设置如下:(2).第二种方式:直接添...

2020-04-12 17:59:34 192

原创 idea 中项目右键没有maven的run与clean与install命令选项选项

idea 中项目右键没有run命令选项,没有maven的clean与install选项此项目是maven项目,试过创建一个新的maven项目也是如此。idea 中项目右键没有run命令选项,没有maven的clean与install选项如下图:但是在右边有,如下图:然后鼠标右键还是一样如下图:...

2020-04-12 16:35:10 7370 2

原创 Linux 常用命令

帮助命令1.1 man 命令名称,man 的意思是 manual,即手册,对于大多数命令都可以使用这个命令来查看其使用的方法。1.2 help 命令名称 或者 命令名称 --help,可以查看命令的使用帮助。目录操作2.1 pwd,查看当前所在的目录路径。2.2 ls 路径,查看指定路径下的文件列表,可以加上多个路径,例如:ls /usr /etc,分别显示根目录下的 user ...

2020-04-04 23:36:42 201

原创 Java - 线程池

构造一个线程池为什么需要几个参数?如果避免线程池出现OOM?Runnable和Callable的区别是什么?本文将对这些问题一一解答,同时还将给出使用线程池的常见场景和代码片段。基础知识Executors创建线程池Java中创建线程池很简单,只需要调用Executors中相应的便捷方法即可,比如Executors.newFixedThreadPool(int nThreads),但是便捷不仅...

2020-04-03 01:09:00 58

原创 java-HashMap实现原理

java中HashMap是如何实现的?HashMap底层使用的是数组加链表的数据结构实现。java中HashMap是如何使用的?首先,得new一个HashMap对象不是?很多人都是用默认的无参构造器来创建HashMap对象的。看一下jdk1.6中的源码public HashMap() {//加载因子,默认0.75this.loadFactor = DEFAULT_LOAD_FACTOR...

2020-04-03 00:48:32 89

原创 java-容器

容器可以说是Java Core中比较重要的一部分了。数组,String,java.util下的集合容器==============================================================================数组长度限制为 Integer.Integer.MAX_VALUE;String的长度限制: 底层是char 数组 长度 Intege...

2020-04-03 00:34:29 80

原创 int 和 Integer, Integer 的值缓存范围

目录典型回答注意事项知识扩展理解自动装箱、拆箱源码分析原始类型线程安全4.Java 原始数据类型和引用类型局限性典型回答int是 Java 的 8 个原始数据类型(Primitive Types,boolean(1/8字节)、byte(1字节) 、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)、char(2...

2020-04-03 00:30:49 994

原创 java - 基本数据类型 与 String

Java中的基本数据类型只有8个:byteshortintlongfloatdoublecharboolean除了基本类型(primitive type),剩下的都是引用类型(reference type),枚举类型(enumeration type)也是引用类型。其中 byte 一个字节,short两个字节,int四个字节,long八个字节,char两个字节在Java语言中...

2020-04-03 00:27:39 115

原创 Java-访问修饰符

作用域 当前类 同包 子类 其他public √ √ √ √protected √ √ √ ×default √ √ × ×private √ × × ×类的成员不写访问修饰时默认为default。默认...

2020-04-03 00:18:55 85

原创 面向对象的特征

面向对象的编程语言有封装、继承 、抽象、多态等4个主要的特征。1封装: 封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在面向对象的编程语言中,对象是封装的最基本单位,面向对象的封装比传统语言的封装更为清晰、更为有力。面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就是一个类中,属性用变量定...

2020-04-03 00:16:41 117

转载 【深入Java虚拟机】之八:Java垃圾收集机制

对象引用Java中的垃圾回收一般是在Java堆中进行,因为堆中几乎存放了Java中所有的对象实例。谈到Java堆中的垃圾回收,自然要谈到引用。在JDK1.2之前,Java中的引用定义很很纯粹:如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。但在JDK1.2之后,Java对引用的概念进行了扩充,将其分为强引用(Strong Reference...

2020-04-02 20:23:40 50

转载 【深入Java虚拟机】之七:Javac编译与JIT编译

编译过程不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理机的目标代码或虚拟机能执行的指令集之前,都会按照如下图所示的各个步骤进行:其中绿色的模块可以选择性实现。很容易看出,上图中间的那条分支是解释执行的过程(即一条字节码一条字节码地解释执行,如JavaScript),而下面的那条分支就是传统编译原理中从源代码到目标机器代码的生成过程。如今,基于物理机、虚拟机等的语言,大...

2020-04-02 20:20:20 74

转载 【深入Java虚拟机】之六:Java语法糖

语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家Peter.J.Landin发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。Java中最常用的语法糖主要有泛型、变长参数、条件编译、自动拆装箱、内部类等。虚拟机并不支持这些语法,它们在编译阶段就被还原回了简单的基础语法结构,这个过程成为解语法糖。泛型是JDK1.5之后引...

2020-04-02 20:17:16 65

转载 【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派

方法解析Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址。这个特性给Java带来了更强大的动态扩展能力,使得可以在类运行期间才能确定某些目标方法的直接引用,称为动态连接,也有一部分方法的符号引用在类加载阶段或第一次使用时转化为直接引用,这种转化称为静态解析。这在前面的“Java内存区域与内存溢出...

2020-04-02 20:15:59 80

转载 【深入Java虚拟机】之四:类加载机制

类加载过程类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示:其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也成为...

2020-04-02 20:14:30 70

转载 【深入Java虚拟机】之三:类初始化

类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码。虚拟机规范严格规定了有且只有四种情况必须立即对类进行初始化:遇到new、getstatic、putstatic、invokestatic这四条字节码指令时,如果类还没有进行过初始化,则需要先触发其初始化。生成这四条指令最常见的Java代码场景是:使用new关键字实例化对象时、读取或设置一个类的静态字段(sta...

2020-04-02 20:11:00 65

转载 【深入Java虚拟机】之二:Class类文件结构

平台无关性Java是与平台无关的语言,这得益于Java源代码编译后生成的存储字节码的文件,即Class文件,以及Java虚拟机的实现。不仅使用Java编译器可以把Java代码编译成存储字节码的Class文件,使用JRuby等其他语言的编译器也可以把程序代码编译成Class文件,虚拟机并不关心Class的来源是什么语言,只要它符合一定的结构,就可以在Java中运行。Java语言中的各种变量、关键字...

2020-04-02 20:07:17 81

转载 【深入Java虚拟机】 之一:Java内存区域与内存溢出

内存区域Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。下面详细阐述各数据区所存储的数据类型。程序计数器(Program Counter Register)一块较小的内存空间,它是当前线程所执行的字节码的行号指示器,字节码解释器...

2020-04-02 20:00:44 88

转载 网络协议 互联网协议入门(二)

(接上文)七、一个小结先对前面的内容,做一个小结。我们已经知道,网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间的通信。数据包的结构,基本上是下面这样:发送这个包,需要知道两个地址:* 对方的MAC地址* 对方的IP地址有了这两个地址,数据包才能准确送到接收者手中。但是,前面说过,MAC地址有局限性,如果两台电脑不在同一个子网络,...

2020-04-02 19:55:28 76

空空如也

空空如也

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

TA关注的人

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