Java
编程艺术思维
这个作者很懒,什么都没留下…
展开
-
缓存服务器:Memcache、Redis、Tair和Varnish是什么?
在互联网项目开发中,缓存的应用是非常普遍了,缓存可以帮助页面提高加载速度,减少服务器或数据源的负载。那么,对于缓存服务器中最常用的技术Memcache、Redis和Varnish是什么?**[缓存服务器]**MemcacheMemcache是老牌的内存缓存技术,对相关领域支持比较丰富,window和linux都可以使用,各种框架(tp/yii等等)都支持使用,session的信息可以非常...原创 2020-03-04 17:40:59 · 261 阅读 · 0 评论 -
IntelliJ Idea 常用快捷键 列表(实战终极总结!!!!)
自动代码常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码 。例如要输入for(User user : users)只需输入user.for+Tab ;再比如,要输入Date birthday = user.getBirthday()只需输入user.getBirthday().var+Tab即可。代码标签输入完成后...原创 2020-02-20 15:18:50 · 195 阅读 · 0 评论 -
java中(String)、toString、String.valueOf的区别
String.valueOf()它可以将JAVA基本类型(int,double,boolean等)和对象(Object)转换成String型toString()是对象的方法,它可以将该对象转换成String型,转换算法根据类型实际需要而定,基本上JAVA里面每个对象都会有一个toString方法。两者的运行结果都是相同的,只是原理不一样在Java项目的实际开发和应用中,常常需要用到将对象...原创 2020-02-15 11:53:45 · 269 阅读 · 0 评论 -
【金三银四跳槽季】Java工程师如何在1个月内做好面试准备?
写在前面春节长假转眼已过,即将迎来的是一年一度的金三银四跳槽季。假如你准备在金三银四跳槽的话,那么作为一个Java工程师,应该如何利用1个月的时间,快速的为即将到来的面试进行充分的准备呢?总结起来,面试官考察候选人的时候主要是从技术广度、技术深度、基础功底、系统设计、项目经验几个角度来进行的。那么本文咱们就针对每一块内容,具体的来说一下考察的一些点。更重要的,是针对考察的这些点,如何来快速...转载 2020-01-10 11:34:26 · 175 阅读 · 0 评论 -
Redis和Ehcache的区别
Redis属于独立的运行程序,需要单独安装后,使用JAVA中的Jedis来操纵。因为它是独立,所以如果你写个单元测试程序,放一些数据在Redis中,然后又写一个程序去拿数据,那么是可以拿到这个数据的。Ehcache与Redis明显不同,它与java程序是绑在一起的,java程序活着,它就活着。譬如,写一个独立程序放数据,再写一个独立程序拿数据,那么是拿不到数据的。只能在独立程序中才能拿到数据...原创 2020-01-04 16:09:49 · 504 阅读 · 0 评论 -
一文带你了解 Java 并发中的锁优化和线程池优化!
今天,我们从 Java 内部锁优化,代码中的锁优化,以及线程池优化几个方面展开讨论。Java 内部锁优化当使用 Java 多线程访问共享资源的时候,会出现竞态的现象。即随着时间的变化,多线程“写”共享资源的最终结果会有所不同。为了解决这个问题,让多线程“写”资源的时候有先后顺序,引入了锁的概念。每次一个线程只能持有一个锁进行写操作,其他的线程等待该线程释放锁以后才能进行后续操作。从这个角度...原创 2019-12-31 15:17:14 · 400 阅读 · 0 评论 -
Maven教程,一篇带你走入“内行”!
Maven教程Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。Ma...原创 2019-12-30 14:31:50 · 209 阅读 · 0 评论 -
Java 多态的实现机制,看完你就明白了(纯干货,值得收藏)
浅谈多态机制的意义及实现在面向对象编程(Object-Oriented Programming, OOP)中,多态机制无疑是其最具特色的功能,甚至可以说,不运用多态的编程不能称之为OOP。这也是为什么有人说,使用面向对象语言的编程和面向对象的编程是两码事。多态并没有一个严格的定义,维基百科上给它下的定义比较宽松:Subtype polymorphism, almost universally...原创 2019-12-29 21:42:18 · 184 阅读 · 0 评论 -
「干货」1分钟读懂JavaScript、Ajax、jQuery全部知识点
此文适合零基础、初学者阅读。相信零基础的你看完,将对web前端有一个深刻的认识,对你的学习会有很大帮助。1、JavaScript定义:javaScript的简写形式就是JS,是由Netscape公司开发的一种脚本语言,一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能(其编写的程序可以被嵌入到HTML或XML页面中,并直接在浏览器中解释执行)。组成部分:核心(ECM...原创 2019-12-26 16:21:10 · 464 阅读 · 0 评论 -
Spring 最常用的几大类常用注解总结,史上最强整理!
传统的Spring做法是使用.xml文件来对bean进行注入或是配置aop,事物,这样做有两个缺点:1.如果所有的内容都配置在.xml文件中,那么.xml文件将会非常庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。与可维护性变得很低。2.在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不连贯也会降低开发效率。为了解决这两个问题,Sprin...原创 2019-12-26 16:16:47 · 2079 阅读 · 4 评论 -
一文带你详细了解Java 五大框架之间的对比
Spring 及其优点大部分项目都少不了spring的身影,为什么大家对他如此青睐,而且对他的追捧丝毫没有减退之势呢?Spring是什么:Spring是一个轻量级的DI和AOP容器框架。说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于spring开发的应用一般不依赖于spring的类。DI:称作依赖注入(Depende...原创 2019-12-25 15:43:35 · 856 阅读 · 0 评论 -
SpringBoot中如何优雅的读取yml配置文件?
本文目录一、YAML基本语法二、YAML支持的数据格式三、读取yml配置文件四、测试一、YAML基本语法以缩进代表层级关系缩进不能使用tab,只能用空格空格个数不重要,但是同一层级必须左对齐大小写敏感数据格式为,名称:(空格)值注释单行用#,只能注释单行二、YAML支持的数据格式字面量:数字、字符串、布尔等不可再分的值字符串默认不需要加单引号或者双引号,如果加双引号,它...原创 2019-12-24 15:27:29 · 947 阅读 · 0 评论 -
几种常用 JSON 库性能比较,看完你可以和老板装逼!
本篇通过JMH来测试一下Java中几种常见的JSON解析库的性能。每次都在网上看到别人说什么某某库性能是如何如何的好,碾压其他的库。但是百闻不如一见,只有自己亲手测试过的才是最值得相信的。JSON不管是在Web开发还是服务器开发中是相当常见的数据传输格式,一般情况我们对于JSON解析构造的性能并不需要过于关心,除非是在性能要求比较高的系统。目前对于Java开源的JSON类库有很多种,下面我们取...原创 2019-12-24 15:11:28 · 256 阅读 · 0 评论 -
40道高频Javase面试题及详细答案(建议收藏)
代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的...原创 2019-12-20 14:37:33 · 421 阅读 · 0 评论 -
你不知道的Java内部类
前言看了很多源码,都有用到内部类,但是自己以前在生产环境上,用的确实少,也有用过但是很少,所以今天就打算好好的把它从头到尾的过一遍。可能我写文章有点乱,但是我是发现自己少了啥,我就补啥,如果是写系列的话,就肯定是从头到尾的定义可以将一个类的定义放在里另一个类的内部,这就是内部类,所谓的内部类的概念只是出现在编译阶段,对于jvm层是没有内部类这个概念的。我们可以利用内部类来解决类的单继承问...原创 2019-12-20 11:24:55 · 149 阅读 · 0 评论 -
Jmeter连接Redis,一定很容易学会吧
概述1、jmeter提供一个插件Redis Data Set,但是此插件的功能仅类似于一个CSV Data Set Config。相当于一个前置配置,用于为每个线程、或者每一次循环提供一个参数化的值,这个值从redis的list或者set中读取。2、上述插件并不适用于在测试请求过程动态提取redis中的值并使用(需通过编写beanshell脚本才能实现)。一、Redis Data Set插件...原创 2019-12-19 19:45:37 · 541 阅读 · 0 评论 -
细数程序员出现过的那些Bug! 最搞笑的一个让我笑出猪叫声
Bug是程序员不可避免出现的问题,真要说起来,大部分Bug会在测试阶段被查出,从而继续回炉重造。但是还有一部分Bug非常顽强,且不易被查出。其中有一些会带来严重的后果,然而有一些Bug却是无关紧要,相反却能博得大众一笑!坐过高铁的都知道,中国高铁不仅得到很多外国友人的一致好评,还让他们领悟到了什么叫中国速度,据说有些动车组的速度已经超过了350km/h,不过在程序员的世界里,这实在是太慢了!细...原创 2019-12-19 19:45:10 · 818 阅读 · 0 评论 -
【纯干货】Java 并发基础常见面试题总结
Java 并发基础常见面试题总结什么是线程和进程?1.1. 何为进程?进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。如下图所示,在 windows 中通过查看任...原创 2019-12-19 19:44:27 · 549 阅读 · 0 评论 -
这一次,终于系统的学习了 JVM 内存结构
在 Java 虚拟机规范中,定义了五种运行时数据区,分别是 Java 堆、方法区、虚拟机栈、本地方法区、程序计数器,其中 Java 堆和方法区是线程共享的。接下来就具体看看这 五种运行时数据区。Java 堆(Heap)Java 堆是所有线程共享的一块内存区域,它在虚拟机启动时 就会被创建,并且单个 JVM 进程有且仅有一个 Java 堆。Java 堆是用来存放对象实例及数组,也就是说我们代码中...原创 2019-12-19 19:41:21 · 127 阅读 · 0 评论 -
String类相关面试题很难?不要方,本文将让你彻底明白!
Java中有一个String类,特别让人伤脑筋。因为它可以直接赋值,也可以new一下用构造器生成对象,还可以用加号拼接……这些不同的方式到底有什么区别?本文是个人学习的一些总结,也希望能用最通俗的语言让大家明白这个类。如果大家对于学习Java有任何问题(学习方法,学习效率,如何就业),可以随时来咨询我,这是我的Java交流学习扣扣群:六三零,四七三,七一 一。 多多交流问题,互帮互助,群里有不错...原创 2019-12-18 14:12:24 · 669 阅读 · 0 评论 -
如何成为一名优秀架构师?这12点或许能带给你一些启发
1、做到极致一个项目做到60分位相对容易,从60分做到70分难度变大,从70分做到80分难度会更大,以此类推。也就说分数越高,挑战也会越来越大。从60分到100分的过程,对个人也将会是收获以及成长最大化的阶段。这里说的极致当然是指从60分到100分的过程。2、不设上限公司出于职责分明的考虑,每个工程师都有明确负责的事情。这个出发点本身是没有问题的,也正是这样的安排,在工程师心中有一条隐形的...原创 2019-12-16 10:06:51 · 189 阅读 · 0 评论 -
你与java大神最大的差距不是薪资,而是这10个编程实用技巧
经过一段时间的编码(咦,我已经经历了将近20年的编程生涯,快乐的日子总是过得很快),我们开始感谢那些好习惯。因为,你知道…“任何可能出错的事情,最后都会出错。”这就是人们为什么喜欢进行“防错性程序设计”的原因。偏执的习惯有时很有意义,有时则不够清晰也不够聪明,也许当你想到这样写的人的时候还会觉得有点怪异。下面是我列出的的个人感觉最有用而又偏执的 10 项 Java 编程技巧。请看:把字符串...原创 2019-12-13 12:01:09 · 145 阅读 · 0 评论 -
红黑树深入剖析及Java实现
红黑树是平衡二叉查找树的一种。为了深入理解红黑树,我们需要从二叉查找树开始讲起。BST二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小,右节点的值要比父节点的值大。它的高度决定了它的查找效率。在理想的情况下,二叉查找树增删查改的时间复杂度为O(logN)(其中N为节点数),最坏的情况下为O(N)。当它的高度为logN+1时,我们就说...原创 2019-12-02 16:07:34 · 121 阅读 · 0 评论 -
MYSQL语句大全——收藏一波
一、创建和删除数据库1、创建用户//创建用户且设置密码,在MySQL中行,但在Oracle中行 ----必须在超级管理员身份下操作create user hncu identified by ‘1234’2、创建数据库//创建数据库 并手动指定编码格式CREATE DATABASE IF NOT EXISTS hncu DEFAULT CHARACTER SET ‘utf8’;3、删...原创 2019-12-02 16:05:08 · 205 阅读 · 0 评论 -
涵盖大部分核心组件使用的 Spring Cloud 教程,一定要收藏哦
简介这是一套涵盖大部分核心组件使用的Spring Cloud教程,包括Spring Cloud Alibaba及分布式事务Seata,基于Spring Cloud Greenwich及SpringBoot 2.1.7。20篇文章,篇篇精华,30个Demo,涵盖大部分应用场景。应用场景注册中心注册中心主要用于服务治理,提供了服务的注册与发现功能,微服务架构中的服务可以注册到注册中心,也可以通...原创 2019-12-02 16:02:28 · 221 阅读 · 0 评论 -
Lombok 使用详解,简化Java编程
在 Java 应用程序中存在许多重复相似的、生成之后几乎不对其做更改的代码,但是我们还不得不花费很多精力编写它们来满足 Java 的编译需求比如,在 Java 应用程序开发中,我们几乎要为所有 Bean 的成员变量添加 get() ,set() 等方法,这些相对固定但又不得不编写的代码浪费程序员很多精力,同时让类内容看着更杂乱,我们希望将有限的精力关注在更重要的地方。Lombok 已经诞生很久...转载 2019-11-26 15:51:22 · 162 阅读 · 0 评论 -
涵盖大部分核心组件使用的 Spring Cloud 教程,一定要收藏哦
耗时2个多月,周更两篇的Spring Cloud 全套教程终于完成了,想学习 Spring Cloud 的小伙伴们抓紧了!简介这是一套涵盖大部分核心组件使用的Spring Cloud教程,包括Spring Cloud Alibaba及分布式事务Seata,基于Spring Cloud Greenwich及SpringBoot 2.1.7。20篇文章,篇篇精华,30个Demo,涵盖大部分应用场景...转载 2019-11-26 15:49:39 · 228 阅读 · 0 评论 -
聊聊Nacos配置隔离和分类的使用
最近在使用Nacos来作为配置中心和注册中心,在使用的过程难免会有些问题。有的是框架问题,有的是使用方式的问题,不久前也分享了一篇《最近使用Nacos的一些问题》,感兴趣的可以看看。今天要聊的话题也是在使用过程中发现的,主要是前期赶进度太忙了,停下来之后才有时间去整理,去思考更优的方式。环境隔离环境隔离是最基本的一个需求,在日常开发过程中,常需要不同的环境,比如开发,测试,预发,线上环境。...转载 2019-11-26 15:48:03 · 457 阅读 · 0 评论 -
96秒100亿!如何抗住双11高并发流量?
今年双 11 全民购物狂欢节进入第十一个年头,1 分 36 秒,交易额冲到 100 亿 !比 2018 年快了近 30 秒,比 2017 年快了近 1 分半!这个速度再次刷新天猫双 11 成交总额破 100 亿的纪录。那么如何抗住双 11 高并发流量?接下来让我们一起来聊聊高可用的“大杀器”限流降级技术。服务等级协议我们常说的 N 个 9,就是对 SLA 的一个描述。SLA 全称是 Servi...转载 2019-11-25 15:06:18 · 139 阅读 · 0 评论 -
Java 线程中的未捕获异常正确处理姿势:有病就得治
线程执行完run方法即可正常退出,如果发生了没有捕获的异常则会异常退出。大多数情况下,由于异常导致的线程退出都不是我们想要的。所以在编写的代码的时候要尽可能的捕获处理可以处理的异常,但是也不能光简单的捕获异常然后什么也不做。下面介绍线程异常的处理办法。JVM为我们提供了线程的未捕获异常处理机制,通过Thread的setUncaughtExceptionHandler方法:public void...转载 2019-11-19 19:30:25 · 487 阅读 · 0 评论 -
MYSQL语句大全——收藏一波
一、创建和删除数据库如果大家对于学习Java的学习方法,学习路线以及你不知道自己应该是自学还是培训的疑问,都可以随时来问我,欢迎大家加入我的交流学习qun:前面是⑥三零,中间是四⑦三,后面是七①①,群内有学习教程以及开发工具。1、创建用户//创建用户且设置密码,在MySQL中行,但在Oracle中行 ----必须在超级管理员身份下操作create user hncu identified ...原创 2019-11-15 15:43:03 · 181 阅读 · 0 评论 -
一个农民工自学java找到工作的励志故事
-------------------摘自网络-----------------------------------------------------------------我是一名地地道道的农民工,生活在经济落后的农村,有一个哥哥和一个弟弟,父母都是地道的农民,日出而作,日落而息,我从小到大学习一直很好,从小学到高一都,成绩在全级一直名列前茅,这样我也顺利了考上省的重点高中,然而,每个学期开...转载 2019-11-08 11:31:35 · 324 阅读 · 0 评论 -
github实用的搜索小技巧
查资源,学习优秀的框架,搜索是一种能力!作为程序猿开发中最大的同性交友网站,github当之无愧,里面有很多优秀的开源框架,各种技术大佬混迹其中,有他们总结的学习教程,造好的轮子(开发的各种工具,技术框架),开源的项目等,我们能够从中借鉴学习,也可以获取灵感,或节省时间,完成任务等等。但是我们要从如此多的内容中找到优秀的和我们需要的,需要我们使用一些搜索技巧,缩小搜索范围,帮助我们更快搜索到相关...原创 2019-11-05 15:13:48 · 582 阅读 · 0 评论 -
Java String 对象,你了解多少?
String对象是 Java 中使用最频繁的对象之一,所以 Java 公司也在不断的对String对象的实现进行优化,以便提升String对象的性能,看下面这张图,一起了解一下String对象的优化过程。Java String 对象,你真的了解了吗?在 Java6 以及之前的版本中String对象是对 char 数组进行了封装实现的对象,主要有四个成员变量:char 数组、偏移量 off...转载 2019-10-28 15:38:03 · 149 阅读 · 0 评论 -
Oracle 数据库常用操作语句大全
来源:Crazy Strugglewww.cnblogs.com/1312mn/archive/2017/11/09/7799732.html一、Oracle数据库操作1、创建数据库create database databasename2、删除数据库drop database dbname3、备份数据库完全备份exp demo/demo@orcl buffer=1024 file...转载 2019-10-15 16:38:14 · 278 阅读 · 0 评论 -
为什么阿里巴巴建议开发者谨慎使用继承?
从学习Java的第一天起,我们就知道Java是一种面向对象语言,而学习Java的第二天,我们就知道了面向对象的三大基本特性是:封装、继承、多态。所以,对于很多开发者来说,继承肯定都是不陌生的。但是,继承一定适合所有的场景吗?毫无忌讳的使用继承来做代码扩展真的好吗?为什么《阿里巴巴Java开发手册》中有一条规定:谨慎使用继承的方式进行扩展,优先使用组合的方式实现。本文就来针对这些问题,简单分析...转载 2019-09-16 17:00:40 · 80 阅读 · 0 评论 -
全面梳理关系型数据库和NoSQL的使用情景
目录数据库场景比较MySQL还是PostgreSQL?MongoDB键值(Key-Value)数据库Cassandra图数据库(Neo4j)公司业务适合使用的数据库数据库场景比较全面梳理关系型数据库和NoSQL的使用情景全面梳理关系型数据库和NoSQL的使用情景全面梳理关系型数据库和NoSQL的使用情景MySQL还是PostgreSQL?1、如果你的应用对数据的完整性...原创 2019-09-25 16:51:04 · 265 阅读 · 0 评论 -
2019年 DevOps 学习路径图
DevOps 目前非常热门,我认识的大多数朋友,同事和高级开发者都在努力成为 DevOps 工程师,并将自己作为组织中的 DevOps 拥护者。虽然我承认 DevOps 的好处,它与改进的软件开发和部署直接相关,但从我有限的经验来看,我可以说这不是一件容易的事。在如此多的工具和实践中选择正确的路径是非常困难的。作为一个 Java 博主,我的读者经常会问到一些问题,例如:如何成为 DevOps ...翻译 2019-09-29 17:11:52 · 441 阅读 · 0 评论 -
Vim 与 Git 如何交互
Vim和Git都是高度复杂,可配置的开发者工具。使用Vim工具的开发者可能也需要频繁使用Git工具。这篇文章尝试探索这两个工具如何在多种方式下进行交互。开始时,我不打算约束任何特定的工作流,或者争论、反对一个特定的方法。仅仅是有太多的选择,同时鼓励你开发你自己的工作流。Vim和Git是两个独立的工具,当然可以以各自独立的方式使用。然而,如果将两个工具整合会很有用,能够节约时间,和带来便利。注...原创 2019-09-29 17:15:12 · 609 阅读 · 0 评论 -
SpringMVC知识点梳理—够你面试掰活的(超详细)
1、什么是Spring MVC ?简单介绍下你对springMVC的理解?Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。2、SpringMVC的流程?(1)用户发送请求至前端控制器...原创 2019-10-08 11:07:43 · 148 阅读 · 0 评论