自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

The_flying_pig的博客

layne的博客

  • 博客(60)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

原创 5.OAuth2.0介绍

来源于黑马程序员: 手把手教你精通新版SpringSecurity先说OAuth,OAuth是Open Authorization的简写。OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth是安全的。OAuth2.0是OAuth协议的延续版本,但不向前兼容(即完全废止了OAuth1.0)。假设,A网站是一个打印照片的网站

2025-02-14 13:36:45 1061

原创 4.SpringSecurity在分布式环境下的使用

从分布式认证流程中,我们不难发现,这中间起最关键作用的就是token,token的安全与否,直接关系到系统的 健壮性,这里我们选择使用JWT来实现token的生成和校验。JWT,全称JSON Web Token,官网地址,是一款出色的分布式身份校验方案。可以生成token,也可以解析检验token。**基本原理:**同时生成两把密钥:私钥和公钥,私钥隐秘保存,公钥可以下发给信任客户端私钥加密,持有私钥或公钥才可以解密公钥加密,持有私钥才可解密优点:安全,难以破解缺点。

2025-02-14 13:35:59 1030

原创 3.SpringSecurity在单机环境下使用

编写异常处理器拦截403异常//如果是权限不足异常,则跳转到权限不足页面!//其余的异常都到500页面!再次测试产品列表就可以到自定义异常页面了。

2025-02-14 13:35:20 876

原创 2.SpringSecurity在mvc项目中的使用

从这里我们就可以知道,我们的spring-security.xml需要放到父容器中被保护起来,不能放到子容器中被直接访问说明:SpringSecurity可以通过注解的方式来控制类或者方法的访问权限。注解需要对应的注解支持,若注解放在 controller类中,对应注解支持应该放在mvc配置文件中,因为controller类是有mvc配置文件扫描并创建的,同 理,注解放在service类中,对应注解支持应该放在spring配置文件中。

2025-02-14 13:34:19 782

原创 1.初识SpringSecurity

过滤器是一种典型的AOP思想通过此章节,我们对SpringSecurity工作原理有了一定的认识。但理论千万条,功能第一条,探寻底层,是 为了更好的使用框架。那么,言归正传!到底如何使用自己的页面来实现SpringSecurity的认证操作呢?要完成此功能,首先要有一套 自己的页面!在SpringSecurity主配置文件中指定认证页面配置信息修改认证页面的请求地址再次启动项目后就可以看到自定义的酷炫认证页面了!

2025-02-14 11:55:47 662

原创 17.垃圾回收器

垃圾收集机制是Java的招牌能力,极大地提高了开发效率。这当然也是面试的热点。那么,Java常见的垃圾收集器有哪些?GC垃圾收集器是和JVM一脉相承的,它是和JVM进行搭配使用,在不同的使用场景对应的收集器也是有区别这种垃圾收集器大家了解,现在已经不用串行的了。而且在限定单核cpu才可以用。现在都不是单核的了。对于交互较强的应用而言,这种垃圾收集器是不能接受的。一般在Java web应用程序中是不会采用串行垃圾收集器的。截止JDK1.8,一共有7款不同的垃圾收集器。

2025-02-10 16:40:32 1030

原创 16.垃圾回收相关概念

强引用可以直接访问目标对象。强引用所指向的对象在任何时候都不会被系统回收,虚拟机宁愿抛出OOM异常,也不会回收强引用所指向对象。强引用可能导致内存泄漏。

2025-02-10 13:55:58 814

原创 15.垃圾回收相关算法

总结一句话就是,除了堆空间外的一些结构,比如 虚拟机栈、本地方法栈、方法区、字符串常量池 等地方对堆空间进行引用的,都可以作为GC Roots进行可达性分析除了这些固定的GC Roots集合以外,根据用户所选用的垃圾收集器以及当前回收的内存区域不同,还可以有其他对象“临时性”地加入,共同构成完整GC Roots集合。比如:分代收集和局部回收(PartialGC)。

