Java工作实用篇
文章平均质量分 83
【Java工作实用篇】专栏所有文章均为博主实际工作中遇到过的,重在实践,一般都会有源码,欢迎转载。
小宝鸽
不要每次都是看到了希望才去坚持,很多时候可能是坚持了才会看到希望!!!
展开
-
2016年总结-JAVA程序员
技术积累、工作心得、学习方向与职业规划、关于生活原创 2017-01-08 13:39:56 · 11592 阅读 · 22 评论 -
【事务】<查询不到同一调用方法其它事务提交的更新>解决方案
最近遇到一个很棘手的问题,至今也解释不清楚原因,不过已经找到了解决方案。先来看看Propagation属性的值含义,@Transactional中Propagation属性有7个选项可供选择:Propagation.MANDATORY。当前方法必须在已经定义的Transaction中运行,如果没有已定义的Transaction则抛出异常。Propagation.NEST。如果没有已定义的Tran原创 2016-09-06 11:39:53 · 4662 阅读 · 0 评论 -
自写JQ控件-树状菜单控件[demo下载]
一个多月没有写博客了,最近也弄一个基于JQ的树状菜单控件,在此分享给大家。另外呢,通过这个例子分享一下怎么写JQ控件的。事实上工作中,也是经常遇到的,有些时候自己想实现一些前端效果,用网上一些插件吧,很强大,但是一些样式可能不是你想要的,改起来牵一发而动全身。这种情况自己写控件会好一些。【小宝鸽也是前端菜鸟,毕竟咱们算是专攻后台的,不规范的地方还望猿友指正】费话不多说,直接看看效果吧这效果图吧,说不原创 2016-07-26 23:17:30 · 5306 阅读 · 0 评论 -
B+树|MYSQL索引使用原则
MYSQL一直了解得都不多,之前写sql准备提交生产环境之前的时候,老员工帮我检查了下sql,让修改了一下存储引擎,当时我使用的是Myisam,后面改成InnoDB了。为什么要改成这样,之前都没有听过存储引擎,于是网上查了一下。事实上使用不同的存储引擎也是有很大区别的,下面猿友们可以了解一下。一、存储引擎的比较注:上面提到的B树索引并没有指出是B-Tree和B+Tree索引,但是B-树和B+树的定义原创 2016-06-19 11:10:58 · 12380 阅读 · 4 评论 -
Java对象锁和类锁全面解析(多线程synchronized关键字)
最近工作有用到一些多线程的东西,之前吧,有用到synchronized同步块,不过是别人怎么用就跟着用,并没有搞清楚锁的概念。最近也是遇到一些问题,不搞清楚锁的概念,很容易碰壁,甚至有些时候自己连用没用对都不知道。今天把一些疑惑都解开了,写篇文章分享给大家,文章还算比较全面。当然可能有小宝鸽理解得不够深入透彻的地方,如果说得不正确还望指出。看之前有必要跟某些猿友说一下,如果看一遍没有看明白呢,也没关原创 2016-06-17 15:51:28 · 56178 阅读 · 28 评论 -
FindBugs入门简介(eclipse安装使用实例)
前言:一般公司都会有一些开发规范,但是事实上,简单看那么一两遍并不能养成习惯,或者将这些规范记住。特别的,对于一些新手,写的代码往往会很糟糕。回头看看你一两年前写的代码就会知道,所谓的”糟糕“是什么一种感觉。使用一些检测工具,对代码质量的控制确有成效。FindBugs便是这一类不错的工具。一、FindBugs介绍FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式原创 2016-05-23 19:40:24 · 11710 阅读 · 1 评论 -
MyBatis批量新增和更新
之前有开发任务一个接口里面有大量的数据新增和更新操作,导致十分缓慢。使用了批量操作之后速度有明显提升,几乎百倍千倍的速度提升。博主之前统计过,通过普通接口一次数据库插入大概需要200ms,对于大量新增或更新操作的情况,数据库批量操作是十分有必要的。废话不多说,直接上代码。博主的resultMap如下:<resultMap id="BaseResultMap" type="com.luo.domain原创 2016-05-16 16:58:43 · 22512 阅读 · 3 评论 -
数据库查询优化——Mysql索引
小宝鸽工作一年了,也是第一次适用Mysql的索引。适用索引之后的速度的提升,让我惊叹不已。隔壁的老员工看到我的大惊小怪,平淡地回了一句“那肯定啊”。对于任何DBMS,索引都是进行优化的最主要的因素。对于少量的数据,没有合适的索引影响不是很大,但是,当随着数据量的增加,性能会急剧下降。小宝鸽试了一下,2.5万数据单表中,无索引:200ms-700ms,添加索引后10ms-15ms,适用redis缓存后原创 2016-05-16 12:37:47 · 16455 阅读 · 1 评论 -
商品搜索引擎资料整理
一、搜索引擎框架搜索引擎Solr和ElasticSearch了解:http://blog.csdn.net/u013142781/article/details/51224988Solr: 教程:http://blog.csdn.net/jediael_lu/article/category/2370109 书籍:Lucene In Action(第2版)中文版ElasticSearch:博客实原创 2016-05-12 18:09:01 · 11878 阅读 · 0 评论 -
Java多线程和线程池
一、Java自带线程池先看看Java自带线程池的例子,开启5个线程打印字符串List:package com.luo.test;import java.util.ArrayList;import java.util.List;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ThreadPool原创 2016-05-12 21:28:53 · 12791 阅读 · 0 评论 -
商品搜索引擎---分词(插件介绍与入门实例)
最近刚好在学习搜索引擎分词,有了解一些分词插件,在这里给各位猿友分享一下。本文主要介绍四个分词插件(ICTCLAS、IKAnalyzer、Ansj、Jcseg)和一种自己写算法实现的方式,以及一些词库的推荐。一、ICTCLAS1.1、介绍中文词法分析是中文信息处理的基础与关键。中国科学院计算技术研究所在多年研究工作积累的基础上,研制出了汉语词法分析系统ICTCLAS(Institute of Com原创 2016-04-18 20:01:36 · 14228 阅读 · 0 评论 -
商品搜索引擎---推荐系统设计
一、前言结合目前已存在的商品推荐设计(如淘宝、京东等),推荐系统主要包含系统推荐和个性化推荐两个模块。系统推荐: 根据大众行为的推荐引擎,对每个用户都给出同样的推荐,这些推荐可以是静态的由系统管理员人工设定的,或者基于系统所有用户的反馈统计计算出的当下比较流行的物品。个性化推荐:对不同的用户,根据他们的口味和喜好给出更加精确的推荐,这时,系统需要了解需推荐内容和用户的特质,或者基于社会化网络,通过找原创 2016-04-11 09:54:11 · 26133 阅读 · 16 评论 -
大道理很多人都懂,只是坚持不下去(浅谈坚持)
一、坚持的动力有这么一个故事:从前有一个风一样的男子(自带音乐背景的那种),名叫苟史云,大学的时候撩到一女神级女友。大四的一个月黑风高的晚上,女友跟他说出了分手,跟一个富二代跑了。那个富二代还对苟史云进行了百般羞辱,令其痛不欲生。他发誓,一定要成为一个比那个富二代更有钱的银,十年之后,他做到了…….咱们再来看看,一些著名的修真小说的主角,有些是父母双亡、有些是只有成神之后才能救出他的母亲…….咱们再原创 2016-04-11 09:27:17 · 6435 阅读 · 9 评论 -
商品搜索引擎--商品推荐
因为工作需要,最近有在学习商品搜索引擎的东西。会涉及到系统推荐、个性化推荐和排序推荐。排序推荐 比较偏向于 输入联想(类似于淘宝,我们输入手机,下面会提示推荐)。但是本文,重点介绍个性化推荐。本文比较偏向于理论设计,关于技术实现,后期如果合适,会将自己理解使用到的进行分享。涉及到公司保密部分,不便分享,望谅解。系统推荐: 据大众行为的推荐引擎,对每个用户都给出同样的推荐,这些推荐可以是静态的由系统管原创 2016-04-05 12:54:14 · 4914 阅读 · 3 评论 -
3月份感觉比较漫长,可能因为经历得比较多吧
1、差点跳槽了(之所以没有跳槽后面会详细道来)2、深刻认识到自己写的技术博客没有什么深度(原因何在?大部分不是因为工作经验不够)3、正式成为CSDN博客专家4、整理好后面需要细细阅读的书籍5、家里的琐碎事(细节自动给各位猿友自动过滤啦)原创 2016-04-05 10:02:00 · 5438 阅读 · 11 评论 -
JVM类加载原理学习笔记
(1)类的生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(Unloading)七个阶段(2)当Java程序需要使用某个类时,JVM会确保这个类已经被加载、连接(验证、准备和解析)和初始化。(3)加载阶段:通过一个类的全限定名来获取此类的二进制字节流原创 2016-03-16 20:31:56 · 3143 阅读 · 1 评论 -
Java垃圾收集学习笔记
(1)除了释放不再被引用的对象,垃圾收集器还要处理堆碎块。请求分配新对象时可能不得不增大堆空间的大小,虽然可以使用的空闲空间是足够的,但是堆中没有没有连续的空间放得下新对象。可能会导致虚拟机产生不必要的”内存不足“错误。(2)使用垃圾收集堆,有一个潜在的缺陷就是加大程序的负担,可能影响程序的性能。因为虚拟机需要追踪哪些对象被正在执行的程序引用,还要动态释放垃圾对象。(3)程序可以调用System.g原创 2016-03-16 09:30:10 · 2664 阅读 · 3 评论 -
数据库面试常问的一些基本概念
1、超键、候选键、主键、外键超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。候选键:是最小超键,即没有冗余元素的超键。主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。外键:在一个表中存在的另一个表的主键称此表的原创 2016-03-10 10:54:06 · 5236 阅读 · 4 评论 -
SQL实例整理
本文适合将w3school的SQL教程(http://www.w3school.com.cn/sql/sql_create_table.asp)都基本看过一遍的猿友阅读。说说博主的情况吧。毕业找工作之前确实有大概看过w3school的SQL教程,然后参加校园招聘,每次遇到一些SQL笔试题,立马懵逼了(大写的)。其实我那时候大概知道怎么写的,只是总是写不正确,或者是对一些特定的而且没有见过的场景的SQ原创 2016-03-09 21:42:21 · 21998 阅读 · 6 评论 -
Java内存管理
前一段时间粗略看了一下《深入Java虚拟机 第二版》,可能是因为工作才一年的原因吧,看着十分的吃力。毕竟如果具体到细节的话,Java虚拟机涉及的内容太多了。可能再过一两年去看会合适一些吧。不过看了一遍《深入Java虚拟机》再来理解Java内存管理会好很多。接下来一起学习下Java内存管理吧。请注意上图的这个:我们再来复习下进程与线程吧:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进原创 2016-03-08 21:36:06 · 11369 阅读 · 3 评论 -
Java经典设计模式之十一种行为型模式(附实例和详解)
Java经典设计模式共有21中,分为三大类:创建型模式(5种)、结构型模式(7种)和行为型模式(11种)。本文主要讲行为型模式,创建型模式和结构型模式可以看博主的另外两篇文章:Java经典设计模式之五大创建型模式(附实例和详解)、 Java经典设计模式之七大结构型模式(附实例和详解)。行为型模式细分为如下11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模原创 2016-03-08 20:06:15 · 15010 阅读 · 1 评论 -
Java经典设计模式之七大结构型模式(附实例和详解)
博主在大三的时候有上过设计模式这一门课,但是当时很多都基本没有听懂,重点是也没有细听,因为觉得没什么卵用,硬是要搞那么复杂干嘛。因此设计模式建议工作半年以上的猿友阅读起来才会理解的比较深刻。当然,你没事做看看也是没有坏处的。总体来说设计模式分为三大类:创建型模式、结构型模式和行为型模式。博主的上一篇文章已经提到过创建型模式,此外该文章还有设计模式概况和设计模式的六大原则。设计模式的六大原则是设计模式原创 2016-03-07 17:53:53 · 25068 阅读 · 9 评论 -
Java经典设计模式之五大创建型模式(附实例和详解)
一、概况总体来说设计模式分为三大类:(1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。(2)结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。(3)行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。二、设计模式的六大原则1原创 2016-03-06 23:41:09 · 29851 阅读 · 1 评论 -
Java I/O学习(附实例和详解)
一、Java I/O类结构以及流的基本概念在阅读Java I/O的实例之前我们必须清楚一些概念,我们先看看Java I/O的类结构图:Java I/O主要以流的形式进行读写数据。流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。根据处理数据的数据类型的不同可以分为:字符流和原创 2016-03-06 18:55:56 · 6379 阅读 · 1 评论 -
关于跳槽,是我心浮气躁?还是我确实该离开了?
最近可能要跳槽了所以准备整理一下JVM、多线程、I/O、设计模式、内存管理以及使用过的一些框架知识点以应付笔试面试吧。即便不为面试,也是必须要整理并学习的。只是现在需要急促点罢了。原本想细细品味,现在只能粗糙阅读了。即便不能细细品味,这些东西的了解也要准备一两个月左右吧。说到跳槽,博主刚毕业不够一年就想着跳槽,似乎有点太心浮气躁了,然而其实博主还是一个比较慎重的人,此决定是经过深思熟虑的,原因有:(原创 2016-03-06 11:28:01 · 7126 阅读 · 56 评论 -
《Java多线程编程核心技术》推荐
写这篇博客主要是给猿友们推荐一本书《Java多线程编程核心技术》。之所以要推荐它,主要因为这本书写得十分通俗易懂,以实例贯穿整本书,使得原本抽象的概念,理解起来不再抽象。只要你有一点点Java基础,你就可以尝试去阅读它,相信定会收获甚大!博主之前网上找了很久都没pdf电子版的,只有不全的阅读版,这里博主提供免费清晰完整版供各位猿友下载: http://download.csdn.net/detai原创 2016-03-04 21:35:43 · 25406 阅读 · 32 评论 -
tomcat内存溢出解决,java.lang.OutOfMemoryError: PermGen space
今天遇到了一个java.lang.OutOfMemoryError: PermGen space异常问题,一直解决不了,根据网上修改了tomcat的配置文件,但是还是解决不了,最后是通过如下方式解决的,解决步骤如下:eclipse–》 window–》show view –》server–》双击图一将会跳转到图二界面–》双击图二的Open launch configuration将跳转到图三–》在原创 2016-03-02 15:44:12 · 4541 阅读 · 0 评论 -
java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener问题解决
今天搭建SSH项目的时候出现了如下错误:严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.context.ContextL原创 2016-03-01 16:57:50 · 4008 阅读 · 1 评论 -
开发人员系统功能设计常用办公软件分享
大多数开发人员随着经验的增长,会进入一个管理层的岗位(开发小组的组长,当然啦博主才毕业大半年,还不是开发组长,只是提前了解了一下分享给大家),需要负责软件系统的设计(系统功能设计和数据库设计)。然后将你的设计思路传递给其他同事(也是一个讨论并完善的过程),让他们协助编码完成软件的开发。在设计思路的传递时,图文结合表述会更加直观清晰些。下面博主分享三个软件,主要用于快速整理处系统功能图和数据库设计:X原创 2016-02-29 20:40:20 · 4760 阅读 · 2 评论 -
Servlet再度学习
虽然Servlet已经使用很多了,但是一直都仅局限在其使用操作上。最近有空想对它进行一个相对全面的了解。下面是博主整理的一篇博文。一、Servlet简介Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servle原创 2016-02-28 10:44:26 · 2665 阅读 · 3 评论 -
JSP九大内置对象
虽然现在基本上使用SpringMVC+AJAX进行开发了Java Web了,但是还是很有必要了解一下JSP的九大内置对象的。像request、response、session这些对象,即便使用其他框架也是会经常用到的。因此十分有了解的必要。这些对象可以在JSP页面中调用,而不需要事先定义,这使得JSP编程更加的方便和快捷。其实这些内置对象都对应着某个Servlet类,在JSP被翻译成Servlet之原创 2016-02-27 18:51:46 · 28082 阅读 · 3 评论 -
linux下安装apache(httpd-2.4.3版本)各种坑
博主的linux是ubuntu 14.04.3。在安装apache最新版httpd-2.4.3的时候遇到各种坑。先提供安装apache httpd-2.4.3所需要的包,博主已经整理好,下载地址:里面包含了:apache 安装包:httpd-2.4.3.tar.gz 依赖的包:apr-1.4.6.tar.gz、apr-util-1.4.1.tar.gz、pcre-8.20.tar.bz2一开始没有原创 2016-02-27 00:53:03 · 7815 阅读 · 3 评论 -
Ajax原理学习
一、AJAX 简介AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,原创 2016-02-26 17:03:26 · 2549 阅读 · 1 评论 -
Shell脚本了解
一、什么事ShellShell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell。二、Shell 脚本Shell 脚原创 2016-02-26 15:52:28 · 2131 阅读 · 2 评论 -
项目部署、配置、查错常用到的Linux命令
一、常用命令ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) ll 会列出该文件下的所有文件信息,包括隐藏的文件的文件详细信息,使用ls -l -a也可以达到同样效果 mkdir 创建目录原创 2016-02-26 12:40:10 · 3658 阅读 · 2 评论 -
阿里云服务器云数据库免费体验(Java Web详细实例)
一、效果展示博主部署了两个war包到阿里云服务器上,一个是没有连接数据库的,另外一个是连接了数据库的。(由于阿里云服务器免费使用15天,下面链接约2016年3月9日后无效)(1)无数据库版访问地址:http://120.25.235.171:8080/web_exception_project-0.0.1-SNAPSHOT/login.jhtml 只能用luoguohui,123456登录,在co原创 2016-02-25 19:22:06 · 7799 阅读 · 2 评论 -
Linux文件编辑命令详细整理
刚接触Linux,前几天申请了个免费体验的阿里云服务器,选择的是Ubuntu系统,配置jdk环境变量的时候需要编辑文件。vi命令编辑文件,百度了一下,很多回答不是很全面,因此编辑文件话了一些时间。这里博主整理了一下,分享给大家。一、vi编辑器有3种基本工作模式首先需要知道vi编辑器有3种基本工作模式,分别是:命令模式、文本输入模式、和末行模式。第一:命令行模式:该模式是进入vi编辑器后的默认模式。任原创 2016-02-25 09:56:21 · 131533 阅读 · 9 评论 -
深入Java虚拟机(4)——网络移动性
一、软件应用程序发展的几个阶段软件应用程序发展经历了如下几个阶段:服务于多个终端用户的大型计算机系统 孤立的个人计算机上运行孤立的软件 客户机/服务器模式 分布式处理模式 内容服务模式(网络移动性的体现)分布式处理模式综合了网络和处理器发展的优点,将进程分布在多个处理器上运行,并允许这些进程共享数据。尽管这种模式有许多大型计算机系统所无法比拟的优势,但它也有个不可忽视的缺点:难于管理。软原创 2016-02-22 20:12:49 · 2025 阅读 · 3 评论 -
深入Java虚拟机(3)——安全
因为网络允许多台计算机共享数据和分布式处理,所以它提供了一条入侵计算机系统的潜在途径,使得其他人可以窃取信息,改变或破坏信息,盗取计算机资源等等。为了解决由网络引起的安全问题,Java体系结构采用了一个扩展的内置安全模型,这个模型随着Java平台的主要版本不断发展:1.0版本的基本沙箱 1.1版本的代码签名和认证 1.2版本的细粒度访问控制Java安全模型侧重于保护终端用户免受从网络下载的、来自原创 2016-02-21 00:12:27 · 2664 阅读 · 1 评论 -
深入Java虚拟机(1)——Java体系结构
Java体系结构Java体系结构包括四个独立但相关的技术:1.Java程序设计语言 2.Java class文件格式 3.Java应用编程接口(API) 4.Java虚拟机当编写并运行一个Java程序时,就同时使用了这四种技术。用Java程序设计语言编写源代码,把它编译成Java class文件,然后在java虚拟机中运行class文件。当编写程序时,通过调用实现了Java应用编程接口(API原创 2016-02-18 11:35:13 · 2556 阅读 · 1 评论