Java
文章平均质量分 92
Victor _Lv
个人微信公众号:维特小站(VictorSite)
展开
-
基于ETCD实现分布式锁&实战:控制多个应用仅一台执行任务
我们知道,分布式锁有好几种方案:基于Redis、基于数据库如MySQL、基于注册中心如Zookeeper等;而 K8S 体系中基于 Go 语言编写的的 ETCD 则对于分布式锁有着更强大的支持。 ETCD 有一个租约机制,客户端跟 ETCD 服务端订立一个“租约”后,需要在租约到期之前进行续约,否则会在到期后被自动解除租约,而租约可以挂载多个 key-value,当租约过期时,挂载在上面的 key-value 也会跟着被删除。既有类似 Redis / Zookeeper 的 key-value 机制原创 2022-02-28 22:24:43 · 1117 阅读 · 0 评论 -
一文了解数据库和 Java 的近30种锁
一文了解 数据库 和 Java 近30种锁本文入门性地介绍数据库(主要是 MySQL + InnoDB 这块) + Java 中近30个不同称呼的锁,事实上“锁”的思想通用性很强,无论是更早的数据库 / MySQL 领域,还是 稍晚 Java / Redis 等领域,会发现锁的思想本源其实是类同的,只是适应了各自不同的场景而已,所以要区分好 MySQL 和 Java 的锁,或者深入理解各类锁,还得具体切入到其场景所要解决的问题和折中优化办法里,这话题太深太广,本文只对各种锁做一个“浅尝辄止”的介绍。参考原创 2021-02-28 18:30:14 · 302 阅读 · 0 评论 -
Hibernate 与 Mybatis 入门使用
Title: Hibernate 与 Mybatis 入门使用Date: 2018-7-12 16:48Category: 技术博客Modified: 2018-7-12 16:48Tags: Java-WebSlug: Hibernate-mybatis-useAuthors: Victor LvSummary: Hibernate 与 Mybatis 入门使用1. Hibernate – 基于 Hibernate 5.3.1 finalHibernate 核心配置文件 hibernat原创 2021-01-30 11:15:23 · 321 阅读 · 0 评论 -
初识ActiveMQ
Title: 初识ActiveMQDate: 2018-10-22 13:00Category: 技术博客Modified: 2018-10-22 13:00Tags: Message QueueSlug: ActiveMQAuthors: Victor LvSummary: ActiveMQ 是一个遵循 JMS 规范的消息服务系统,开源,纯Java实现,但可以跨语言使用。ActiveMQ(JMS)可用于系统整合、降低模块间耦合、实现异步处理、数据同步。ActiveMQ是一个遵循JMS规范的原创 2021-01-30 11:06:21 · 229 阅读 · 0 评论 -
图解Java参数传递
先学过 C/C++ 然后再学 Java 的同学们都会有一个疑问,C/C++里面 的参数传递分为值传递、指针传递、引用传递,Java 中不存在指针,自然不存在指针传递,那么 Java 的参数传递是值传递还是引用传递?抑或是二者都有?本文将以程序示例和自拟的流程图来讲解这个问题。程序示例: public static void passTest1(int i) { i = 0; } public static void passTest2(int[] ints)原创 2021-01-30 11:03:15 · 391 阅读 · 0 评论 -
初尝Java动态代理
有动自有静,在看动态代理之前先看更简单明了的“静态代理”。下面以实例描述。(静态)代理定义一个 Human 接口:Human.javapublic interface Human { void goToWork();}我们假设所有 Human 都有一个动作就是 goToWork。然后在 Human 的基础上衍生出 Man 和 Woman :Man.javapublic class Man implements Human { @Override public vo原创 2021-01-30 11:04:18 · 224 阅读 · 0 评论 -
浅析Java回调机制
生活中,我们经常碰到这样的例子:当我们想完成某个工作时,期间会有一个非常耗时的子任务,但我们又不想干等待它的完成才继续工作,于是我们希望把这个子任务交付出去给别人完成,然后我们就可以继续往下做其他事情了,等别人完成工作的时候,又会自动回来我这告诉我完成情况。 好比如你住酒店,你在打扫房间的时候,有一堆衣服要洗,但洗衣服这事太耗时了,所以你把清洁阿姨叫过来让她帮你拿衣服去洗,并告诉她衣服洗完后帮我放回A201房间的柜子里,托付完毕,你可以继续干手头的打扫工作了。 基于这样的思想,应用于编程中,那就原创 2021-01-30 10:57:16 · 170 阅读 · 0 评论 -
fastjson报错java.lang.NoSuchMethodError: java.lang.Character.isSurrogate
开发新系统时,引用了fastjson组件,碰到报错如下:报错信息:org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: java.lang.Character.isSurrogate(C)Z经...原创 2019-12-03 14:51:04 · 1584 阅读 · 0 评论 -
Java三大内存区域
今天看了一个斯坦福的讲Java基础的公开课,叫《编程方法学》的公开课,涉及到Java编程中的三大内存区域,觉得讲得挺好的,自己在这里重构一下知识点。java编程中内存的三大区域:1.存static/final常量的静态/常量存储区2.heap堆区域:存放Dynamic Variable,如new创建出来的对象3.stack栈区域:存放函数的参数,以及local variable原创 2016-08-13 00:47:16 · 1611 阅读 · 0 评论 -
Java异常处理
先上两张截自《Java核心技术:卷一》的图:下面纯属个人的理解,仅供参考:异常处理:1.捕获 catch try-catch我自己来处理2.抛出 throws 交给上层程序处理(捕获)个人对异常的理解:所以异常处理流程就是这么一回事:1.首先我声明说我可能会抛出什么样的异常:例如在方法或类后面跟throws IOExceptio原创 2016-08-11 23:37:09 · 730 阅读 · 0 评论 -
Java Map容器小示例
Map容器:键值对(Key-Value);关联数组。Map里面的key和value都可以是任意的对象,比如Integer,或者一个很复杂的类对象。Java里面的Map都封装得比较好了,所以使用的话主要是要了解Java库提供了啥函数。下面看示例:package com;/** * @author lv.lang * */import java.util.Map;import原创 2016-08-09 23:28:36 · 1393 阅读 · 0 评论 -
浅谈java的平台无关性
事先说明哈,以下仅代表当前个人理解:说java是平台无关的语言,我觉得可能会让人误解了一些东西,自己之前就一直搞不懂java所谓的平台无关性是怎样的或者怎么实现的。这里,说一下自己这阵子java学习之后对于这个概念的理解:首先,我认为所谓的语言平台无关性,其实对于所有高级编程语言(如C/C++、java)来说,都是平台无关的,因为高级编程语言是用来在人和机器之间搭建更简便的沟通的方式,或者原创 2016-08-20 19:51:42 · 1889 阅读 · 1 评论 -
Java容器小解析
首先来看看容器的作用或者说语言设计者设计容器的初衷,也是从《Java编程思想》一书总结出来的:使用容器原因:一句话概括:在任意时刻、任意位置、创建任意数量的对象。其实就是保存对象,然后其实用数组也能保存对象,只是数组长度限定死,所以才用到动态长度的动态数组:容器。原因分点:1.动态创建对象(运行时才决定创建对象)2.对象的类型和数量也是动态的来看一个小示例:原创 2016-08-08 23:49:06 · 722 阅读 · 0 评论 -
Java与Java web开发教程网站之IBM developer
IBM developer也是个蛮好的java学习网站,毕竟IBM也是java的力推者之一。而且蓝色巨人里面牛人也多。点击打开链接点击打开链接点击打开链接原创 2016-08-18 21:30:00 · 425 阅读 · 0 评论 -
泛型小解析
先来看看《Java编程思想》一书里面对于泛型的初衷和作用的解析:作用1(针对C++):当我们编写了一个很强大的函数,希望拿去使用(通过参数传递进来)时,发现这个函数只能传递一个特定类型的参数比如int类型的,那么对于其他类型的数据就无法使用这个“强大”的函数了,是不是很苦逼,举个例子,int max(int a, int b)函数,我们姑且当它是一个很“强大”的函数,是用来计算原创 2016-08-07 23:13:05 · 472 阅读 · 0 评论 -
java寻找html文件中的标签
题目描述:找出html文件(vacation.htm)中的所有标签名并显示出来。*不要使用正则表达式。代码:import java.io.*;class ShowTags{ public static void main(String[] args)throws IOException{ String content = readFile("vacation.原创 2015-12-04 12:40:52 · 2088 阅读 · 0 评论 -
java中类的继承性和多态性实例
题目描述:编写一个程序(Fruit.java),其中有三个类:Fruit,Orange、Apple,其中,Orange、Apple是Fruit的子类:(1)类Fruit有eat()和main()(入口函数)两个方法,没有数据域,其中eat()中用this.getClass()显示当前对象的类名。 main()中随机生成这三种对象(用for和switch语句),共生成20个(把20定义为原创 2015-12-04 12:45:34 · 2075 阅读 · 0 评论 -
Java的一些小知识:package,import,不同目录下类的调用
这道题一共要建三个目录:C:\myproj\bin、C:\myproj\lib和C:\myproj\classes,也可以自己建所要的目录,三个目录不同就可以了,具体要求如下:n public的A.class和B.class属于包X.Y,该包存放在C:\myproj\classes中;public的C.class和D.class属于包S.T,把它们打包为E.jar文件中,并存放在C:\mypr原创 2015-12-10 23:32:39 · 9276 阅读 · 0 评论 -
ResultSet结果集判断是否为空
目前亲测过能用的一个方法是:if(rs.next())//当前行有内容 { msg2 = "有这个活动!"; } else //rs对象为空表示查无此活动 { msg2 = "没有此活动!"; }当然还有其他的方法。原创 2016-01-07 11:20:41 · 863 阅读 · 0 评论 -
安装java之后没有jre目录
安装java后的环境变量配置-自定义安装目录可能会带来一些烦恼,配置环境变量可能很难找对目录,所以倒不如干脆就用默认的安装目录,记住它,安装完java之后去到那个路径把路径复制,然后进行环境变量配置:(1)JAVA_HOME(2)CLASSPATH(3)Path详细的地址参考网上的,只需把安装目录弄成自己用的目录就行了。更详细的网搜有一大堆教程。原创 2016-03-24 00:09:46 · 33964 阅读 · 0 评论 -
java计算程序运行时间的方法之一
可以使用Date类,下面的代码是直接调用函数System.currentTimeMillis()来获取当前系统时间,单位为毫秒。所以只需要在需要测试的代码前后分别获取一次系统时间,然后差值就是该段代码执行的时间了。Scanner in = new Scanner(System.in); int a = in.nextInt(); long start = System.curren原创 2016-06-03 14:44:42 · 1728 阅读 · 0 评论 -
单根继承的好处
最近在学习《Thinking in java》一书,在书中作者提到了单根继承的好处(对比java和C++)。先引用下书本上的原文解释对单根继承的阐述:书上的解释比较笼统,所以自己网搜了下,最后去到stack overflow找到个还比较好比较完整的答案。较详细的说明了部分好处:点击打开链接我把它用自己的话来重新阐述一遍:1:参数传递,因为往往写函数时不明确要原创 2016-07-21 22:54:59 · 4441 阅读 · 0 评论 -
控制对类成员访问权限的原因
控制对类成员的访问权限有两个原因:援引自《Java编程思想》一书:1.使用户不要触碰那些他们不该触碰的部分,这些部分对于类内部的操作是必要的,但是它并不属于客户端程序员所需接口的一部分。因此,将方法和域指定成private,对客户端程序员而言是一种服务。因为这样他们可以很清楚地看到什么对他们重要,什么是他们可以忽略的,这样简化了他们对类的理解。2.第二个原因,也是最重要的原因。是为了让类...原创 2016-08-02 22:02:20 · 914 阅读 · 0 评论 -
参数传对象即传引用
Java中,参数定义为传递一个对象,那么传递进来的是对象的引用,或者说是句柄/对象的别名,其实跟C/C++里面这样的传递:void fun (int &a)是差不多的,而对象的引用/句柄可以理解为指向对象内存空间的一个指针/首地址。所以理所应当的若函数里面对传进来的对象的属性值做了修改的话,是会影响外面的对象的。下面是一个简单的示例:随便写一个类:A.java:/** * A.jav原创 2016-08-02 22:18:56 · 590 阅读 · 0 评论 -
浅析java动态绑定
先上自己写的一个小示例:/**[多态/动态绑定] * Dynamic_binding.java * @author 吕浪 * @My Email:784975698@qq.com * @Created on 2016年7月30日 */package com;class Dad{ public void print() { System.out.println("I'a原创 2016-08-02 23:19:59 · 526 阅读 · 0 评论 -
复用类的两种方法
java复用类(代码)的两种方法:1.组合:在新的类中产生现有类的对象2.继承:按现有类的类型来创建新类,然后在其中添加新代码。方法一示例:public class A{ ……}……public class B{ A obj = new A(); ……}方法二示例:public class A{ ……}原创 2016-08-02 23:26:50 · 893 阅读 · 0 评论 -
java实现斐波那序列
题目描述:(Fib.java)斐波那契数列(Fibonacci sequence):第0项是0,第1项是1,从第2项开始,每一项都等于前两项之和,结果是0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,...。(1)用while语句计算该数列前40个数原创 2015-12-04 12:28:01 · 2174 阅读 · 0 评论