2025-02-10 13:55:23 903

原创 14.垃圾回收概述

在提到什么是垃圾之前,我们先看下面一张图从上图我们可以很明确的知道,Java 和 C++语言的区别,就在于垃圾收集技术和内存动态分配上,C语言没有垃圾收集技术,需要我们手动的收集。垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。哪些内存需要回收?什么时候回收?如何回收?垃圾收集机制是Java的招牌能力,极大地提高了开发效率。

2025-02-10 11:15:04 685

原创 13.StringTable

总结string的intern()的使用:JDK1.6中,将这个字符串对象尝试放入串池。如果串池中有,则并不会放入。返回已有的串池中的对象的地址如果没有,会把此对象复制一份,放入串池,并返回串池中的对象地址JDK1.7起,将这个字符串对象尝试放入串池。如果串池中有,则并不会放入。返回已有的串池中的对象的地址如果没有,则会把对象的引用地址复制一份,放入串池,并返回串池中的引用地址在JDK6中,在字符串常量池中创建一个字符串 “ab”

2025-02-10 11:06:59 349

原创 12.执行引擎

当Java虚拟机启动时会根据预定义的规范对字节码采用逐行解释的方式执行,将每条字节码文件中的内容“翻译”为对应平台的本地机器指令执行。JIT(Just In Time Compiler)编译器:就是虚拟机将源代码直接编译成和本地机器平台相关的机器语言。一般来讲,JIT编译出来的机器码性能比解释器搞C2编译器启动时长比C1慢,系统稳定执行以后,C2编译器执行速度远快于C1编译器自JDK10起,HotSpot又加入了一个全新的及时编译器:Graal编译器。

2025-02-10 10:21:17 1015

原创 11.直接内存

不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。直接内存是在Java堆外的、直接向系统申请的内存区间。来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存通常,访问直接内存的速度会优于Java堆。即读写性能高。使用下列代码,直接分配本地内存空间。

2025-02-10 09:00:04 350

原创 10.对象实例化内存布局与访问定位

如果没有,那么在双亲委派模式下,使用当前类加载器以ClassLoader + 包名 + 类名为key进行查找对应的 .class文件,如果没有找到文件,则抛出ClassNotFoundException异常,如果找到,则进行类加载,并生成对应的Class对象。将对象的所属类(即类的元数据信息)、对象的HashCode和对象的GC信息、锁信息等数据存储在对象的对象头中。直接指针是局部变量表中的引用,直接指向堆中的实例,在对象实例中有类型指针,指向的是方法区中的对象类型数据。如果是数组,还需要记录数组的长度。

2025-02-10 08:42:02 543

原创 9.JVM-方法区

百度 三面:说一下JVM内存模型吧,有哪些区?分别干什么的?蚂蚁金服: Java8的内存分代改进 JVM内存分哪几个区,每个区的作用是什么?一面:JVM内存分布/内存结构?栈和堆的区别?堆的结构?为什么两个survivor区?二面:Eden和survior的比例分配小米: jvm内存分区,为什么要有新生代和老年代字节跳动: 二面:Java的内存分区 二面:讲讲vm运行时数据库区 什么时候对象会进入老年代?京东: JVM的内存结构,Eden和Survivor比例。

2025-02-08 09:35:12 861

原创 8.堆的核心概念

针对幸存者s0,s1区的总结:复制之后有交换,谁空谁是to关于垃圾回收:频繁在新生区收集,很少在老年代收集,几乎不再永久代和元空间进行收集新生代采用复制算法的目的:是为了减少内碎片从内存模型而不是垃圾收集的角度,对Eden区域继续进行划分,JVM为每个线程分配了一个私有缓存区域,它包含在Eden空间内。多线程同时分配内存时,使用TLAB可以避免一系列的非线程安全问题,同时还能够提升内存分配的吞吐量,因此我们可以将这种内存分配方式称之为快速分配策略。

