自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 说一说Spring经典面试题和自己的理解

本文参照了一部分codeSheep公众号的《Spring经典面试题汇总》,还有的就是我一部分的个人见解(用的大白话),如有不足,请指正,开始!1.2. 什么是 Spring Framework?这个就是个纯概念的题目,感觉说自己的理解反而显得零碎,不专业术语,我直接用书本式的概念:Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。它是轻量级、松散耦合的。它具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序开发提供了一个有凝聚力的框架。它可以集成其他框架,如 Stru

2020-06-13 15:37:03 450

原创 Redis缓存工具的基本使用

前言这边主要说下5种类型的数据结构,以及基本的使用语法、如何持久化、使用场景。正文概念: redis是一款高性能的NOSQL系列的非关系型数据库Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s ,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:1) 字符串类型 string2) 哈希类型 hash3)

2020-06-12 13:14:36 248

转载 详解数据库的优化、底层原理、面试问题

今天上博客看了一篇超级详细的关于mysql的数据库优化、原理方面的文章,算了,这应该是全网最全了吧,转载 了作者:ThinkWon链接:MySQL数据库面试题(2020最新版)

2020-06-09 13:09:41 289

原创 Cookie和Session的区别

Cookie和Session的基本概念就不说了,这边说下这二者的区别。Cookie和Session的区别session存储在服务器端内存中(我觉得是在内存中,有的说实在文件中),当访问增多时会占用服务器的性能,它的存活时间在tomcat下默认是30分钟, sessionId存在于客户端的cookie中,cookie存储在用户本地(浏览器)中,这个是在setMaxAge(-1)的情况下,默认就是-1浏览器关闭即销毁,如果setMaxAge(正数)则将cookie数据写到硬盘中,持久化存储,并指定coo

2020-06-09 10:59:20 146

原创 Java数据库之要点概述

SQL分类DDL(Data Defnition Language):数据定义语言,用来定义数据库对象(数据库database、表table、列column等),关键字:create、drop、alter等;DML(Data Manipution Language):数据操作语言,用来对数据库表的数据进行增删改,关键字:insert,update,delete等;DQL(Data Query Language):数据库查询语言,用来查询数据库表的记录(数据),关键字:select、where等;DC

2020-06-08 23:40:43 115

原创 Linux常用的操作文件以及查看后台进程的命令

ifconfig//显示Linux的IP地址pwd//当前目录~ //代表不同的目录,该符号代表root文件目录/ //代表根目录(常用)ls(list) //显示当前文件下的文件ls -a(all)//显示当前文件下的所有文件(包括隐藏文件以“.”开头)ls -l//简写 ll 显示当前文件夹下可见文件的详细信息(权限,内存…)如果只想查看文件的名称,而且如果显示文件的详细信息的话可能造成当前屏幕装不下,那就ls吧,主要看文件名称。(常用)cd Documents(目录)//进哪个

2020-06-07 22:36:59 610

原创 Java进阶之单元测试、反射、注解

Junit单元测试测试分类:1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。2. 白盒测试:需要写代码的。关注程序具体的执行流程。测试就是对所完成功能的校验,查看功能是否有缺陷有漏洞。在工作中,每次做完功能后都要进行测试,测试通过才可以结束该功能的编写。测试是开发中很重要的一部分。测试前提进行单元测试时,一定先要引入Junit包才可以使用。并且@Test该注解必须在方法名上;@BeforeClass:针对所有测试,只执行一次,且必须为static void@Before:

2020-06-05 13:14:36 136

原创 Java进阶之Stream流

说到Stream流就让人想到I/O流,可谁又规定“流”就一定是I/O流呢?在Java 8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,这个Stream流可以解决目前集合存在的弊端。这个Stream流可谓十分强大,你可能不知道他强在哪里,那是因为你没有写过接下来一段代码,让你体会没有它之前,操作集合之困难,你会感叹的。题目现在有两个 ArrayList 集合存储队伍当中的多个成员姓名,要求使用传统的for循环(或增强for循环)依次进行以下若干操作步骤:第一个队伍只要名

2020-06-05 11:03:17 145

