- 博客(112)
- 收藏
- 关注
原创 工厂设计模式
为什么要使用工厂设计模式呢?答:实现对象创建的统一管理。如果不使用工厂设计模式,那么就需要客户端自己new 对象,在客户端new 对象是一种硬编码,如果客户端有n多地方都new 对象了,一旦这个对象做了修改,你需要改n个地方。但是采用了工厂设计模式之后,对对象的创建做了集中管理,不管对象怎么改,不管又有多少地方使用了该对象,我只需要改一处地方就可以了。 隐藏对象创建的具体细节。很多情况...
2018-04-29 23:18:37 199
原创 设计模式知识点总结
什么是设计模式?答:Christopher Alexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。” 简单来讲,设计模式就是经验的总结。 设计模式的分类(23种)?答:创建型模式(5种):单例模式、抽象工厂模式、工厂方法模式、原型模式、建造者模式。 结构型模式(7种):代理模式、适配...
2018-04-29 20:50:46 449
原创 深入理解Java虚拟机(改进版)
深入理解Java虚拟机Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。1.JVM是什么?JRE是什么?JDK是什么?三者有什么关系?答:JVM:Java虚拟机JRE:Java Runtime Environment,Java 运行环境。如果只想运行一个开发好的java程序,只需要安装一个JRE就行。JDK:Java ...
2020-11-27 18:46:03 196
原创 ArrayList知识点总结2
ArrayList集合知识点总结ArrayList是一个动态数组,查询快、增删慢。ArrayList是线程不安全的,运行效率快,允许元素为null。1.ArrayList与LinkedList的区别有哪些?答:ArrayList的底层数据结构为数组,增删慢、查询快,线程不安全,效率高。LinkedList的底层数据结构为链表,增删快、查询慢,线程不安全,效率高。2.ArrayList与Vect...
2020-11-27 18:45:44 215
原创 HashMap知识点总结2
HashMap集合知识点总结1.HashMap的原理,内部数据结构?答:底层数据结构为哈希表(数组+链表),当链表过长会将链表转成红黑树以实现O(logN)时间复杂度内查找。2.讲一下HashMap中put方法的过程?答:(1)调key的hashCode()方法计算key的哈希值,然后根据映射关系计算数组下标(2)如果hash值冲突,调用equal()方法进一步判断key是否已存在若...
2020-11-27 18:45:32 315
原创 mysql中的事务
1.什么是事务?答:对于什么是事务,我并没有找到一个准确的概念。我认为,事务是对数据操作的一种规范,它的目的是为了保证数据的安全性和完整性。尤其在涉及到钱财的业务方面,事务显得尤为重要,例如,银行转账。我们通常会用四个特性来描述事务:ACID,即原子性、一致性、隔离性、持久性。 原子性:事务中的所有操作要么全部成功,要么全部失败,不存在中间态。 一致性:事务中的操作,操作前和操作后,数...
2020-11-27 18:45:22 109
原创 单例设计模式
什么是单例设计模式?答:单例设计模式是一种思想,它属于创建型模式。当在一个系统中要求一个类只能有一个实例对象时,要考虑使用单例设计模式,使用单例设计模式设计的类称为单例类。单例类有三大特点:1.单例类只能有一个实例;2.单例类必须自己创建自己唯一的实例;...
2020-11-27 18:45:08 103
原创 String知识点总结2
字符串知识点总结在Java语言中,字符串起着非常重要的作用,字符串的声明与初始化主要有如下两种情况:1)对于String s1=new String(“abc”)语句与String s2=new String(“abc”)语句,存在两个引用对象s1、s2,两个内容相同的字符串对象”abc”,它们在内存中的地址是不同的。只要用到new总会生成新的对象。2)对于String s1=”abc”语句与St...
2020-11-27 18:44:55 231
原创 TreeSet集合知识点总结
TreeSet集合知识点总结Set集合一大特点是唯一性。Set集合是如何保证元素的唯一性的?答:Set集合保证元素唯一性依赖两个方法:hashCode()和equals()。步骤: 先看hashCode()值是否相同 相同:继续走equals()方法 返回true:说明元素重复,就不添加 返回false:说明元素不重复,就添加到集合 不同:就直接把元素添加到集合TreeSe...
2020-11-27 18:44:41 256
原创 阿里巴巴电话面试总结
阿里巴巴电话面试总结谈一谈你对反射机制的理解。(官方概念)在程序运行状态中,对于任意一个类,都能够知道它的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。(自己的理解)java中,我们要想知道一个类里面有哪些属性和方法,要想创建一个对象并调用对象里面的属性和方法,我们首先要拿到这个类的.jav...
2020-11-27 18:44:19 258 1
原创 深入理解Java虚拟机
1.简介一下JVM的内存机制。答:为了提高程序的效率,JVM中的内存具体划分了如下5个内存空间:栈:存放的是局部变量,以及被调用的方法。当方法被调用时,方法会从方法区进入栈内存中,当方法调用结束时,方法会从栈内存中自动消失。堆:存放的是所有new出来的东西。包括数组、对象及对象中的成员变量,以及对象中方法在方法区中 的地址。方法区:被虚拟机加载的Class文件,常量,静态变量,静态方法,成员方法...
2020-03-07 21:12:55 184
转载 PyCharm入门教程——用户界面导览
JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web开发。通过这篇文章,您可以了解PyCharm用户界面是如何组织的,以帮助您在工作环境中找到自己的方式。当您第一次运行PyCharm或没有打开任何项目时,PyCharm将显示欢迎屏幕,允许快速...
2019-06-09 23:53:35 8759
转载 Kali-linux(基于fcitx输入法框架安装谷歌拼音输入法)
Kali-linux(基于fcitx输入法框架安装谷歌拼音输入法)导读:在这篇文章中,主要谈及如何在Kali-linux上安装谷歌拼音输入法、并且基于fcitx框架。1.按照网上教程操作,遇到的问题打开终端,运行如下命令:apt-get install fcitxapt-get install fcitx-googlepinyinreboot执行完前2个命令之后,一切正常...
2019-06-09 13:35:32 2482
转载 解决eclipse中出现Resource is out of sync with the file system问题
———————————————————————————————————————————————————————————————————在eclipse中搜索时,搜索完之后有时候会弹出错误对话框,错误摘录如下:Resource is out of sync with the file system......分析:有时候因为时间紧迫的原因,所以就没去管它,今天再次遇到它,实在看着不爽...
2019-01-07 16:37:53 389
转载 F:\workspace-maven\e3-manager\e3-manager-interface\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径。)
F:\workspace-maven\e3-manager\e3-manager-interface\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径。)F:\workspace-maven\e3-manager\e3-manager-interface\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径...
2019-01-07 13:53:36 387
转载 错误:Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2
错误:Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2转发:https://blog.csdn.net/sz15732624895/article/details/82151055报错信息: [INFO] -------------------------------------------...
2019-01-05 12:41:15 18644 5
转载 解决maven项目install之后报出Perhaps you are running on a JRE rather than a JDK?
转载:前几天安装了新的eclipse,今天创建了一个maven项目测试下自己写的代码,结果 在install的时候报出了 No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?(大概的意思就是:没有提供编译器的环境,可能你想运行的是一个JRE而不是一个JD...
2019-01-03 21:36:03 298 2
转载 国外的FLAG是指什么?
这个名字大概是3,4年前开始叫的吧,那时大概是指 “Facebook,LinkedIn,Amazon,Google”。 首先这只是咱们中国人自己叫着玩的,而且我也是回国才知道有FLAG这个叫法,所以不算正事。主要是这四家在那个年代是最受北美牛校的毕业生欢迎的四家公司,而微软由于公司规模太大和发展速度放缓等原因稍微要落后一个梯队,所以没有算在里面。比如我认识CMU的校友里面,去微软的很少,基本上在上...
2018-09-22 12:36:16 31239 4
原创 统计文件中单词出现的频次
public class Util{ public static void main(String[] args) throws IOException { //键盘录入指定文件名 Scanner sc = new Scanner(System.in); String fileName = sc.nextLine(); //...
2018-09-12 12:23:24 755
原创 HTTP协议知识点总结
1.描述一下三次握手的过程。答:(1)客户端向服务端发送一个带SYN标志的数据包,请求连接,此时,客户端进入SYN_SEND状态。(2)服务端向客户端返回一个带SYN和ACK标志的数据包,表示同意连接,此时,服务端进入SYN_RCVD状态。(3)客户端向服务端再发送一个带ACK标志的数据包,表示“握手”结束,此时,客户端和服务端都进入ESTABLISHED状态。 2.描述一...
2018-09-11 09:10:18 1148
原创 二叉查找树
package 树; import java.util.Stack; /** * 定义一个结点 */ class Node{ Node left = null; Node right = null; Integer data; public Node(Integer data){ ...
2018-09-09 16:40:45 174
原创 栈
创建一个栈 package 栈; //定义一个结点 class Node{ Node next = null; Integer data; public Node(Integer data){ this.data = data; } } public class Stack { ...
2018-09-09 16:38:04 219
原创 队列
创建一个队列 package 队列; //定义一个结点 class Node{ Node next = null; Integer data; public Node(Integer data){ this.data = data; } } public class Queue {...
2018-09-09 16:30:35 182
原创 链表
package 链表;//定义一个结点class Node{ Node next = null; int data; public Node(int data){ this.data = data; }}public class MyLinkedList { Node head = null;//链表的头结点 /...
2018-09-09 16:21:02 165
原创 排序选择题总结
排序选择题总结常见的排序算法有哪些?其中哪些是稳定的,哪些是不稳定的?答:冒泡排序、选择排序、直接插入排序、希尔排序、归并排序、快速排序、堆排序、基数排序、计数排序。其中,稳定的排序算法有:冒泡排序、直接插入排序、归并排序、基数排序、计数排序。不稳定的排序算法有:选择排序、希尔排序、快速排序、堆排序。 希尔排序、简单选择排序和快速排序是不是稳定的排序算法?答:不...
2018-09-09 16:16:01 4002 1
原创 堆排序
堆排序堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。用简单的公式来描述一下就是:大顶堆:arr[i]>=arr[2i+1] && arr[i]>=arr[2i...
2018-08-13 12:16:38 170
原创 分布式缓存
分布式缓存 分布式缓存常见的解决方案?你们采用哪种?答:Memcached集群和Redis集群(RedisCluster)。我们采用的是RedisCluster。 分布式缓存带来的复杂度问题常见的问题主要包括如下几点:·数据一致性·缓存穿透·缓存雪崩·缓存击穿·缓存高可用 下面逐一介绍分析这些问题以及相应的解决方案。 数据一致性本地数...
2018-08-08 20:03:12 192
原创 Mysql中的事务
数据库本地事务1.什么是事务?答:事务就是作为单个逻辑单元执行的一组操作,要么全成功,要么全失败。2.事务的四大特性?答:ACID。原子性(Atomic):事务是由一个或多个活动所组成的一个工作单元。原子确保事务中的所有操作全部发生或全部不发生。如果所有的活动都成功了,事务也就成功了。如果任意一个活动失败了,整个事务也失败并回滚。一致性(Consistent):一旦事务完成...
2018-08-08 19:54:26 199
原创 HashMap知识点总结(2)
HashMap集合知识点总结众所周知,HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。HashMap数组每一个元素的初始值都是Null。对于HashMap,我们最常使用的是两个方法:Get和Put。Put方法的原理调用Put方法的时候发生了什么呢?比如...
2018-08-03 12:54:55 994
原创 分布式缓存
分布式缓存——RedisCluster RedisCluster是如何确定数据要存在集群中的哪个节点的?答:Redis集群中内置了16384个哈希槽,当需要在Redis集群中放置一个key-value时,redis先对key使用crc16算法算出一个结果,然后把结果对16384求余数,这样每个key都会对应一个编号在0-16383之间的哈希槽,redis会根据节点数量大致均等的将哈希槽映...
2018-08-02 18:25:34 858
原创 阿里巴巴四面
阿里巴巴电话面试总结 谈一谈你对反射机制的理解。(官方概念)在程序运行状态中,对于任意一个类,都能够知道它的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。(自己的理解)java中,我们要想知道一个类里面有哪些属性和方法,要想创建一个对象并调用对象里面的属性和方法,我们首先要拿到这个类的.jav...
2018-08-02 17:54:47 1529
原创 阿里巴巴三面
阿里巴巴蚂蚁金服面试总结讲一下Java中的内存模型。答:Java中的内存模型是一个抽象的概念,分为主内存和工作内存,所有的变量都存在主内存中(局部变量和方法参数除外),每个线程都有一个自己的工作内存,当访问到主内存中的某些变量的时候,会将该变量拷贝一份到自己的工作内存中。当数据从主内存复值到工作内存时,必须出现两个动作:第一,由主内存执行的读(read)操作;第二,由工作内存执行的相应的...
2018-08-02 17:53:44 2311
原创 阿里巴巴二面
阿里巴巴二面总结介绍你做的项目及其中的难点。答:项目:单点登录系统。难点:登录成功后,想在首页上显示登录用户的用户名,首页上通过ajax向单点登录系统发送http请求,请求参数为cookie,根据cookie查询用户信息,以json的格式响应给首页,首页拿到这个用户之后,将其中的用户名获取到,显示在首页上的指定位置。详细步骤如下:使用js从cookie中取token Ajax请...
2018-08-02 17:52:47 1852
原创 阿里巴巴一面
阿里巴巴一面总结基本数据类型有几种?分别是什么?在内存中是怎么分布的?答:8种。byte、short,int、long、char、float、double、boolean。【自我总结】基本数据类型在内存中是怎么分布的?要视情况而定。如果基本数据类型定义在方法中做局部变量,就存放在栈中;如果基本数据类型做成员变量,就存放在堆中;如果基本数据类型做静态成员变量,就存放在方法区中。方法内定...
2018-08-02 17:50:59 394
原创 毕老哥阿里面经
毕老哥阿里面经1.分布式锁问题。(面试官)问:在多线程并发的情况下,如何保证一个代码块在同一时间只能由一个线程访问?(小灰)答:这个简单,可以用[锁]来保证。比如java的synchronized语法以及Reentrantlock类等等。 (面试官)问:OK,这样子可以保证在同一个JVM进程内的多个线程同步执行。如果在分布式的集群环境中,如何保证不同节点的线程同步执行呢?(...
2018-08-02 17:49:21 758
原创 分布式事务
分布式事务 前言分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免,本文就分布式事务来简单聊一下。数据库事务在说分布式事务之前,我们先从数据库事务说起。 数据库事务可能大家都很熟悉,在开发过程中也会经常使用到。但是即使如此,可能对于一些细节问题,很多人仍然不清楚。比如很多人都知道数据库事务的几个特性:...
2018-08-01 21:30:49 285
原创 分布式锁
分布式锁阿里巴巴面试:如何在集群环境下保证线程同步问题?答:利用分布式锁。常见的有Redis分布式锁和Zookeeper分布式锁。下面主要介绍Redis分布式锁。Redis分布式锁实现的三个核心要素为:加锁(setnx)、解锁(del)、锁超时(expire)。为什么要设置锁超时?如果一个得到锁的线程在执行任务的过程中挂掉,来不及显式地释放锁,这块资源将会永远被锁住,别的线程再...
2018-08-01 16:46:18 512
转载 详谈java内存模型
我们一起来讨论讨论java内存模型。理解内存模型对多线程编程无疑是有好处的。java代码是如何跑起来的java代码如何运行我们写的java代码,自己看得懂,然而虚拟机是看不懂的,更不用说直接在机器上跑起来了。要让java代码按照我们的意图跑起来的话,需要以下几个过程。代码转化过程java代码会经过javac编译器编译,转化成class文件,也就是常说的字节码。然后再经过jv...
2018-07-29 20:28:40 203
转载 Spring依赖注入和控制反转的理解
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。一、分享Iteye的开涛对Ioc的精彩讲解 首先要分享的是Iteye的开涛这位技术牛人对Spr...
2018-07-27 20:36:41 11988 3
转载 Spring依赖注入和控制反转讲解
Spring是一个庞大的框架,封装了很多成熟的功能,能够让我们无需重复造轮子;其次,它使用IOC进行依赖管理,利用JAVA的反射机制,将实例的初始化交给Spring,Spring可以通过配置文件管理实例,我们就不用自己初始化实例啦。有人会问 “那我们可以直接使用工厂模式呀。工厂模式也可以管理实例的初始化呀,为什么一定要使用Spring呢?” 这是因为IOC是通过反射机制来实现的。当我们的需求出...
2018-07-27 20:02:21 208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人