Java
文章平均质量分 90
卜大伟
自由自在
展开
-
jeecg使用心得
接触到jeecg框架是在去年进入公司时候,公司是小型公司,自己没有成熟框架,以BS模式为主流的 web方向,还处于空白,但随着市场的变化,不得不转型来提高营收,此时接触到了jeecg开源框架,此框架为企业级急速开发框架,不了的的可以百度下这类框架的,对于目前状态来说,此框架确实也满足了所需,此刻就开始接触jeecg框架,去年六七月份版本为3.6.5。刚开始接触此类框架连安装都存在困难,好在技术群里转载 2017-12-19 21:21:17 · 615 阅读 · 2 评论 -
大型Java项目架构演进(小白)
增加服务器大部分的访问都在小部分的数据(缓存)上增加缓存(具有哪种业务特点的数据适合使用缓存) 远程缓存 远程单机缓存远程分布式缓存 (集群) 分布式缓存在扩容时会遇到什么问题分布式缓存的算法有哪几种,优缺点本地缓存负载均衡调度服务器(横向扩展服务器,解决服务器处理能力瓶颈) 调度策略都有哪些,优缺点,场景(轮询,权重,地址散列,加权…..)转载 2017-12-19 21:29:31 · 4300 阅读 · 1 评论 -
Java进阶之路——从初级程序员到架构师,从小工到专家
怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之后开始迷茫的老程序员经常会问到的问题。希望这篇文章会是你看到过的最全面最权威的回答。一: 编程基础不管是C还是C++,不管是Java还是PHP,想成为一名合格的程序员,基本的数据结构和算法基础还是要有的。下面几篇文章从思想到转载 2017-12-19 21:42:44 · 221 阅读 · 0 评论 -
node.js会替代java吗?
这是来自Reddit社区的讨论,到处在谈论Node.js以非常快的速度普及,那么 Node.js会替代Java吗?有多少公司采取了Node.js而不是Java?这种八卦话题总是能吸引眼球引起争论,摘录几个精彩回复如下:pgris说:下面这些语言都曾经说要替代Java,但是:Ruby on RailsC#PythonNodeScalaClojure这些转载 2018-01-03 19:59:29 · 14514 阅读 · 11 评论 -
HDFS和FastDFS的上传、下载效率对比测试
测试环境测试使用的FastDFS服务器,HDFS服务器均在vmware虚拟机中搭建,HDFS的服务器直接由FastDFS服务器克隆而来,所以除了一个安装了hadoop,一个安装了FastDFS,其他环境完全一致。HDFS配置了集群环境,一主三从,但是只打开一台从节点服务器。vmware的配置如下图:测试主机(上述vmware、测试代码的运行环境)CPU、内存如下图:编码转载 2018-01-22 09:18:48 · 24969 阅读 · 22 评论 -
Java模版引擎:jsp、freemarker、velocity区别
jsp是大家最熟悉的技术优点:1、功能强大,可以写java代码2、支持jsp标签(jsp tag)3、支持表达式语言(el)4、官方标准,用户群广,丰富的第三方jsp标签库5、性能良好。jsp编译成class文件执行,有很好的性能表现缺点:jsp没有明显缺点,非要挑点骨头那就是,由于可以编写java代码,如使用不当容易破坏mvc结构。velocity是较转载 2018-01-04 21:38:49 · 467 阅读 · 0 评论 -
java 性能调优之内存模型深入详解
1. 概述 多任务和高并发是衡量一台计算机处理器的能力重要指标之一,虽然判断服务器的好坏主要跟CPU,内存,硬盘有关,比如说CUP核心数和线程,内存主要看内存的大小,硬盘主要看转速以及容量,但是服务器性能的高低与好坏,综合来说就是在使用的时候,每秒事务处理数这个指标最能说明问题,也就是说每秒内服务器平均能响应的请求数,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发转载 2018-01-15 19:46:38 · 172 阅读 · 0 评论 -
Java 性能优化
前言 代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考转载 2018-01-15 19:47:17 · 170 阅读 · 0 评论 -
sessionid如何产生?由谁产生?保存在哪里?
sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应。tomcat生成的sessionid叫做jsessionid。session在访问tomcat服务器HttpServletRequest的getSession(true)的时候创建,tomcat的ManagerBase类提供创建sessionid的方法:随机数+时间+j...转载 2018-02-09 19:54:28 · 537 阅读 · 0 评论 -
Log4J日志配置详解
一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、转载 2018-02-07 00:15:33 · 164 阅读 · 0 评论 -
spring boot与spring mvc
Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的 ioc和 aop ioc 提供了依赖注入的容器 aop ,解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。Spring MVC是基于 Servlet 的一个 MVC 框架 主要解决 WEB 开发的问题,因为 Spring 的配置非常复杂,各种XML...转载 2018-02-22 13:21:08 · 321 阅读 · 0 评论 -
java线程系列---Runnable和Thread的区别
作者:刘慰链接:https://www.zhihu.com/question/24696366/answer/29189700来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。国内绝大多数院校用的王珊的《数据库系统概论》这本教材,某些方面并没有给出很详细很明确的解释,与实际应用联系不那么紧密,你有这样的疑问也是挺正常的。我教《数据库原理》这门课有几年了,有很多学生提出了...转载 2018-03-03 10:51:40 · 250 阅读 · 0 评论 -
一年java经验总结
1.引言 毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西。这一年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为系统维护和发布当救火队员的苦恼。遂决定梳理一下自己所学的东西,为大家分享一下。 经过一年意识到以前也有很多认识误区,比如: 偏爱收集,经常收集各种资料视频塞满一个个硬盘,然后心满意足的看着容量不行动。 不重基础,总觉得很多基础东西...转载 2018-03-27 04:17:55 · 3215 阅读 · 1 评论 -
面试哈哈哈
引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。 但是,最近问LZ的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了。 其实...原创 2018-03-27 18:03:48 · 162 阅读 · 0 评论 -
面经哈哈哈
腾讯、百度、阿里面试经验—(1)腾讯面经【转自】http://www.cnblogs.com/zy1987/p/3604958.html本人IT屌丝一枚,毕业4年,5年经验(大四在腾讯实习一年,实习生工资,工作内容同正式员工一样)。非常幸运,先后收到过腾讯、百度和阿里的offer,在这里跟大家分享下经验,同诸君共勉。 本人职业生涯的起点开始于腾讯,能入职腾讯其实非常偶然。...原创 2019-02-09 18:51:55 · 208 阅读 · 0 评论 -
T和?
public static void printColl(ArrayList<?> al){ Iterator<?> it = al.iterator(); while(it.hasNext()) { ...原创 2018-10-09 09:12:45 · 272 阅读 · 0 评论 -
java的annotation的定义和使用
一、注解基本知识1、元注解元注解是指注解的注解。包括 @Retention @Target @Document @Inherited四种。1. Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是接口.2. 参数成员只能用public或默认(default)这两个访问权...转载 2019-01-09 10:31:59 · 362 阅读 · 0 评论 -
并发方法之 非阻塞同步算法与CAS(Compare and Swap)无锁算法 - Mainz
锁(lock)的代价锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,加锁、释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很大的损失。用户态的锁虽然避免了这些问题,但是其实它们只是在没有真实的竞争时才有效。Java在JDK1.5之前都是靠syn转载 2017-03-05 05:25:04 · 1374 阅读 · 0 评论 -
面试之集合
Java LIST MAP SET下各类结构比较java集合工具,说白了,就是一堆别人已经写好的工具结构,你再根据特定的场景选择不同的结构来处理数据。其实里边的坑很多,Java的工具类型换过几代,而为了向下兼容便保留了之前的结构,实际生产使用的时候其实场景相对比较单一,很难全部在生产上全部都用过,久而久之就把知识交还给国家了。。。。。。然后偏偏很多技术面试都会挑这些边边角角来考验你学的是否转载 2017-02-25 21:05:00 · 264 阅读 · 0 评论 -
自定义异常与编译时运行时异常
学到异常处理了,于是想记录下Java异常处理的细节,以增加对异常处理的印象。 Java常见的异常类之间的继承关系: (仿李刚老师的《疯狂Java讲义》异常章节的图) Java的异常被分为两大类:Checked异常(编译时出现异常)和Runtime(运行时异常)。 1、编译时被检测的异常,除了特殊子类Run转载 2017-02-25 10:09:20 · 3595 阅读 · 0 评论 -
Java函数传参问题
今天遇到了一个java程序,需要用参数来返回值(虽然最后用另一种方法实现了),在网上看到这样一篇文章,很受启发。本文章来自于http://hi.baidu.com/xzhilie/blog/item/8bc05c8dbdc86816b21bbae3.html首先,推荐对Java有一定理解的同仁一本书《Practical Java》。在《Practical Java》中也有一个章节介绍Jav转载 2016-05-29 22:15:46 · 463 阅读 · 0 评论 -
String Matching in the legend
传说中的字符串匹配简单实现public int index_bf(String s,String t){ int i= 0, j= 0; while((i<s.length()) && (j<t.length())){ if(s.substring(i).equals(t.substring(j))){ j++; i++; } else{原创 2016-05-31 00:03:17 · 435 阅读 · 0 评论 -
java异常与错误备忘
Error(错误)表示系统级的错误和程序不必处理的异常,一般是指与虚拟机相关的问题,是java运行环境中的内部错误或者硬件问题。比如:内存资源不足等。对于这种错误,程序基本无能为力,除了退出运行外别无选择,它是由Java虚拟机抛出的。Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。转载 2016-06-15 03:12:15 · 245 阅读 · 0 评论 -
Java 自动装箱与拆箱(Autoboxing and unboxing)
什么是自动装箱拆箱基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。 一般我们要创建一个类的对象实例的时候,我们会这样: Class a = new Class(parameter); 当我们创建一个Integer对象时,却可以这样: Integer i = 100; (注意:不是 int i =转载 2016-07-26 14:34:22 · 340 阅读 · 0 评论 -
==和.equals()的区别备忘
java中equals和==的区别 值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。 ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。 equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。 ==比较的是2个对象的地址,而equ转载 2016-06-18 16:01:21 · 251 阅读 · 0 评论 -
Java编程中字符串的常用操作方法
字符一般情况下,当我们处理字符时,我们用原始数据类型 char。示例?1234567char ch = 'a'; // Unicode for uppercase Greek omega characterchar uniChar = '\u039A'; // an array转载 2016-08-08 16:16:01 · 1573 阅读 · 0 评论 -
java中pattern和matcher详解
结论:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matcher(String regex,CharSequence input)一种最基础最简单的匹配。Java正则表达式通过java.util.regex包下的Pattern类与Matcher类实现(建议在阅转载 2016-08-09 15:57:47 · 318 阅读 · 0 评论 -
java实现银行家算法
package pers.weiniee.BankerAlgorithm; import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*; import javax.swing.*; public class mainWindow extends JFrame implements Acti转载 2016-11-21 12:35:55 · 1110 阅读 · 0 评论 -
asm框架
什么是asm呢?asm是assembly的缩写,是汇编的称号,对于java而言,asm就是字节码级别的编程。而这里说到的asm是指objectweb asm,一种.class的代码生成器的开源项目.ASM是一套java字节码生成架构,它可以动态生成二进制格式的stub类或其它代理类,或者在类被java虚拟机装入内存之前,动态修改类。现在挺多流行的框架都使用到了asm.所以从aop追转载 2017-02-28 16:09:42 · 1124 阅读 · 0 评论 -
jvm配参方式
1. 通过eclipse.ini设置jvm参数,eclipse启动后即生效,如下: -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms512m -Xmx512m -Xmn128M -XX:PermSize=64M -XX:MaxPermSize=256M -XX:+DisableExplicit转载 2017-02-28 21:09:56 · 303 阅读 · 0 评论 -
synchronized
synchronized 关键字,它包括两种用法:synchronized 方法和 synchronized 块。1. synchronized 方法:通过在方法声明中加入 synchronized关键字来声明 synchronized 方法。如:public synchronized void accessVal(int newVal);synchronized 方法控制对类成员变量转载 2017-02-22 17:17:25 · 252 阅读 · 0 评论 -
jvm参数设置
在哪里设置,分好几种情况: 1、集成开发环境下启动并使用JVM,如eclipse需要修改根目录文件eclipse.ini; 2、Windows服务器下安装版Tomcat,可使用Tomcat7w.exe工具(tomcat目录下)和直接修改注册表两种方式修改Jvm参数; 3、Windows服务器解压版Tomcat注册Windows服务,方法同上; 4、解压版本的Tomcat, 通过st转载 2017-03-02 16:43:40 · 347 阅读 · 0 评论 -
StringBuilder > StringBuffer > String
最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String转载 2017-02-23 03:17:35 · 206 阅读 · 0 评论 -
多线程共享数据的几种处理方式之synchronized
有4个线程,其中两个线程每次对x加1,另外两个每次对x减1,如何实现?分析:x就是这4个线程要处理的共享数据,不同种线程有不同的处理方式,但操作的数据是共同的,联想到“窗口买票问题”,但是卖票只是单纯的减。所以,多个线程访问共享对象或数据的方式,先看,如果每个线程执行的代码相同,那么就可以使用同一个Runnable对象,这个对象中有被共享的数据,如买票问题。如果每个转载 2017-02-23 05:45:38 · 2445 阅读 · 0 评论 -
jvm调优
/usr/local/jdk/bin/java -Dresin.home=/usr/local/resin -server -Xms1800M -Xmx1800M -Xmn300M -Xss512K -XX:PermSize=300M -XX:MaxPermSize=300M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5 -XX:GCTimeRati转载 2017-03-03 13:28:39 · 252 阅读 · 0 评论 -
使用Enumeration和Iterator遍历集合类详解
前言在数据库连接池分析的代码实例中,看到其中使用Enumeration来遍历Vector集合。后来就找了一些资料查看都有哪些方法可以遍历集合类,在网上找到了如下的使用Enumeration和Iterator遍历集合类的实例。不过这个实例中提到了Enumeration比Iterator的效率更高,其实并不是这样子的,该实例是的时间测试太片面了, 因为数据量太少。随着数据两的增加,两者之间的效率越转载 2017-02-03 16:32:40 · 639 阅读 · 0 评论 -
字符流和字节流的区别备忘
先来看一下流的概念:在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。InputStream 和OutputStream,两个是为字节流设计的,主要用来处理字节或二进制对象,Reader和 Writer.两个是为字符流(一个字符占两个字节)设计的,主要用来处理字符或字符串.转载 2017-03-03 19:17:47 · 202 阅读 · 0 评论 -
java的native方法
Java的native方法一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。 ...转载 2019-01-09 11:26:55 · 158 阅读 · 0 评论