原创 Java进阶之网络编程、TCP、UDP、三次握手

软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。网络通信协议网络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。这就好比在道路中行驶的汽车一定要遵守交通规则一样,协议中对数据的传输

2020-06-04 23:40:57 173

原创 Java进阶之I/O流

I / O定义:这是一种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input和输出output,即流向内存是输入流,流出内存的是输出流,输入即读取数据,输出即写出数据。字节流(一切皆为字节)一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都是一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。直接上代码,基本就是读写,只不过操作文本文件的时候

2020-06-04 22:51:05 111

原创 Java进阶之File类、递归

File类、递归java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。递归指当前方法内调用自己的这种现象,一般的循环不建议使用递归,效率低,每一次方法的执行都会开辟一个栈空间,不过在算法里面倒是蛮有用的,递归回溯、排序,是一种以空间换时间的方法。不是很难,可以自己写构造个file对象,然后尝试尝试它的一些方法,方法的名字都很好理解,不多说直接上代码,演示下常用的方法以及怎么配合递归遍历到指定文件夹下的所有文件。public class Review1 {

2020-06-04 17:03:36 101

原创 Java进阶之Lambda表达式、函数式编程

Lambda表达式函数式编程思想概述(java8产物):强调做什么,而不是以什么形式去做。面向对象的思想:做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情。函数式编程思想:只要能获取结果,谁去做的,怎么做的都不重要,重视的是结果,而不是过程。// 写一个函数式接口public interface Cook { void makefood();}public class Review1 { public static void main(Strin

2020-06-04 16:02:14 137

原创 Java进阶之多线程常见面试题

下面的所有面试题均参考自CodeSheep的微信公众号多线程有什么用?发挥多核CPU的优势现在的电脑有双核、4核、8核之类的,如果是单线程的程序,在 双核系统上就浪费了50%的CPU,在4核上就浪费了75%,所以说多线程的设计是为了充分利用多核CPU。防止数据的阻塞单线程程序执行不一定比多线程程序慢,相反,多线程程序在单核CPU上由于频繁的执行上下文的切换,反而导致程序执行效率低,那为什么还要设计成多线程呢?为了防止数据的阻塞,一个下载的操作,如果其中一条线程阻塞了,还有别的线程,照样可以完

2020-06-04 12:23:52 141

原创 Java进阶之等待唤醒机制、线程池

等待唤醒机制这是多个线程间的一种协作机制,就是在一个线程进行了规定操作后,就进入等待状态(wait),等待其他线程执行完他们的指定代码后再将其唤醒(notify);在有多个线程进行等待时,如果需要,可以使用notifyAll()来唤醒所有的等待线程。wait / notify 就是线程间的一种协作机制。wait:线程不再活动,不再参与调度,进入 wait set 中,因此不会浪费 CPU 资源,也不会去竞争锁了,这时的线程状态即是 WAITING。它还要等着别的线程执行一个特别的动作,也即是“通知(

2020-06-03 22:36:19 154

原创 Java进阶之多线程Thread、Runnable

进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程,从创建、运行到消亡的过程。线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也成为多线程程序。简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程。线程调度:分时调度所有线程轮流使用CPU的使用权,平均分配每个线程占用

2020-06-03 20:51:53 105

原创 Java进阶之浅析Map集合

Map集合:Collection接口:定义了单列集合规范,每次存储一个元素、单个元素;Map接口:定义了双列集合的规范,Map<K,V> 其中K代表键的类型,V代表值得类型,每次存储一对元素。特点:Map中的集合不能包含重复的键,值可以重复,也就是键是唯一的。键值允许为null默认初始值大小为16,每次扩容为原数组的2倍Map常用子类HashMap,LinkedHashMapHashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需

2020-06-03 16:15:26 98

原创 Java进阶之浅析List、Set集合

List集合List接口有三个子类实现了它,分别是Vector、ArrayList、LinkedListVector和ArrayList一样底层是数组实现,只不过它是线程同步的 ,我看了下源码,它好像只有clear()这个方法没有加synchronized关键字,其余的方法都保证线程同步了,线程安全,效率比较低,线程工作起来要一个接一个获取锁,排队执行任务。线程安全,效率低由于底层是由数组实现的,所以元素增删慢、查找快元素存取有序,有索引可以存放null值以及重复的值 pub

2020-06-03 14:45:52 141

原创 Java进阶之List、Set集合

前言:接下来就到了JavaSE最重要的集合了,后面还有一个同样重要的多线程,基本上这两个算是JavaSE里蛮有分量的两个,知识点重要同时面试也是问的比较多的,面试题的话我会下一篇专门出一章,争取罗列的全面一点,这一章就简单的说说各个数据结构的特点、方法。常见的数据结构:栈、队列、数组、链表、红黑树栈(stack)栈,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一段进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。特点:先进后出,栈的入口、出口都是栈的顶端位置。压栈:存

2020-06-03 00:16:07 104

原创 Java进阶之Collection、泛型要点讲解

前言:这一章先不讲各个集合底层的一些原理,先将Collection这个对象存在哪些方法都尝试一遍。Collection public static void main(String[] args) { Collection<Integer> collection = new ArrayList<>(16); collection.add(1); Collections.addAll(collection, 2,3,4,5,6

2020-06-02 20:50:18 135

原创 Java进阶之常用API

Objects类在JDK7添加了一个Objects工具类,它提供了一些方法来操作对象,它由一些静态的实用方法组成,这些方法是null-save(空指针安全的)或null-tolerant(容忍空指针的),用于计算对象的hashcode、返回对象的字符串表示形式、比较两个对象。 public static void main(String[] args) { String a = "a"; String b = "b"; System.out.prin

2020-06-02 16:57:12 160

原创 Java基础之常见基础面试题解析

== 和 equals 的区别是什么?在没有重写equals的情况下,二者没有区别,因为equals这个方法的底层代码也是用==来比较的。==:比较的是内存地址,如果两个基本数据类型比较,则比较的是两者字面上的值是否相同;如果是引用数据类型,则比较的是两者是否指向同一内存地址;equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况:情况1:类没有覆盖 equals() 方法。则通过 equals() 比较该类的两个对象时,等价于通过“==”比较这两个对象。情况2:类覆盖了

2020-06-02 14:16:02 67

原创 Java基础之final、内部类

final:为了避免子类随意更改父类的内容,Java提供了final关键字,用于修饰不可改变的内容。当final修饰:类:不可以被继承方法:不可以被重写变量:值不可以被更改注意事项:引用类型的局部变量,被final修饰后,只能指向一个对象,后续不可以再更改指向,但是不影响对象内部的成员变量值的修改。成员变量,成员变量有两种初始化的方式:// 显式初始化public class User { final String USERNAME = "张三"; private int a

2020-06-02 12:22:33 290

原创 Java基础之接口、多态以及接口和抽象类的区别

接口这里面主要涉及一个版本更新带来的静态方法、默认方法、私有方法,先说概念。概念:接口是Java语言中的一种引用类型,是方法的集合。如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法。JDK1.7及之前是 只有抽象方法JDK1.8 新增默认方法(default)以及静态方法(static)上述的静态和默认方法都可以有方法体,但是只有默认方法可以被继承使用,而静态方法是属于接口的,不可以被子类使用。JDK9 新增私有方法(private)如果

2020-06-02 11:02:40 656

原创 Java基础之继承、抽象类

继承概念:就是子类继承父类的属性和方法,使得子类对象具有与父类相同的属性、相同的行为,子类可以直接访问父类中非私有的属性和行为。好处:提高代码的复用性类与类之间产生了关系,是多态的前提。在Java中定义一个不做事且没有参数的构造方法的作用?...

2020-06-02 08:49:38 437

原创 Java基础之static详解

知识点汇总static的作用:创建属于该类的成员属性或者方法,而不是属于该类的对象的,以致于可以在不创建该类的实例情况下,调用相应的方法;被static修饰的成员变量、方法被该类的实例对象所共享;随着类的加载而加载,优先于对象存在,而且只有在内存中加载一次,这样有利于优化程序的性能,避免重复的加载一些资源;在static方法中,不能使用this关键字,因为它不是属于哪个对象的;静态的方法只能访问静态的方法或者变量,非静态的既可以访问静态的也可以访问非静态的变量、方法。应用场景:一些只

2020-06-01 21:38:53 142

原创 Java基础之String类、Arrays类、Math类

String类字符型常量和字符串常量的区别?字符是用单引号引起来的,而字符串是若干个字符组成的,字符串底层还是字符数组。字符可以看作是整型数字参与运算,其值为ASCII码表对应的数值,而字符串不可以参与运算。字符和字符串占用的内存空间不一样。什么是字符串常量池?字符串常量池位于堆内存中,用来存储字符串常量,提高内存的使用率,避免为同一字符串重复开辟内存空间。在创建一个字符串常量时,JVM会首先检查常量池是否有该常量,如果有则直接返回,如果没有则实例化一个字符串常量然后返回。

2020-06-01 20:35:54 283

原创 Java基础之常用的API

Scanner类 Scanner s = new Scanner(System.in);// 从控制台获取 String str = s.next();// 获取输出的字符串 int a = s.nextInt(); // 获取输出的数字Random类 Random r = new Random(); int a = r.nextInt(10)+1;// 表示生成一个[0,10)的随机整数,加上1就包括10了。

2020-06-01 17:10:30 86

原创 Java基础之类与对象、封装、this、super

面向对象概念:面向对象它区别于面向过程,强调的是通过调用对象的行为来实现功能,而不是自己一步步的去操作实现。特点:面向对象思想是一种更符合我们思考习惯的思想,它可以将复杂的事情简单化,并将我们从执行者变成一个指挥者,其实面向对象的底层还是面向过程,只不过这种思想将事物模型化了,一个事物就好比一个盒子,里面有属性、方法,我只需要来调用这个模型去解决问题即可,至于里面的具体过程是如何实现的,无须关心。面向对象和面向过程各自的优缺点面向过程优点:比面向对象性能高,因为它省去了对象实例化的一个过程,在有些

2020-06-01 16:31:43 112

原创 Java基础之数组

概念:数组就是存储数据长度固定、数据类型一致的容器。JVM内存划分:寄存器:给CPU使用,和我们开发无关;本地方法栈:JVM在使用操作系统功能的时候使用,和我们开发无关;方法区:存在可以运行的class文件,以及存储类的方法;堆内存:存储对象或者数组,new出来的对象都存储在堆内存;方法栈:方法运行时使用的内存,比如main方法运行,进入方法栈中执行。一个程序执行的流程:public static void main(String[] args) { int[] arr = new int

2020-06-01 14:57:25 80

原创 Java基础之Idea工具的快捷键以及Java方法

知识点汇总快捷键Alt+Enter 导入包,自动修正Ctrl+Y 删除光标所在行Ctrl+D 复制光标所在行的内容,插入光标位置下面Ctrl+Alt+L 格式化代码Ctrl+/ 单行注释Ctrl+Shift+/ 自动生成代码,toString,get,set等方法Alt+Shift+上下箭头 移动当前代码行方法方法的重载和方法的重写:方法的重载和重写都是实现多态的方法,只不过前者是编译时的多态,后者是运行时的多态。重载: 发生在同一个类中

2020-06-01 13:11:46 111

原创 Java基础之流程控制语句要点

知识点汇总流程控制语句有以下几种ifif … elseswitchforwhiledo…while这些基本的语法就不说了,说几个要点。switch() 可以接收的数据类型byte字节类型short短整型int整型String字符串char字符就以上这几种,数字类型里面记住long类型是不可以的,还有每个case语句都加break。for和while的小区别for控制条件语句所控制的那个变量,在for循环结束后,就不能再访问到了;而while循环结束还可以继续使用,

2020-06-01 12:30:17 98

原创 Java基础之数据类型转换

知识点汇总Java程序要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。自动类型转换:将取值范围小的类型自动提升为取值范围大的类型。int a = 1;byte b = 2;byte c = a + b;// 报错,类型不匹配在最后一个运算中,a+b的结果为int类型,取值范围大于用于接收的byte类型,所以报错。强制转换:将取值范围大的类型强制转换为取值范围小的类型。int a = (int)1.5;short s = 1;s = s +

2020-06-01 11:39:59 71

原创 Java基础之入门、变量

知识点汇总:每一个0或者1,叫做一个bit(比特);字节是我们常见的计算机中最小存储单元。计算机存储任何的数据 ,都是以字节的形式存储8个bit表示为1个字节,写成1byte或者1B;常见的DOS命令(win+r打开终端)盘符切换命令: D:或者C:进入相应硬盘查看当前文件夹: dir进入文件夹命令: cd文件夹名退出文件夹命令:cd …退出到磁盘根目录:cd \(win10)清屏:clsJava虚拟机概念:运行所有jaca程序的假想计算机,是java程序的运行环境

2020-06-01 10:33:40 76

原创 Bootstrap的学习总结

入门之前看了Bootstrap 3版本的,这次再回顾的时候没想到出到v4.4版本了,于是又重新看了一遍。这次更新好像取消了列的一个“推拉“操作,col-*-push-*,col-*-pull-*;然后列的最小单位也变了,不再是从xs开始的,而是从sm开始的,上限从原本的lg变成了xl,几个断点的数字是要记住的;还增加了很多预定义的类,比如ml-3,px-3这个m呢就是margin的简写,p也同理,l就是left的意思,x就是x轴方向,两边。导航栏以前的反色nav-inverse似乎也不好用了,现

2020-06-01 01:09:32 554

原创 JQuery的学习总结

JQuery选择器操作元素的方法css样式的操作事件效果方法ajax零碎的一些知识点选择器层级选择器$(“m n”) 后代选择器,选择m元素内部后代名称为n的元素$(“m~n”) 兄弟选择器,选择m元素后所有的同级n元素伪类选择器:not() 选择器选取除了指定元素以外的所有元素。:odd 选择器选取带有奇数索引号的每个元素(比如:1、3、5 等等)。索引号从 0 开始。:even 选择器选取带有偶数索引号的每个元素(比如:2、4、6 等等)。索引号从 0 开

2020-05-31 00:48:59 110

原创 JS的学习总结

前言JS的内容要想全面的总结的话,就现在的水平还不够,本文就对我个人印象比较深刻、比较重要的知识点进行一个概述。JS数组的操作DOM节点的操作节点的获取节点的增删节点属性的获取、设置、删除JS变量正则表达式字符串常用的方法window对象常用的方法事件零碎的一些知识点Js的数组定义一个数组var arr = [1,2,3];js中的数组不同于java中的数组,它更像java中的集合,因为js中数组的长度是可变的。数组元素的常用方法

2020-05-30 22:40:42 170

原创 对于学习HTML以及CSS的总结

htmlhtml的标签有很多,我感觉对于我而言记住这么多标签,可能性是比较低的。记住那些常用的应该就够了,毕竟后期开发项目的时候应该不可能从一个个最基本的标签开始写起,应该是使用的模板类型的ui框架,但如果在其基础上做细微的修改,应该也要有能力做到。html其实没什么好总结的,写了也有一些页面了,写的一个过程就是构思 (整个页面分成几个部分,几个模块)-------选择相应的标签-------写内容-------写样式-------打开浏览器f12不断微调-------完成说几个技术点:盒子模型

2020-05-29 23:09:48 152

原创 java包装类练习

选择题CCBCDCBAA编程题public class Test3 { public static void main(String[] args) { int score=100; Integer score1=new Integer(score); double score2=score1; long s...

2020-04-29 21:06:50 219

原创 java异常练习

选择题ACDBBBDCDC10.B

2020-04-28 13:28:30 108

原创 接口练习

选择题DCBCA编程题//创建接口public interface IFly{ void fly();}public class Plane implements IFly{ public void fly(){ System.out.println("飞机在天上飞"); }}public class Bird implements IFly{ publ...

2020-04-23 11:37:08 137

空空如也

空空如也

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

TA关注的人

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