
Java
a坤
这个作者很懒,什么都没留下…
展开
-
SSH和SSM两个框架区别
原文:https://blog.youkuaiyun.com/horero/article/details/54236833本人使用过SSH框架一段时间,最后在优化项目的时候决定使用SSM框架,这两种框架的一些浅显的区别我在这里说下:1.SSH框架是Struct+Spring+Hibernate而SSM是指的Spring-MVC+Spring+MyBatis,光从这两个缩写就可以看出来,如果比较两者的...转载 2018-11-14 11:55:52 · 228 阅读 · 0 评论 -
并行和并发的区别
并发,是在同一个cpu上同时(不是真正的同时,而是看来是同时,因为cpu要在多个程序间切换)运行多个程序。并行,是每个cpu运行一个程序。打个比方,并发,就像一个人(cpu)喂2个孩子(程序),轮换着每人喂一口,表面上两个孩子都在吃饭。并行,就是2个人喂2个孩子,两个孩子也同时在吃饭。...原创 2019-04-07 21:26:56 · 165 阅读 · 0 评论 -
线程 && 进程
1、进程进程是指运行中的应用程序,每一个进程都有自己独立的内存空间。一个应用程序可以同时启动多个进程。例如对于IE浏览器程序,每打开一个IE浏览器窗口,就启动了一个新的进程。2、线程是指进程中的一个执行流程,有时也称为执行场景。一个进程可以由多个线程组成,即一个进程中可以同时运行多个不同的线程,它们分别执行不同的任务。3、线程和进程的主要区别在于:每一个进程都需要操作系统为其分配独立的...原创 2019-04-07 22:57:10 · 163 阅读 · 0 评论 -
Thread类的sleep()方法和对象的wait()区别
概括:1. sleep()方法是线程类Thread的静态方法,调用该方法使线程暂停执行指定的时间,将CPU让给其他线程,并不释放所持有的对象锁,休眠时间结束后线程回到就绪状态。2. wait()是Object类的方法,调用wait()方法,线程释放所持有的对象锁,进入等待池中,只有调用notify()方法(或者notifyAll()方法),才能唤醒等待池中的线程进入等锁池,若线程获得对象的...转载 2019-04-08 17:40:11 · 1510 阅读 · 0 评论 -
什么是死锁以及避免死锁
一、定义 线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行。当线程进入对象的synchronized代码块时,便占有了资源,直到它退出该代码块或者调用wait方法,才释放资源,在此期间,其他线程将不能进入该代码块。当线程互相持有对方所需要的资源时,会互相等待对方释放资源,如果线程都不主动释放所占有的资源,将产生死锁。当然死锁的产生是必须要满...原创 2019-04-09 06:56:23 · 351 阅读 · 0 评论 -
java-序列化以及反序列化
对象序列化是一个用于将对象状态转换为字节流的过程,可以将其保存到磁盘文件中或通过网络发送到任何其他程序;从字节流创建对象的相反的过程称为反序列化。而创建的字节流是与平台无关的,在一个平台上序列化的对象可以在不同的平台上反序列化。Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。将序...转载 2019-04-09 10:15:02 · 261 阅读 · 0 评论 -
MyBatis-演变过程
1.JDBC怎么演变到Mybatis的渐变过程我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤:(1)加载JDBC驱动(2)建立并获取数据库连接(3)创建JDBC Statements对象(4)设置SQL语句的传入参数(5)执行SQL语句并获得查询结果(6)对查询结果进行转换处理并将处理结果返回(7)...转载 2019-04-03 14:05:44 · 343 阅读 · 0 评论 -
Spring---七大核心模块
核心容器(Spring Core) 核心容器提供Spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean,它是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。应用上下文(Spring Context) Sprin...转载 2019-04-09 14:35:28 · 201 阅读 · 0 评论 -
java-事务定义以及分类
一,什么是事务就是一组操作数据库的动作集合,事务是现代数据库理论中的核心概念之一。如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务。当所有的步骤像一个操作一样被完整地执行,我们称该事务被提交。由于其中的一部分或多步执行失败,导致没有步骤被提交,则事务必须回滚到最初的系统状态。二,为什么用用到事务假如你有一个数据库操作,需要同时插入数据到多张表中,需要统一的进行...原创 2019-04-03 18:13:44 · 1840 阅读 · 0 评论 -
java内存模型
为什么要有内存模型在介绍Java内存模型之前,先来看一下到底什么是计算机内存模型,然后再来看Java内存模型在计算机内存模型的基础上做了哪些事情。要说计算机的内存模型,就要说一下一段古老的历史,看一下为什么要有内存模型。内存模型,英文名Memory Model,他是一个很老的老古董了。他是与计算机硬件有关的一个概念。那么我先给你介绍下他和硬件到底有啥关系。CPU和缓存一致性我们应该...转载 2019-05-14 17:17:21 · 183 阅读 · 0 评论 -
Java锁的可重入性(Reentrancy)
java锁的可重入性机制可以解决下面这个问题,直接上代码:public class Demo1 { public synchronized void functionA(){ System.out.println("iAmFunctionA"); functionB(); } public synchronized void funct...原创 2019-05-10 14:18:41 · 1495 阅读 · 0 评论 -
GC以及堆,栈的简述
堆,栈都是java用来在RAM中存放数据的地方一、堆(1)Java的堆是一个运行时数据区,存储的是数组和对象(其实数组就是对象),凡是new建立的都是在堆中,堆中存放的都是实体(对象),实体用于封装数据,而且是封装多个(实体的多个属性),如果一个数据消失,这个实体也没有消失,还可以用,所以堆是不会随时释放的,但是栈不一样,栈里存放的都是单个变量,变量被释放了,那就没有了。堆里的实体虽然不会...原创 2019-07-12 17:55:14 · 743 阅读 · 0 评论 -
GC工作机制概述
GC如其名,就是垃圾收集,当然这里仅就内存而言。Garbage Collector(垃圾收集器)以应用程序的root为基础,遍历应用程序在Heap(堆)上动态分配的所有对象,通过识别它们是否被引用来确定哪些对象是已经死亡的、哪些仍需要被使用。已经不再被应用程序的root或者别的对象所引用的对象就是已经死亡的对象,即所谓的垃圾,需要被回收(回收的是该对象占用的内存空间)。这就是GC工作的原理。为了实...转载 2019-07-12 22:27:05 · 975 阅读 · 0 评论 -
java-确保集合不能被修改
转自:https://www.jianshu.com/p/89e776373d89在公司接触到Collections.unmodifiableList(List<? extends T> list)) 觉得用法挺特殊的,所以学习了下,简单而言,看名字就知道,将参数中的List返回一个不可修改的List.觉得以下这篇文章写得很好,说 明了它的应用场景。在《重构——改善既有代码的...转载 2019-04-07 17:25:38 · 2474 阅读 · 0 评论 -
Java 集合 类图
MapCollection:包括 List 和 Set线程安全(Thread-safe)的集合对象:Vector 线程安全: HashTable 线程安全: StringBuffer 线程安全非线程安全的集合对象;ArrayList : LinkedList: HashMap: HashSet: TreeMap: TreeSet: StringBulide...原创 2019-04-07 16:58:59 · 280 阅读 · 0 评论 -
linux下jdk1.8的安装与配置
一、jdk的下载https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html二、解压下载的压缩包 tar -zxvf jdk-8u191-linux-x64.tar.gz三、配置环境变量vim /etc/profile # set Java environment...原创 2018-12-27 14:12:57 · 175 阅读 · 0 评论 -
JDK,JVM,JRE
JDK:JDK是Java Development Kit的缩写,是Java的开发工具包,主要包含了各种类库和工具;它不仅提供了Java程序运行所需的JRE,还提供了一系列的编译,运行等工具,如javac,java,javaw等;JRE:JRE (Java Runtime Environment)只是Java程序的运行环境,它最核心的内容就是JVM(Java虚拟机)及核心类库。J...原创 2019-04-04 10:31:37 · 174 阅读 · 0 评论 -
Java中equals和==的区别
一,首先介绍一下Java的数据类型分类:基本数据类型和引用数据类型基本数据类型:byte,short,char,int,long,float,double,boolean;他们之间的比较,应用双等号(==),比较的是他们的值。引用数据类型:类类型,接口类型,数据类型;当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址(确切的说,是堆内存地址)二,equals()方法介...原创 2019-04-04 11:28:20 · 188 阅读 · 0 评论 -
java-hashcode以及和equals的关系
1.hash和hash表是什么: Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。...转载 2019-04-04 14:47:45 · 289 阅读 · 0 评论 -
java-final用法
在java中,final关键字的含义在不同的场景下有细微的差别,但总体上来说,它指的是“这是不可变的”。下面,我们来讲final的四种主要用法。1.修饰数据在编写程序时,我们经常需要说明一个数据是不可变的,我们成为常量。在java中,用final关键字修饰的变量,只能进行一次赋值操作,并且在生存期内不可以改变它的值。更重要的是,final会告诉编译器,这个数据是不会修改的,那么编译器就可能...转载 2019-04-04 15:01:47 · 211 阅读 · 0 评论 -
java-抽象类vs接口
一. 抽象类和接口的相同点:1、代表系统的抽象层;2、都不能被实例化;3、都能包含抽象方法。这些抽象方法用于描述系统能提供哪些服务,但不必提供具体的实现;二、抽象类和接口主要的两个区别:1、在抽象类中可以为部分方法提供默认的实现,从而避免在子类中重复实现它们,提高代码的可重用性,这是抽象类的优势所在;而接口中只能包含抽象方法;2、一个类只能继承一个直接的父类,这个父类有可能...原创 2019-04-06 15:37:24 · 140 阅读 · 0 评论 -
字节流&&字符流
转自:连接字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如下图所示:InputStream 和OutputStream,两个是为字节流设计的,主要用来处理字节或二进制对象,Reader和 Writer.两个是为字符流(一个字符占...转载 2019-04-06 22:20:06 · 199 阅读 · 0 评论 -
java-ArrayList,LinkedList,Vector的区别
List接口一共有三个实现类,分别是ArrayList、Vector和LinkedList。List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。3个具体实现类的相关区别如下:1. ArrayList: 代表长度可变的数组。允许对元素进行快速的随机访问,当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、移动、代价比较高,速度较慢;2.Vector与Arr...原创 2019-04-07 07:37:46 · 165 阅读 · 0 评论 -
java-java集合
Set,List,Map的区别原创 2019-04-07 08:01:20 · 127 阅读 · 0 评论 -
HashMap和Hashtable区别
HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java...原创 2019-04-07 12:42:33 · 152 阅读 · 0 评论 -
Java中HashMap的实现原理
转自:https://www.cnblogs.com/yuanblog/p/4441017.html一、Java中的hashCode和equals1、关于hashCodehashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的 如果两个对象相同,就是适用于equals(java.lang.Obje...转载 2019-04-07 15:54:58 · 162 阅读 · 0 评论 -
java中Array和ArrayList区别
(1)ArrayList是Array的复杂版本ArrayList内部封装了一个Object类型的数组,从一般的意义来说,它和数组没有本质的差别,甚至于ArrayList的许多方法,如Index、IndexOf、Contains、Sort等都是在内部数组的基础上直接调用Array的对应方法。(2)存储的数据类型ArrayList却只能包含对象类型,而Array数组可以包含基本类型和对象类...原创 2019-04-07 16:34:12 · 379 阅读 · 0 评论 -
Java语言跨平台和JVM的理解
1、什么是平台Java是可以跨平台的编程语言,那我们首先得知道什么是平台,我们把CPU处理器与操作系统的整体叫平台。CPU大家都知道,如果计算机是人,那CPU就是人的大脑,它既负责思维运算,又负责身体各部件的命令控制。CPU的种类很多,除去我们熟知的Intel与AMD外,还有比如上面说到的SUN的Sparc,比如IBM的PowerPC等等,这些各个公司生产的CPU使用或相同或不同的指令集。指...转载 2019-07-12 23:43:32 · 345 阅读 · 0 评论