自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java架构师视频教程 自助领取

领取方式:关注微信公众号:Java脱口秀 回复 “架构师” 免费领取Java架构师视频教程 Java自学课程。回复“资料” 领取更多Java学习视频教程...

2019-07-10 21:26:08 274

原创 传智播客JavaEE 第168期就业班视频教程 Java自学课程

领取方式:关注微信公众号:Java脱口秀 回复“黑马”免费领取传智播客JavaEE 第168期就业班视频教程 Java自学课程。回复“资料” 领取更多Java学习视频教程...

2019-07-05 21:13:38 1119 2

原创 使用Filezilla与虚拟机实现文件互传的方法

文章的主旨:在Windows10系统下使用Filezilla与虚拟机实现互传(Ubuntu系统)。 1、filezilla的简介:关于filezilla的介绍截取百度百科的介绍。 2、下载安装:在官网https://filezilla-project.org/下载安装包,安装后运行filezilla。3、虚拟机的准...

2019-04-08 21:00:53 10138 3

原创 Java线程之间通信与协作

    在Java多线程情况下,线程之间可能存在执行的先后顺序,那么线程之间是如何实现通信的呢?   join()    当在一个线程中调用了另一个线程的join()方法时,当前线程将会挂起(不是自旋),直到目标线程执行结束。public class JoinClass { private class A extends Thread { @Override...

2018-09-06 15:59:57 285

原创 synchronized 和 ReentrantLock

    Java 提供了两种锁机制来控制多个线程对共享资源的互斥访问,第一个是 JVM 实现的 synchronized,而另一个是 JDK 实现的 ReentrantLock。    synchronized 和 ReentrantLock 的介绍    synchronized:Java语言的关键字,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只...

2018-09-03 21:40:56 210

原创 SpringMVC的工作原理

    SpringMVC是一个基于MVC模型的web框架,它是Spring的框架的一个模块,与Spring可以无需整合进行开发,十分便捷,下面我们来一起看一下SpringMVC的工作原理。    SpringMVC的运行过程:  ①:用户浏览器向前端控制器(DispatcherServlet)发送请求。②:前端控制器(DispatcherServlet)通过xml配置文件、注解向...

2018-08-30 15:50:50 219

原创 Spring中常用的注解及事物的传播特性

在Spring开发中用到了很多注解,好记性不如烂笔头,现在将他们总结一下。一:组件类注解①:@Repository      标注一个DAO组件类②:@Controller        标注一个控制层组件类③:@Service           标注一个Service层组件类④:@Component    标注一个普通的Spring Bean类用法举例@Reposi...

2018-08-29 18:18:20 279

原创 Cookie与Session的区别与联系

    Cookie和Session都是JavaWeb开发中常用的会话跟踪技术,许多网站的记住密码功能,电商网站的购物车功能都是由Cookie或Session实现的。    Cookie    Cookie是HTTP协议的规范之一,用于在服务器与客户端之间传递数据。当服务端收到了客户端的请求进行响应时,服务端通过响应头将Cookie传递给客户端,客户端将Cookie保存起来,当客户端再次访...

2018-08-28 10:35:57 273

原创 HashMap、HashTable、ConcurrentHashMap的区别与联系

    HashMap、HashTable、ConcurrentHashMap是我们Java中常用几种Map,它们各自有着各自的特点,也有着共同的联系,今天我们一起总结回顾一下这三种常用的数据结构。    首先来看一下它们的定义。    HashMap:            继承自AbstractMap,实现了Map、Cloneable、Serializable接口。    ...

2018-08-24 11:23:15 818

原创 在浏览器中访问www.hongxin.com时,发生了什么

    当我们在浏览器地址栏中输入如www.baidu.com时,到底发生了什么?我们直观感受是返回了一个页面,但其中的具体细节是什么呢?    在介绍这个过程之前,我们先把这个过程中所需要的了解的知识点学习一下。URL(统一资源定位符)    我们熟知的url如www.taobao.com,它的全称是统一资源定位符。DNS(域名解析器)    有Local DNS Serve...

2018-08-15 16:33:12 2494

原创 Java 中 synchronized 的实现原理及偏向锁、轻量级锁、自旋锁、公平锁简介

    在多线程编程中,synchronized 一直都是元老级别的存在,很多人都称之为重量级锁。本文来简单介绍synchronized的实现原理,以及为减少获得锁和释放锁所带来的性能损耗而引进的偏向锁与轻量级锁。    Java中使用synchronized来实现同步的基础是什么呢?Java中每一个对象都可以作为锁!        对于普通同步方法,锁是当前实例对象。        ...

2018-08-13 17:49:25 861

原创 排序算法之希尔排序

        希尔排序(Shell's Sort)是由 Donald Shell于1959年提出,它的思想的基础是 插入排序。       在讲解希尔排序之前我们先理解一下什么是逆序对:对于下标i<j ,如果A[i]>A[j] ,则称(i,j)是一对 逆序对(inversion)。        问题:序列{34, 8, 64, 51, 32, 21}中有多少个逆序对? ...

2018-08-13 10:32:45 282

原创 排序算法之选择排序

        选择排序(Selection sort) 是一种非常简单的排序算法,它的主要思想就是,遍历数组,每次找出数组中最小(合适)的元素,放到数组合适的位置。        选择排序十分容易理解,下面就直接提供代码实现:                public static int[] selectSort(int[] arr){ int minIndex=0;...

2018-08-13 10:31:46 140

原创 Java中线程池

    Java中的线程池是我们经常使用的一种并发框架,合理使用线程池能带来三个好处:        第一:降低资源消耗。通过重复利用已经创建的线程降低线程创建和销毁造成的资源消耗。        第二:提高响应速度。任务到达时,可以直接执行而不用等待线程创建。        第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,会大量的消耗系统资源,降低系统稳定性。    ...

2018-07-26 11:05:35 166

原创 Java内存模型与线程

    多任务处理在现代计算机操作系统中几乎已经是一项必备的技能了,在许多情况下,让计算机同时做几件事,不仅仅是因为计算机的运算能力强大了,还有一个重要原因是计算机的运算速度与他的存储和通信系统的速度差距太大,大量的时间都花在磁盘IO‘网络通信或数据库访问上。如果不希望处理器在大部分时间里都在等待其它资源的状态,就必须使用一些手段把处理器的运算能力压榨出来,而让计算机同时处理几项任务就是最容易想到...

2018-07-20 22:40:00 173

原创 Spring学习---AOP

    AOP是Aspect-Oriented Programing的简称,面向切面编程。    AOP可以说是在OOP上的基础上的扩展,在面向对象编程的过程中,可以很好的组织代码,通过继承关系实现代码复用,但是程序总是会出现一些重复代码(打印日志,安全信息等),而且不方便通过继承的方法将它们管理起来,他们功能重复并且需要用在不同的地方,这时候就需要使用AOP思想,将这些重复的代码抽取出来单独维护...

2018-07-15 16:56:05 155

原创 Spring学习---IoC原理及实现

    看到这篇文章的朋友,应该都对Spring有一定了解,或者有使用过Spring,那应该也听过Spring的两大核心就是IoC和AOP,这篇文章主要来讲解一下什么是IoC及其实现原理。    IoC在平时的讨论中大多数只是一句“控制反转”,那么哪些方面的控制被反转了?这个问题的答案就是依赖对象的获得被反转了,也就是说对象的创建权被Spring容器管理了。    那么这么做有什么好处呢?我们知道...

2018-07-15 16:17:13 226

原创 JVM类加载详解

    我们都知道我们编写的Java文件要想运行,需要先进行javac编译生成字节码文件(.class),那么这个字节码文件是怎么加载到jvm内存中的呢,这就是今天要讲解的类加载过程。    类从被加载到虚拟机内存中开始,到卸载出内存为止,它的生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initial...

2018-07-14 22:34:34 171

原创 JVM类加载器与双亲委派模型详解

     类加载器,主要负责将字节码文件(.class文件)加载到内存中。    从Java虚拟机的角度来讲,类加载器主要分为两种,一种是启动类加载器(Bootstrap ClassLoader),这个类加载器由c++实现,它是Java虚拟机的一部分;另一种是所有其他类加载器,它们由Java语言实现,独立于JVM虚拟机外部,并且全部继承自抽象类Java.lang.ClassLoader。    当...

2018-07-14 21:34:33 5932

原创 JVM内存分配与回收策略

JVM内存的分配与回收策略主要有一下几种:    对象优先在Eden分配:        大多数情况下,对象在新生代Eden区分配,当Eden区域没有足够的空间分配时,虚拟机将发起一次minorGC。    大对象直接进入老年代:        所谓的大对象是指,需要大量连续内存的对象,最典型的就是很长的字符串及数组。在平时应该尽量避免使用大量的“短命大对象”。    长期存活的对象将进入老年代:...

2018-07-13 16:44:05 215

原创 JVM垃圾收集算法与垃圾收集器

        说到GC(Garbage Collection) ,我想Java程序员应该都有所了解,但可能有一大部分初学者仍有些模糊,这篇文章主要从关于GC的三个问题说起:        那些内存需要回收?        什么时候回收?        如何回收?内存回收的区域                                                        关于Jav...

2018-07-13 16:11:27 208

原创 排序算法之之插入排序

今天我们要讲的排序算法是插入排序,插入排序顾名思义就是将待排序的数字插入到合适的位置去。我们来先看一张插入排序的原理图:(图片来自网络) 下面我们来看一下代码实现: public static int[] insertionSort(int[] arr){ int len = arr.length; //数组的长度 for(int i = 1;i<len;i++){ //...

2018-07-12 18:55:56 132

原创 排序算法之冒泡排序

        排序算法是数据结构与算法中重要的一部分,而冒泡排序又是排序算法中最简单的一种。是我们必须要掌握的知识点,今天我们就来学习一下这种最简单的排序算法--冒泡排序        冒泡排序顾名思义,就是遍历数组相邻的数字两两比较,如果无序就进行交换,这种交换遍历一次就会将最大得数或最小的数字移动到数组的末尾,就像吐泡泡一样。下面我们用代码来实现一下:public static int[]...

2018-07-11 10:16:38 208

原创 Java中 final、finally、finalize的区别

final 修饰符        final可以用于控制成员、方法,或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或缺的地位,也是学习Java时必须要知道和掌握的关键字之一。        如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此,一个类不能既被声明为abstract,又被声明为final。将变量或方法声明为fina...

2018-07-10 08:16:44 219

原创 Java中的值传递与引用传递

        相信很多朋友在以往的Java学习过程中,一直对Java参数传递的到底是值还是引用有些模糊,希望通过这篇文章能让大家明白Java的参数传递到底是怎样的。        我们先来看下 thinking in java 一书中对Java参数传递给出的经典解释:        When you are passing primitives into a method,you get a d...

2018-07-09 17:59:33 318

原创 JVM内存区域详解

JVM内存区域简介:JVM虚拟机会在执行Java程序的过程中会把它所管理的内存划分为若干的不同的数据区域。这些区域都有各自的用途,以及创建及销毁的时间,有的区域随着虚拟机的启动而存在,有的区域则依赖用户线程的启动和结束而建立和销毁。Java虚拟机运行时数据区如下图:一:程序计数器(Program Counter Register)        程序计数器是一块较小的内存空间,它可以看作是当前线程...

2018-07-09 09:41:23 241

原创 Java学习笔记----设计模式之六大原则解读

本篇主要内容:设计模式的六大原则介绍一:开闭原则开闭原则的定义: Software entities should be open for extension,but closed for modification.                            一个软件实体如类、模块、方法应该对扩展开放,对修改关闭。一个软件产品,从开发出来到它的生命周期结束都会不可避免地发生变化,我们在...

2018-07-08 14:16:40 205

原创 算法练习---寻找素数(质数)

问题:寻找自然数  m,n之间所有的素数代码如下:/*** 质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。*/public static List<Integer> isPrimeNum(int pre,int last){ List<Integer> nums = new ArrayLi...

2018-07-06 11:11:40 1170

原创 数据结构与算法学习笔记(二)

主要内容:算法复杂度    在上一篇文章中说到,一个算法是解决某一类问题的步骤的描述,现在来通过几个例子理解一下算法。   选择排序 :实现把n个整数从小到大排序。    思想:在余下未排好序的整数中寻找最小的整数,插入到前面已经排好序的数字后面。    代码实现:public int[] selectSort(int[] array){ //得到数组的长度 int len = array....

2018-07-06 08:56:00 304 1

原创 数据结构与算法学习笔记(一)

   本篇主要内容为数据结构与算法的入门和基本概念的了解      自学Java有了一段时间了,也参加了几个公司的笔试,结果发现,对于校招的同学来说,笔试中对于数据结构与算法的考察还是比较多的,这一系列的博客是对最近学习的数据结构与算法的记录,算是一个小小的读书笔记吧。       数据结构是计算机中存储、组织数据的方式。精心选择的数据结构可以带来最优效率的算法。学习之前先来看几个例子:   1、...

2018-07-05 17:39:09 783

空空如也

空空如也

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

TA关注的人

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