
JAVA那些代码
文章平均质量分 66
程序员Feri
Feri一到,编程开窍!
Hello,程序员Feri,是工作10年以上做过开发,带过团队的资深程序员组成,主要分享一些编程相关的知识干货,感谢关注和交流,希望在你的编程路上有我们相伴!
我坚信:努力什么时候开始都不晚!
Feri领航,编程不迷茫!
君之所向,一往无前!
展开
-
SpringCloudAliababa中使用最新版的Seata实现分布式事务
在成为技术大牛的路上,我们一路前行!我是使用的Spring Cloud Aliabab实现的微服务,在这里使用的Seata实现的分布式事务。本次使用的是最新的Seata-Server2.0实现的分布式事务。原创 2024-07-31 16:52:20 · 1135 阅读 · 0 评论 -
《14天从0到1学Java》第一天之04第一行Java代码
这个是一套系列教程,一共14天,每天8篇,每篇需要5分钟。也就是说,你需要每天抽出40分钟来看教程,坚持14天就可以,轻松玩转JavaSE。我是Feri,我为自己代言,专注IT职场教育N年,希望对于你的入门,有所帮助!一、第一个Java代码1.1 第一个Hello Word!无论过去多久,现在还是对自己的第一个Hello,Word 充满惊喜的记忆我们配置好了jdk的环境变量,那么就...原创 2020-05-08 15:44:09 · 341 阅读 · 0 评论 -
《14天从0到1学Java》第一天之03Java基本功
这个是一套系列教程,一共14天,每天8篇,每篇需要5分钟。也就是说,你需要每天抽出40分钟来看教程,坚持14天就可以,轻松玩转JavaSE。我是Feri,我为自己代言,专注IT职场教育N年,希望对于你的入门,有所帮助!本篇目录一、Java简介1.1 Java的分类1.2 Java的应用场景1.3 Java特性1.4 Java运行过程1.4.1 计算机的高级编程语言类型1.4.2 Java2...原创 2020-05-08 14:47:10 · 331 阅读 · 0 评论 -
《14天从0到1学Java》第一天之01Java的由来
每天30分钟,每篇5分钟,轻松14天搞定Java欢迎来到《Feri精品教程之14天学会Java》一、序关于本教程这个是一套系列教程,一共14天,每天8篇,每篇需要5分钟。也就是说,你需要每天抽出40分钟来看教程,坚持14天就可以,轻松玩转JavaSE。预计本套写完需要21天。一共是112篇教程,后期会考虑录制一套匹配的视频。欢迎大家关注和学习。 我是Feri,我为自己代言。专注IT...原创 2020-03-28 00:08:24 · 279 阅读 · 0 评论 -
Redis过期策略
Redis的三种失效策略 1、定时删除 含义:在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除 优点:保证内存被尽快释放 缺点: 若过期key很多,删除这些key会占用很多的CPU时间,在CPU时间紧张的情况下,CPU不能把所有的时间用来做要紧的事儿,还需要去花时间删除这些key 定时器的创建耗时,若为每一个设置过期时间的key创原创 2017-12-28 11:20:11 · 448 阅读 · 0 评论 -
最新版CSS面试题
1、CSS 中类 (classes) 和 ID 的区别 对于CSS而言,id和class都是选择器,唯一不同的地方在于权重不同。对于html而言,id和class都是dom元素的属性值。不同的地方在于id属性的值是唯一的,而class属性值可以重复。id还一个老特性是锚点功能,当浏览器地址栏有一个#xxx,页面会自动滚动到id=xxx的元素上面。2、请问 “resetting” 和 “normal转载 2018-01-03 16:29:37 · 985 阅读 · 0 评论 -
到底什么时候该使用MQ?
一、缘起 一切脱离业务的架构设计与新技术引入都是耍流氓。引入一个技术之前,首先应该解答的问题是,这个技术解决什么问题。就像微服务分层架构之前,应该首先回答,为什么要引入微服务,微服务究竟解决什么问题(详见《互联网架构为什么要做微服务?》)。最近分享了几篇MQ相关的文章: 《MQ如何实现延时消息》 《MQ如何实现消息必达》 《MQ如何实现幂等性》 不少网友询问,究竟什么时候使用MQ,MQ究竟转载 2018-01-03 16:28:57 · 380 阅读 · 0 评论 -
ActiveMQ实现削峰填谷
MQ的一个典型应用场景是缓冲流量,削峰填谷。问:站点与服务,服务与服务上下游之间,一般如何通讯? 答:有两种常见的方式一种是“直接调用”,通过RPC框架,上游直接调用下游。在某些业务场景之下,可以采用“MQ推送”,上游将消息发给MQ,MQ将消息推送给下游。问:为什么会有流量冲击? 答:不管采用“直接调用”还是“MQ推送”,都有一个缺点,下游消息接收方无法控制到达自己的流量,如果调用方不限速,很有转载 2017-12-28 11:07:18 · 4372 阅读 · 0 评论 -
每秒处理10万高并发订单的某集团支付系统架构分享
转载自:最代码 官方随着乐视硬件抢购的不断升级,乐视集团支付面临的请求压力百倍乃至千倍的暴增。作为商品购买的最后一环,保证用户快速稳定的完成支付尤为重要。所以在15年11月,我们对整个支付系统进行了全面的架构升级,使之具备了每秒稳定处理10万订单的能力。为乐视生态各种形式的抢购秒杀活动提供了强有力的支撑。一、库分表在redis,memcached等缓存系统盛行的互联网时代,构建一个支撑每秒十万只读的转载 2017-12-21 21:26:53 · 8693 阅读 · 0 评论 -
Java的Base64
概念Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。 Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和H原创 2017-12-11 08:53:46 · 566 阅读 · 0 评论 -
SVN的安装与使用
SVN的安装一:SVN服务器搭建和使用。1. 首先来下载和搭建SVN服务器,下载地址如下: http://subversion.apache.org/packages.html,进入网址后,滚动到浏览器最底部看到如下截图: 个人认为最好用VisualSVN server 服务端和 TortoiseSVN客户端搭配使用. 点开上面的VisualSVN连接,下载VisualSVN server原创 2017-12-11 08:39:28 · 489 阅读 · 0 评论 -
你知道Java开发中字符的编码吗?
Java开发中字符编码的问题 ASCII码在计算机内部,所有的信息最终都表示为一堆二进制形式的数据。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,称为一个字节(byte),从0000000到11111111。上世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系做了统一规定,称之为ASCII码(American Standard Code fo转载 2017-12-11 08:34:56 · 410 阅读 · 0 评论 -
Maven聚合之SSM整合无法操作数据库
在使用Maven进行SSM整合的时候,报错: HTTP Status 500 - Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.code404.erp.dao.EmpMapper.se原创 2017-10-31 18:20:16 · 569 阅读 · 0 评论 -
Eclipse配置SVN
打开Eclipse –> Help –> Eclipse Marketplace –> 在Find中输入subclipse搜索 –> 找到subclipse点击install 点击 install,无脑点击下一步即可 装完重启Eclipse,即可看到 window—>show view—>svn 页面如下:原创 2017-10-31 13:05:58 · 310 阅读 · 0 评论 -
JS原生JSONP的使用
JSONP是JSON with padding(填充式JSON或参数式JSON)的简写,是应用JSON的一种新方法,常用于服务器与客户端跨源通信,在后来的Web服务中非常流行。基础 JSONP的基本思想是,网页通过添加一个function handleResponse(response){ alert ("You're at IP address " + response.ip + "转载 2017-12-28 11:48:26 · 2416 阅读 · 0 评论 -
MyBatis的配置文件详解
摘自官网:MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置(settings)和属性(properties)信息。文档的顶层结构如下:configuration 配置properties 属性settings 设置typeAliases 类型别名typeHandlers 类型处理器objectFactory 对象工厂plugins 插件environments 环境envir...原创 2018-03-22 09:29:53 · 1695 阅读 · 0 评论 -
Java工程师成神之路
一、基础篇 JVM JVM内存结构堆、栈、方法区、直接内存、堆和栈区别Java内存模型内存可见性、重排序、顺序一致性、volatile、锁、final垃圾回收内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定 JVM参数及调优Java对象模型oop-klass、对象头HotSpot即时编译器、编译优化类加载机制classLoader、类加载过程、双亲委派(破坏双亲委派)、模块化转载 2018-04-09 10:32:13 · 212 阅读 · 0 评论 -
Java十大经典排序算法最强总结
十大经典排序算法最强总结(含JAVA代码实现)转自https://www.cnblogs.com/guoyaohua/p/8600214.html转载 2019-01-05 10:46:33 · 876 阅读 · 0 评论 -
HasMap 底层源码分析
目录 一、什么是哈希表 二、HashMap实现原理 三、为何HashMap的数组长度一定是2的次幂? 四、重写equals方法需同时重写hashCode方法一、什么是哈希表 在讨论哈希表之前,我们先大概了解下其他数据结构在新增,查找等基础操作执行性能 数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍...转载 2018-08-30 14:12:21 · 515 阅读 · 0 评论 -
Spring Security系列教程之一简介
Spring Security 以“The Acegi Secutity System for Spring” 的名字始于2013年晚些时候。一个问题提交到Spring 开发者的邮件列表,询问是否已经有考虑一个基于Spring 的安全性社区实现。那时候Spring 的社区相对较小(相对现在)。实际上Spring自己在2013年只是一个存在于ScourseForge的项目,这个问题的回答是一个值得研...原创 2018-07-02 11:18:13 · 1564 阅读 · 0 评论 -
JVM内存分析
JVM内存模型分析 JVM会将Java进程所管理的内存划分为若干不同的数据区域. 这些区域有各自的用途、创建/销毁时间JVM内存数据:栈管运行,堆管存储 第一章 线程私有区域 线程私有数据区域生命周期与线程相同, 依赖用户线程的启动/结束而创建/销毁(在Hotspot VM内, 每个线程都与操作系统的本地线程直接映射, 因此这部分内存区域的存/否跟随本地线程的生/死) 1.1 Nati...原创 2018-05-27 09:28:05 · 385 阅读 · 0 评论 -
JWT概述和使用
JWT是一种用于双方之间传递安全信息的简洁的、URL安全的表述性声明规范。JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以Json对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名。简洁(Compact): 可以通过URL,POST参数或者在HTTP header发送,因为数据量小...转载 2018-05-25 18:37:33 · 451 阅读 · 0 评论 -
JDK10新特性-你了解多少
局部变量类型推断局部变量类型推断是Java 10中最值得注意的特性,这是Java语言开发人员为了简化Java应用程序的编写而采取的又一步。var sts=new ArrayList(); 新的语法将减少与编写Java相关的冗长度,同时保持对静态类型安全性的承诺。 局部变量类型推断将引入”var”关键字,也就是你可以随意定义变量而不必指定变量的类型 var num1=10;...原创 2018-05-17 14:39:05 · 1193 阅读 · 0 评论 -
JDK9新特性-你了解多少
modularity System 模块系统Java 9中主要的变化是已经实现的模块化系统。Modularity提供了类似于OSGI框架的功能,模块之间存在相互的依赖关系,可以导出一个公共的API,并且隐藏实现的细节,Java提供该功能的主要的动机在于,减少内存的开销,在JVM启动的时候,至少会有30~60MB的内存加载,主要原因是JVM需要加载rt.jar,不管其中的类是否被classl...原创 2018-05-17 14:33:53 · 401 阅读 · 0 评论 -
JDK8新特性-你了解多少
Java 编程语言Lambda 表达式是一个新的语言特性,已经在此版本中引入。该特性让您可以将功能视为方法参数,或者将代码视为数据。使用 Lambda 表达式,您可以更简洁地表示单方法接口(称为功能接口)的实例。方法引用为已经具有名称的方法提供了易于理解的 lambda 表达式。默认方法允许将新功能添加到库的接口中,并确保与为这些接口的旧版本编写的代码的二进制兼容性。重复批注支持对...原创 2018-05-17 14:28:47 · 783 阅读 · 0 评论 -
线程的三种创建方式
线程有几种创建方式?分别如何实现: 有三种创建线程的方法: 一是实现Runnable接口,然后将它传递给Thread的构造函数,创建一个Thread对象;new Thread(new Runnable(){ public void run(){ //重写run方法 } }).start();二是直接继承Thread类。new Thread()...原创 2018-05-17 11:02:56 · 1693 阅读 · 0 评论 -
十大经典算法
什么是算法? 直白地说,算法就是任何明确定义的计算过程,它接收一些值或集合作为输入,并产生一些值或集合作为输出。这样,算法就是将输入转换为输出的一系列计算过程。来源:Thomas H. Cormen, Chales E. Leiserson (2009), 《算法导论第三版》。 一个有效的算法应该含有三个重要特性:它必须是有限的:如果你设计的算法永无休止地尝试解决问题,那么它是无用的。它必须转载 2018-04-23 22:32:26 · 1263 阅读 · 1 评论 -
Linux远程连接工具SecureCRT中文乱码问题
在使用SecureCRT进行远程服务器连接的时候,出现中文乱码的问题的解决方案: 打开SecureCRT找到选项—会话选项—外观—选择字体和字符编码–即可。 注意选择的字体需要支持中文。原创 2017-10-30 12:04:14 · 465 阅读 · 0 评论 -
java使用Filter实现全栈压缩
在服务器向浏览器响应数据的时候,对响应的数据进行压缩,便于传输和提升效率。 实现思路: 1、拦截所有请求 2、获取写出的内容 3、对写出的内容进行压缩 4、将压缩内容返回给浏览器 采用的压缩格式为gzip,浏览器支持。 过滤器:/** * Servlet Filter implementation class GlobalGzipFilter * 实现的全栈压缩 */@Web原创 2017-09-06 16:44:29 · 533 阅读 · 0 评论 -
JAVA代理模式之三动态代理CGLIB详解
我们在上一篇中使用jdk实现的动态代理。但是大家有没有发现使用jdk生成代理对象时有弊端,什么样的弊端呢? 如果我的委托类没有实现接口,能使用jdk的动态代理吗? 看过源码的都知道当然是不行的。那怎么办? 我们可以使用cglib生成动态代理 cglib:Code Generation Library是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java类与实现Java接口原创 2017-07-26 17:45:37 · 618 阅读 · 0 评论 -
JAVA代理模式之一静态实现
代理模式:即Proxy Pattern,23种常用的面向对象软件的设计模式之一。(设计模式的说法源自《设计模式》一书,原名《Design Patterns: Elements of Reusable Object-Oriented Software》。1995年出版,出版社:Addison Wesly Longman.Inc。该书提出了23种基本设计模式,第一次将设计模式提升到理论高度,并将之规范化原创 2017-07-26 17:23:25 · 389 阅读 · 0 评论 -
Spring+SpringMVC+MyBatis的整合详解
此次整合基于jar进行,各个版本: Spring4.3.8 SpringMVC4.3.8 MyBatis3.4.2 Tomcat8.01、jar包引用 下载链接点击下载所需jar包2、配置文件主要用到数据库配置: dbconfig.propertiesjdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://loca原创 2017-08-10 17:52:53 · 814 阅读 · 0 评论 -
SSM整合无法解析$解决方案
在进行Spring+SpringMVC+MyBatis的整合过程中,遇到$符号无法解析org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.mybatis.spring.mapper.MapperScannerConfigurer#0' defined in class原创 2017-08-10 17:40:48 · 1371 阅读 · 0 评论 -
CXF自动生成客户端报错
在使用CXF自动生成WebService的客户端代码时,出现这个错误。 原因是jdk1.8的小bug 解决方案: C:\Program Files\Java\jdk1.8.0_31\jre\lib 在jdk的目录下新建:jaxp.properties 内容:javax.xml.accessExternalSchema = all 再次自动生成就OK了。原创 2017-08-17 00:29:52 · 1090 阅读 · 0 评论 -
JAVA中的四种JSON解析方式详解
我们在日常开发中少不了和JSON数据打交道,那么我们来看看JAVA中常用的JSON解析方式。 1、JSON原生 2、GSON 3、FastJSON 4、jackson原创 2017-08-02 10:52:25 · 106585 阅读 · 15 评论 -
Java使用POI导出Word文档
POI是Apache组织的一套关于文档操作的api,可以实现word文档和excel文档的读取和写出的功能。 所需jar包点击下载//生成word文档public class WordStudy { @Test public void test1() throws FileNotFoundException, IOException{ //创建文档对象原创 2017-08-16 10:48:25 · 4858 阅读 · 0 评论 -
Java实现邮件发送
发送邮件可与使用java提供的mail.jar实现。public class EmailUtils { private static String fromEmail="你的邮箱";//发件邮箱 private static String sqm="授权码";//授权码,切记只能是第三方授权码,不要用密码 private static String host="smtp.163原创 2017-08-08 17:02:28 · 826 阅读 · 0 评论 -
MyBatis中的statementType详解
在mapper文件中可以使用statementType标记使用什么的对象操作SQL语句。 statementType:标记操作SQL的对象 取值说明: 1、STATEMENT:直接操作sql,不进行预编译,获取数据:$—Statement 2、PREPARED:预处理,参数,进行预编译,获取数据:#—–PreparedStatement:默认 3、CALLABLE:执行存储过程————Ca原创 2017-08-08 13:09:32 · 35851 阅读 · 0 评论 -
Spring的#和$的区别?
在Spring中有#的使用也有$的使用,那么这两个分别是做什么的呢?${key名称}:1、用户获取外部文件中指定key的值2、可以出现在xml配置文件中,也可以出现在注解@Value中3、一般用户获取数据库配置文件的内容信息等#{表达式}:1、SpEL表达式的格式,详情点击[Spring4.3xSpEL使用详解](http://blog.youkuaiyun.com/xingfei_work/arti原创 2017-07-31 10:34:50 · 9243 阅读 · 2 评论 -
JAVA经典面试题93道
转载自骆昊老师的博文 1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化转载 2017-07-18 13:38:47 · 875 阅读 · 0 评论