
Java
潇雪凌宇
这个作者很懒,什么都没留下…
展开
-
java 泛型和object比较
引言我们使用object和泛型做形参,都是为了让这个方法能接收更多类型的对象,让程序变得更健壮,代码复用率更高。当我们回看自己写的代码时会发现,好像使用泛型的地方使用object也可以,使用object的地方使用泛型同样能实现,那么,本文就说一下,泛型和object的却别正题先上举例来说明一下object和泛型的使用场景吧,有这样一个需求:写一个数字排序的算法,我们知道java中的数字类型有Double、Float、Byte、Short、Integer 以及 Long。方法一:每..转载 2020-07-30 10:42:08 · 822 阅读 · 0 评论 -
个人详解hashmap、concurrenthashmap
本文详述Java语言中的hashmap、concurrenthashmap与treehashmap,使用其他语言的朋友可做参考hashmap首先我们先来看一下hashmap原码开头的部分public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Clonea...原创 2020-04-13 10:31:15 · 402 阅读 · 2 评论 -
JVM学习之垃圾回收机制
垃圾回收算法JVM之中垃圾回收算法分为四种标记清除算法 标记整理算法 复制算法 分代收集算法接下来我们详细学习一下标记清除算法标记清除算法就是分为“标记”和“清除”两个阶段。标记出所有需要回收的对象,标记结束后统一回收。这个套路很简单,也存在不足,后续的算法都是根据这个基础来加以改进的。其实它就是把已死亡的对象标记为空闲内存,然后记录在一个空闲列表中,当我们需要new一...原创 2020-03-31 08:41:27 · 385 阅读 · 0 评论 -
JAVA锁的优化和膨胀过程
转自:https://www.cnblogs.com/twoheads/p/10148598.html首先说一下锁的优化策略。1,自旋锁自选锁其实就是在拿锁时发现已经有线程拿了锁,自己如果去拿会阻塞自己,这个时候会选择进行一次忙循环尝试。也就是不停循环看是否能等到上个线程自己释放锁。这个问题是基于一个现实考量的:很多拿了锁的线程会很快释放锁。因为一般敏感的操作不会很多。当然这个是一个不...转载 2020-03-26 07:59:55 · 480 阅读 · 0 评论 -
JVM学习之内存区域
今天我们来研究一下JVM的内存管理Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK. 1.8 和之前的版本略有不同,下面会介绍到。先偷两张图来形象的介绍一下JVM里面的内存管理JDK 1.8 之前:JDK 1.8 :线程私有的: 程序计数器 虚拟机栈 本地方法栈 线程共享的:...原创 2020-03-19 08:33:23 · 276 阅读 · 0 评论 -
JVM学习之双亲委派模型
类加载器 BootstrapClassLoader(启动类加载器) :最顶层的加载类,由C++实现,负责加载 JAVA_HOME/jre/lib/rt.jar目录下的jar包和类或者或被 -Xbootclasspath参数指定的路径中的所有类,用于提供JVM所需要的类。 ExtensionClassLoader(扩展类加载器) :java语言编写,派生自java.lang.Clas...原创 2020-03-13 08:40:16 · 244 阅读 · 0 评论 -
从零搭建Dubbo+spring boot分布式框架
随着流量的增大,常规的垂直框架已经逐渐无法应付,分布式框架应运而生,Dubbo是其中极有代表性的一个,今天我们来尝试手动搭建一个dubbo框架Dubbo从官网拿一张图来说明dubbo的架构,provider提供服务,在启动的时候向注册中心(中介)说明自己提供什么服务,consumer消费服务,启动的时候,向注册中心询问自己想要的服务。搭建我的搭建思路是有common为serv...原创 2020-03-06 08:32:03 · 1653 阅读 · 0 评论 -
数据库取出text类型数据与解决error:Mybatis No enum constant org.apache.ibatis.type.JdbcType.TEXT
近日作者在从数据库中拿取text类型的数据时遇到了这个errorMybatis No enum constant org.apache.ibatis.type.JdbcType.TEXT当时我按照一贯的操作,将jdbcType设置为和数据库保持一致的text类型,结果抛出了上述error,说在jdbcType这个枚举类里面没有text那我们就看一下jdbcType的原码好了pub...原创 2019-12-17 21:29:14 · 4173 阅读 · 0 评论 -
@RequestParam,@PathParam,@PathVariable等注解区别
版权声明:本文为优快云博主「一年e度的夏天」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/u011410529/article/details/66974974@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@...转载 2019-11-28 20:08:48 · 374 阅读 · 0 评论 -
初学者的疑惑,到底什么是javaBean?
版权声明:本文为优快云博主「山岚_」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/zhouvip666/article/details/83867401-------------------------------------------------------------------------...转载 2019-10-23 11:24:32 · 325 阅读 · 0 评论 -
Java——与数据库交互
今天我们来了解一下通过Java与数据库进行交互下面是作者写的一个简单的交互方法,sql变量是sql语句,strs变量是我们想要拿取的数据的key值,简单举例如下: String sql = "select *from user"; String[] strs = {"id","userName","sex","status"}; public...原创 2019-08-11 04:15:26 · 2188 阅读 · 0 评论 -
Java——详解Integer128陷阱
今天我们来一起探讨一下Java的128陷阱首先我们通过代码对128陷阱进行一个认知public static void main(String[] args){ Integer a = 127 ; Integer b = 127 ; Integer c = 128 ; Integer d = 128 ; Integer e = 1000 ; Int...原创 2019-08-19 07:43:43 · 1492 阅读 · 5 评论 -
位运算与运算符优先级
下面我们来总结一下位运算与运算符优先级(如果对补码、反码运算不理解或者不明白为什么运算要用补码可以看一下这篇https://blog.youkuaiyun.com/weixin_44407699/article/details/96270169)位运算位运算共有以下几种:&(按位与) |(按位或) ^(按位异或) ~(按位非) >>(右移) <<(左移...原创 2019-07-29 00:07:23 · 11268 阅读 · 0 评论 -
Leetcode第2题,两数相加算法——最易理解Java解法
我们先来看一下题,如果对链表不太理解的话,可以看一下这篇https://blog.youkuaiyun.com/weixin_44407699/article/details/97612030给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以...原创 2019-07-28 13:54:05 · 5881 阅读 · 0 评论 -
Java--链表ListNode
今天我们来介绍一下Java中的链表,作者依旧尽量用白话解释,希望能帮到大家链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。上面是链表的定义,那么我们用通俗点的语言...原创 2019-07-28 10:59:42 · 40529 阅读 · 6 评论 -
Java---this 通俗易懂理解
thisthis的作用是指向对象的属性或引用其实作者之前也一直不懂,这个this到底代表啥东西呢?用最简单的方式理解,谁调用含有this的方法,那么this就代表谁!比如说我用一个变量a去调用含有this的方法,如果含有this的语句是this.age=20;其实代表了a这个变量的age属性为20。这样讲大家应该都能理解了吧-------------------------...原创 2019-07-18 23:44:46 · 451 阅读 · 0 评论 -
重载和重写的区别
重载(overload):方法重载提供了创建同名的多个方法的能力,但这些方法需要使用不同的参数类型。例子:关于小猫有没有起好名字的讨论class Cat{ private string name="" public Cat(string name) { this.name=name; } //构造方法重载 pu...转载 2019-07-18 23:51:12 · 123 阅读 · 0 评论 -
Java:按值传递or按址(按引用)传递?
作者依旧尽量用白话和简洁的代码,希望帮到更多人首先,我们来了解一下什么是按址传递与按址(引用)传递按值传递:将方法A中参数的值传递给一个新方法B,这个新方法B更改这个参数的值不会影响到方法A中参数的值 有点拗口,举个例子更好让大家了解:你将一个word文档发给你的朋友,不论他怎样去修改这个文档,你计算机中的这个word文档都不会发生变化。...原创 2019-07-17 14:04:05 · 224 阅读 · 0 评论 -
Java :String字符串
今天,我们来学习一下Java里面的String字符串,作者依旧尽量用白话描述,希望能够帮助到大家Java字符串的本质是在栈中存储指针指向堆里的数组,该数组地址和内容均不可变,若更改字符串的值,其实是将指针修改,在堆中开辟一片新的区域存储更改后的值,然后让指针指向这个区域将字符串a的值赋予字符串b的本质是将a存储的地址赋予b,两者指向同一组数据String a="abc...原创 2019-07-17 15:29:58 · 137 阅读 · 0 评论 -
最简单理解为什么servlet中doget()没有dopost()常用
本文作者依旧用大白话来解释首先,当两个事务同时存在,我们偏向于用其中一个的时候,原因都很简单:另一个不好用呗!作者在下面总结了get方法不好用的地方1、安全性非常差!!!get传输数据是通过url来传递数据给servlet,传输的所有数据都会在url里显示,其中如果包含某些隐私信息,别人不费吹灰之力就可以得到2、传输的数据量小,且格式单一因为get是通过url来传递数据给s...原创 2019-07-30 00:06:42 · 706 阅读 · 0 评论 -
Java----借String buffer浅谈Buffer与空间压缩、性能优化
我们来一起愉快的了解一下 string Buffer这个东西吧,一如继往,作者尽可能用白话来描述首先,我们先要知道什么是Buffer:Buffer是缓冲区类,它的作用是将数据先放入缓冲区,当缓冲区被填满,再一并释放那么,Buffer类是怎样实现空间压缩呢?接下来,作者会通过画图来描述(一个方块表示一份存储空间,颜色块表示数据实际所占大小)通常我们建立数据,不管它能否占满...原创 2019-07-18 07:27:57 · 318 阅读 · 0 评论 -
switch击穿
作者依旧尽可能用白话描述,希望能给大家带来帮助我们执行以下代码看一下结果public class Test { public static void main(String[] args) { int a = 0; switch (a) { case 0:System.out.println(0); case 1:System.out.println(1); cas...原创 2019-07-18 07:44:39 · 450 阅读 · 0 评论 -
java中数据的5种存储位置
(1) 寄存器。这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部。然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配。我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹。(2) 堆栈。驻留于常规 RAM(随机访问存储器)区域,但可通过它的“堆栈指针”获得处理的直接支持。堆栈指针若向下移,会创建新的内存;若向上移,则会释放那些内存。 这是一种...转载 2019-07-18 07:48:52 · 600 阅读 · 0 评论 -
Java常用方法(持续更新)
String类:split 跟据()内的元素切割字符串用法:a.split("s");(a是字符串类型变量)parseInt 将字符串强行转化int用法:int x =Integer.parseInt("9");同样还有parseFloat将字符串强制转化为浮点型用法:float a = Floateger.parseFloat("9");len...原创 2019-08-01 09:19:54 · 152 阅读 · 0 评论 -
Java——通过ajax与servlet进行简单的前后交互
今天我们一起来学习一下通过ajax和servlet实现一个简单的登录验证的前后交互首先我们通过ajax将前端页面得到的数据传到我们的servlet中,也ajax将servlet中传回的返回值进行处理<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Inser...原创 2019-08-04 23:42:35 · 2045 阅读 · 1 评论 -
Java——使用链表出现空指针异常 Exception in thread "main" java.lang.NullPointerException
作者在刚学习链表的时候,有一次碰到空指针异常,怎么都想不通,想到大家可能碰见同样的问题,就将作者学习的一些过程分享出来,希望对大家能够有一丢丢帮助 while(result!=null){ result.val=l1.val+l2.val; l1=l1.next; l2=l2.next; result=result.next; }按照链表的结构,我们想要...原创 2019-08-05 00:19:49 · 5116 阅读 · 1 评论 -
Can not issue data manipulation statements with executeQuery().解决方案
这两天作者在进行数据库交互的时候,遇到了这个error,显示错误的是这一句代码 statement.executeQuery(sql);作者百思不得其解,祭出大杀器,内事不决问百度,看了两篇博客,两个大佬提出了不同的解决方案,但大致相同executeQurery()改成excuteUpdate() executeQurery()改成execute()那显然问题出在execu...原创 2019-08-05 08:31:38 · 23821 阅读 · 5 评论 -
Java---private权限控制
作者一如既往的尽可能用白话来解释,希望能够让更多的朋友能够理解private:属于Java语言中的关键字作用:控制访问权限可修饰类型:修饰内部类 修饰实例(对象)变量 修饰静态变量 修饰构造方法 修饰接口与枚举首先,我们来详细解释一下private的功能二话不说,先宣代码觐见!!!class PrivateTest{ private static i...原创 2019-07-18 19:52:16 · 575 阅读 · 0 评论