2025-02-07 09:07:58 771

原创 7.本地方法栈

因为Java虚拟机规范并没有明确要求本地方法栈的使用语言、具体实现方式、数据结构等。如果JVM产品不打算支持native方法,也可以无需实现本地方法栈。它的具体做法是Native Method Stack中登记native方法,在Execution Engine 执行时加载本地方法库。当某个线程调用一个本地方法时,它就进入了一个全新的并且不再受虚拟机限制的世界。它和虚拟机拥有同样的权限。在Hotspot JVM中,直接将本地方法栈和虚拟机栈合二为一。本地方法栈,也是线程私有的。本地方法是使用C语言实现的。

2025-02-07 09:06:26 172

原创 6.本地方法接口

简单地讲,一个Native Methodt是一个Java调用非Java代码的接囗。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "c" 告知c++编译器去调用一个c的函数。

2025-02-06 14:33:56 404

原创 5.虚拟机栈概述

程序试图访问或修改一个属性或调用一个方法,这个属性或方法,你没有权限访问。一般的,这个会引起编译器异常。这个错误如果发生在运行时,就说明一个类发生了不兼容的改变。

2025-02-06 14:10:42 792

原创 4.程序计数器

JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。这里,并非是广义上所指的物理寄存器,或许将其翻译为PC计数器(或指令计数器)会更加贴切(也称为程序钩子),并且也不容易引起一些不必要的误会。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟。它是一块很小的内存空间,几乎可以忽略不记。也是运行速度最快的存储区域。

2025-02-06 14:00:25 392

原创 3.运行时数据区概述及线程

本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段当我们通过前面的:类的加载-> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区也就是大厨做饭,我们把大厨后面的东西(切好的菜,刀,调料),比作是运行时数据区。而厨师可以类比于执行引擎,将通过准备的东西进行制作成精美的菜品。

2025-02-06 13:37:57 415

原创 2.类加载子系统

完整图如下如果自己想手写一个Java虚拟机的话,主要考虑哪些结构呢?类加载器执行引擎在Java的日常应用程序开发中,类的加载几乎是由上述3种类加载器相互配合执行的,在必要时,我们还可以自定义类加载器,来定制类的加载方式。为什么要自定义类加载器?隔离加载类修改类加载的方式扩展加载源防止源码泄漏开发人员可以通过继承抽象类ava.1ang.ClassLoader类的方式,实现自己的类加载器,以满足一些特殊的需求。

2025-02-05 11:12:00 1018

原创 1.JVM与Java体系结构

由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。时至今日,尽管嵌入式平台已经不是Java程序的主流运行平台了(准确来说应该是HotSpotVM的宿主环境已经不局限于嵌入式平台了),那么为什么不将架构更换为基于寄存器的架构呢?具体JVM的内存结构,其实取决于其实现,不同厂商的JVM,或者同一厂商发布的不同版本,都有可能存在一定差异。

2025-02-05 10:54:08 1140

原创 使用IDEA快速搭建一个SpringBoot Web工程

目前java的开始相信很多Learner都慢慢的学习使用IDEA这款工具,个人觉得其实相比Eclipse来说差不多,个人习惯的问题,但是我还是推荐IDEA这款工具。虽然它目前是收费的,但相信网上的各种破解方式很多,由于对学生和教师是可以免费使用的,所以个人推荐拿个学生邮箱去注册一个,非常的方便快捷就是一个验证而已,具体步骤就希望大家去网上get一下了。好现在!我们通过IDEA来搭建一个简单的web...

2020-06-08 19:41:12 15078

原创 java 基本知识回顾1

基本类型介绍: java提供了八种基本类型,六种数字类型(四个整数型,两个浮点型),一种字符类型,一种布尔类型。八大类型:byte,short,int,long,float,double,boolean,charfloat,double小数位精度是多少?为什么?float是7位,double是16位。原因是float的尾数位是23位,float的尾数位是52位,用2的负...

2019-06-30 00:00:33 301

原创 redis 浅谈

Redis目前被广泛的运用到项目中,身为一个后台开发者,如果你不识redis或者说没有接触过相关缓存的技术,那你应该马上学习起来了。可以说这也是技术一个小分水岭了,初中级程序员写程序很大一个区别就是思想,其实也和了解的技术相关,如果都不了解谈何去思考用什么,这也就是为什么有些程序猿写出来的程序跑起来和蜗牛一样。那Reids难学么?个人给的答案是:如果是入门,那是简单的不行了,可以说一两天就...

2018-09-15 00:43:12 640

转载 消息队列的两种模式(java)

转载:http://blog.youkuaiyun.com/heyutao007/article/details/50131089http://199c1df7.m.daocloud.io学习消息队列时,应该首要了解生产消费者模式和观察者模式,相信你会豁然开朗。我之前有写过生产者消费者模式和观察者模式的文章。下面我也各推荐一篇相关的文章:生产者消费者模式, 观察者模式。 Java消息服...

2018-08-10 11:28:33 1140

原创 tcp,udp实现的聊天

  socket:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。socket通信模型:socket实现tcp编程:服务器端:import java.io.*;import java.n...

2018-07-22 21:34:35 1013 1

原创 单例模式

定义:确保一个类只有一个实例,并提供一个全局访问点。类图:优点在内存中只有一个对象,节省内存空间。 避免频繁的创建销毁对象,可以提高性能。 避免对共享资源的多重占用。 可以全局访问。 延迟实例化。一个单例模式(懒汉式)public class Singleton { private static Singleton uniqueInstance; p...

2018-07-22 17:20:18 231

原创 观察者模式

初步认识     观察者模式是个什么东西?    首先我们确定一下观察者模式是软件设计模式的一种,它的出现是为了降耦合(软件设计模式大多都是为了实现这个东西)。在java大火的今天,哪怕你有略读过java的源码你就会发现,java的设计就有很多取自观察者模式的思想。    观察者模式定义定义一个对象和多个依赖。当一个对象改变时,他的所有依赖者就会收到通知,并自动更新。这个很正统的解...

2018-07-13 10:35:48 268

原创 java 阻塞队列实现生产者和消费者

public class PublicBoxQueue { static int i = 0; public static void main(String []args) { BlockingQueue BoxQueue= new LinkedBlockingQueue(5); //定义了一个大小为5的盒子 Thread pro= ...

2018-07-12 23:19:11 446

原创 C# linq left join 操作表和datatable

操作表:现有sfcusn表,sfcmo表,为保证sfcusn表数据的完整使用left join 查询。结构如下sql语句---oracle写法SELECT A.usn,A.mo,A.upn,A.stage,B.line FROM sfcusn A,sfcmo B WHERE A.mo = B.mo(+)linq语句var query= from A in db.sfcusnjoin B in...

2018-03-15 15:22:49 7809

原创 java实现 统计文件内容出现某字符串几次

package com.lzc.exception;import java.io.*;public class MyFileCycleStr { static String FilePath = "F:\\test.txt"; //文件路径 static String specyficStr = "wq"; //特定字符 public static void main(Stri...

2018-03-09 09:26:12 468

原创 windows 安装mongoDb3.2.X

前言    本人之前接触的都是关系性数据库例如MySql,Oracle,对于现今较火的NoSQL没有接触,只是简单的了解它是个什么东西,基本的特性。最近工作不忙,业余来学一下其中的MongoDb,本章只是介绍windows下mongoDb3.2.X版本的安装。MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便。对于想入门学习的推荐大家去看看官方给出的文档,或是关注...

2018-03-03 15:28:20 474

转载 java面试题(有经验)

Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入。 在我初入职场的时候,类似于 Vector 与 Array 的区别、HashMap 与 Hashtable 的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在。如今,你将

2017-12-29 16:44:56 1596 1

转载 java面试题

都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑话我们这些未出校门的孩纸们,但是IT公司就喜欢考这些基础的东西,所以为了能进大公司就~~~当复习期末考吧。花了不少时间整理,在整理过程中也学到了很多东西,请大家认真对待每一题~~~ 下面都是我自己的答案非官方,仅供参考,如果有疑

2017-12-21 16:34:54 517

原创 java初级面试题(sql方面)

下面我给大家带来一些数据库方面面试题。下列的链接是我看到非常好的java基础面试题的博文推荐给大家。http://blog.youkuaiyun.com/jackfrued/article/details/44921941/关系数据库这一块是非常重要的,对于我们初级程序员,数据库考察的很大一部分知识其实就是数据库语言的掌握了,至于使用的是mysql、sqlserver、oracle等其中的哪种

2017-12-18 15:38:56 5116

原创 IDEA使用MAVEN搭建SSM(IDEA+Maven+Spring+Spring MVC+Mybatis)

前几天安装了一个IDEA,之前一直使用是Eclipse和MyEclipse,IDEA我才刚用几天,感觉确实挺好用的。网上评论说IDEA在代码的提示方面比eclipse更加优秀。我也是有感觉的,因为本人目前是.net开发,使用的开发工具是Visual Studio ,不得不说在编码的时候VS相比Eclipse确实是好用很多 ,微软做的东西确实在操作上好用,声明我不是在吹捧微软。  一个好的开发工具还

2017-11-23 20:02:34 2252

原创 Spring MVC 浅谈

Spring MVC是一个展现层WEB框架,它基于MVC的设计理念。DispatcherServlet是Spring MVC的核心部分,它负责接收HTTP请求并协调Spring MVC的各个组件完成请求处理的工作。MVC介绍:MVC模式是一种软件架构模式。它把软件系统分为三个部分:模型(Model),视图(View),控制器(Controller)。下图为MVC模式中三者的调用关系与执

2017-11-13 10:07:38 422

转载 Spring AOP总结

Spring学习总结——Spring实现AOP的多种方式 转载 2016年08月08日 16:13:26 标签:

2017-11-06 09:01:19 531

转载 Spring IoC 浅谈

谈谈对Spring IOC的理解 转载 2016年09月21日 13:42:59 标签:

2017-11-03 14:45:10 479

finalshell客户端工具,链接linux,windows工具, 国产

finalshell客户端工具,链接linux,windows工具, 国产,免费,界面整洁清晰。 解压安装包,直接安装即可。有效好用,客户端提供基本的监控。

2021-06-15

java代码反编译工具,简单好用

只需要将代码定位到,直接反编译。 可导入导出。 解压即用

2021-06-15

simsun.zip

simsun.ttf和simsun.ttc字体文件,可以使用在linux服务器上,方便实用。黑体和宋体自己选择

2019-12-05

axis 代码jar包

axis-1.4 jar包,很多时候maven抓取不到,希望对大家有用

2018-11-06

Maven+SSM+Shiro

Maven项目整合了Spring+SpringMVC+MyBatis+Shiro,该项目实现了登陆和权限验证功能。

2017-12-01

draw.io desktop 客户端 windows平台

画出流程图、架构图、线路图、网站模型等图表的制作工具.本次提供windows平台的客户端下载,在离线的时候同样可以使用

2017-11-16

Windows 64版本下redis-2.4.5 安装包

下载到的Redis支持32bit和64bit。根据自己实际情况选择,将64bit的内容cp到自定义盘符安装目录取名redis。 如 C:\reids。 如何安装就不说了

2017-09-20

Windows 64版本下redis 安装包

windows 64位 redis安装包。Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。

2017-09-20

maven下载QRCode.jar包

maven下载QRCode.jar包

2017-06-21

s2sh整合详细jar

本人也是一名自学者 该ssh框架整合包适合初学者,jar包比较全面,亲测成功,

2016-11-07

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

TA关注的人

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