Java基础
文章平均质量分 84
小宝鸽
不要每次都是看到了希望才去坚持,很多时候可能是坚持了才会看到希望!!!
展开
-
Java对象锁和类锁全面解析(多线程synchronized关键字)
最近工作有用到一些多线程的东西,之前吧,有用到synchronized同步块,不过是别人怎么用就跟着用,并没有搞清楚锁的概念。最近也是遇到一些问题,不搞清楚锁的概念,很容易碰壁,甚至有些时候自己连用没用对都不知道。今天把一些疑惑都解开了,写篇文章分享给大家,文章还算比较全面。当然可能有小宝鸽理解得不够深入透彻的地方,如果说得不正确还望指出。看之前有必要跟某些猿友说一下,如果看一遍没有看明白呢,也没关原创 2016-06-17 15:51:28 · 56212 阅读 · 28 评论 -
JSP九大内置对象
虽然现在基本上使用SpringMVC+AJAX进行开发了Java Web了,但是还是很有必要了解一下JSP的九大内置对象的。像request、response、session这些对象,即便使用其他框架也是会经常用到的。因此十分有了解的必要。这些对象可以在JSP页面中调用,而不需要事先定义,这使得JSP编程更加的方便和快捷。其实这些内置对象都对应着某个Servlet类,在JSP被翻译成Servlet之原创 2016-02-27 18:51:46 · 28098 阅读 · 3 评论 -
Java基础之集合
最近看泛型的时候,刚好看到集合相关的,所以想把一些常用集合类型的思路理清一下。参考文章: http://android.blog.51cto.com/268543/400557/ http://www.cnblogs.com/xwdreamer/archive/2012/05/30/2526822.html一、Java集合结构图但是本文只介绍在实际工作中比较经常使用的集合类型,下面是Java常用原创 2015-12-30 16:16:57 · 5918 阅读 · 2 评论 -
Java基础之泛型
一、泛型的理解与简单使用泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种原创 2015-12-31 17:02:10 · 3771 阅读 · 1 评论 -
深入Java虚拟机(3)——安全
因为网络允许多台计算机共享数据和分布式处理,所以它提供了一条入侵计算机系统的潜在途径,使得其他人可以窃取信息,改变或破坏信息,盗取计算机资源等等。为了解决由网络引起的安全问题,Java体系结构采用了一个扩展的内置安全模型,这个模型随着Java平台的主要版本不断发展:1.0版本的基本沙箱 1.1版本的代码签名和认证 1.2版本的细粒度访问控制Java安全模型侧重于保护终端用户免受从网络下载的、来自原创 2016-02-21 00:12:27 · 2664 阅读 · 1 评论 -
《Java多线程编程核心技术》推荐
写这篇博客主要是给猿友们推荐一本书《Java多线程编程核心技术》。之所以要推荐它,主要因为这本书写得十分通俗易懂,以实例贯穿整本书,使得原本抽象的概念,理解起来不再抽象。只要你有一点点Java基础,你就可以尝试去阅读它,相信定会收获甚大!博主之前网上找了很久都没pdf电子版的,只有不全的阅读版,这里博主提供免费清晰完整版供各位猿友下载: http://download.csdn.net/detai原创 2016-03-04 21:35:43 · 25410 阅读 · 32 评论 -
深入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 · 2557 阅读 · 1 评论 -
深入Java虚拟机(2)——Java的平台无关性
一、平台无关性的好处Java技术在网络环境下非常有用,其中一个关键理由是,用Java创建的可执行二进制程序,能够不加改变地运行于多个平台。这样的平台无关性随之带来许多的好处。这将极大地减轻系统管理员的工作;此外Java的平台无关性在嵌入式设备环境下也非常有用;从开发者的观点看,Java能够减少开发和在多个平台上部署应用程序的成本和时间。Java的平台无关性自然不言而喻。对于我们开发者来说,可能对下面原创 2016-02-18 23:29:45 · 6368 阅读 · 2 评论 -
JVM类加载原理学习笔记
(1)类的生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(Unloading)七个阶段(2)当Java程序需要使用某个类时,JVM会确保这个类已经被加载、连接(验证、准备和解析)和初始化。(3)加载阶段:通过一个类的全限定名来获取此类的二进制字节流原创 2016-03-16 20:31:56 · 3143 阅读 · 1 评论 -
Servlet再度学习
虽然Servlet已经使用很多了,但是一直都仅局限在其使用操作上。最近有空想对它进行一个相对全面的了解。下面是博主整理的一篇博文。一、Servlet简介Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servle原创 2016-02-28 10:44:26 · 2666 阅读 · 3 评论 -
Java I/O学习(附实例和详解)
一、Java I/O类结构以及流的基本概念在阅读Java I/O的实例之前我们必须清楚一些概念,我们先看看Java I/O的类结构图:Java I/O主要以流的形式进行读写数据。流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。根据处理数据的数据类型的不同可以分为:字符流和原创 2016-03-06 18:55:56 · 6379 阅读 · 1 评论 -
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 · 12792 阅读 · 0 评论 -
Java生成中间logo的二维码(还可以加上二维码名称哦)
最近有负责微信开发,对于微信开发的项目,肯定少不了二维码啦,正好有个这样的需求,这对不同的商品生成一个二维码,扫码即刻下单。博主就弄了一个二维码生成的工具类。弄出来之后,产品经理又说了,中间放上公司的logo是不是好一点?加上吧,加上公司logo之后,产品经理想了想,每个商品都有个二维码,销售人员有很多个商品二维码,群发给用户,在qq群上,微信群上,怎么知道哪个二维码对应哪个商品的呢?于是决定要加上商品名称了。原创 2015-12-15 09:07:35 · 23706 阅读 · 31 评论 -
Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建
这篇文章主要讲解使用eclipse对Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建过程,包括里面步骤和里面的配置文件如何配置等等都会详细说明。如果还没有搭建好环境(主要是Maven+MySQL的配置)的猿友可以参考博主以前的一篇文章: http://blog.csdn.net/u013142781/article/details/50300233接下来马上进入项目原创 2015-12-22 16:44:11 · 33260 阅读 · 50 评论 -
Java经典设计模式之十一种行为型模式(附实例和详解)
Java经典设计模式共有21中,分为三大类:创建型模式(5种)、结构型模式(7种)和行为型模式(11种)。本文主要讲行为型模式,创建型模式和结构型模式可以看博主的另外两篇文章:Java经典设计模式之五大创建型模式(附实例和详解)、 Java经典设计模式之七大结构型模式(附实例和详解)。行为型模式细分为如下11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模原创 2016-03-08 20:06:15 · 15027 阅读 · 1 评论 -
深入Java虚拟机(4)——网络移动性
一、软件应用程序发展的几个阶段软件应用程序发展经历了如下几个阶段:服务于多个终端用户的大型计算机系统 孤立的个人计算机上运行孤立的软件 客户机/服务器模式 分布式处理模式 内容服务模式(网络移动性的体现)分布式处理模式综合了网络和处理器发展的优点,将进程分布在多个处理器上运行,并允许这些进程共享数据。尽管这种模式有许多大型计算机系统所无法比拟的优势,但它也有个不可忽视的缺点:难于管理。软原创 2016-02-22 20:12:49 · 2025 阅读 · 3 评论 -
Java经典设计模式之五大创建型模式(附实例和详解)
一、概况总体来说设计模式分为三大类:(1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。(2)结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。(3)行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。二、设计模式的六大原则1原创 2016-03-06 23:41:09 · 29863 阅读 · 1 评论 -
Java经典设计模式之七大结构型模式(附实例和详解)
博主在大三的时候有上过设计模式这一门课,但是当时很多都基本没有听懂,重点是也没有细听,因为觉得没什么卵用,硬是要搞那么复杂干嘛。因此设计模式建议工作半年以上的猿友阅读起来才会理解的比较深刻。当然,你没事做看看也是没有坏处的。总体来说设计模式分为三大类:创建型模式、结构型模式和行为型模式。博主的上一篇文章已经提到过创建型模式,此外该文章还有设计模式概况和设计模式的六大原则。设计模式的六大原则是设计模式原创 2016-03-07 17:53:53 · 25086 阅读 · 9 评论 -
Java Web前端到后台常用框架介绍
一、SpringMVChttp://blog.csdn.net/evankaka/article/details/45501811Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简原创 2016-03-18 11:44:16 · 33622 阅读 · 10 评论 -
Java内存管理
前一段时间粗略看了一下《深入Java虚拟机 第二版》,可能是因为工作才一年的原因吧,看着十分的吃力。毕竟如果具体到细节的话,Java虚拟机涉及的内容太多了。可能再过一两年去看会合适一些吧。不过看了一遍《深入Java虚拟机》再来理解Java内存管理会好很多。接下来一起学习下Java内存管理吧。请注意上图的这个:我们再来复习下进程与线程吧:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进原创 2016-03-08 21:36:06 · 11374 阅读 · 3 评论 -
关于Java,那些我心存疑惑的事(不断更新中...)
本文主要列出一些Java常用到确又让大家不怎么注意的问题。将会不断更新,欢迎关注……如有觉得不合理之处,欢迎评论交流,没有火花怎么印象深刻?(1)Java到底是值传递?还是引用传递?揪出这个问题是因为有同学说开始写博客了,于是他写怎么篇博客:Java到底是值传递?还是引用传递?,说让我看看。我看完觉得挺合理的,马上给他回复说“不错哦”。合理是合理,但是按照他的说法,那什么不是传值过去啊,都是值传递?原创 2016-02-18 09:36:38 · 2192 阅读 · 2 评论 -
Java垃圾收集学习笔记
(1)除了释放不再被引用的对象,垃圾收集器还要处理堆碎块。请求分配新对象时可能不得不增大堆空间的大小,虽然可以使用的空闲空间是足够的,但是堆中没有没有连续的空间放得下新对象。可能会导致虚拟机产生不必要的”内存不足“错误。(2)使用垃圾收集堆,有一个潜在的缺陷就是加大程序的负担,可能影响程序的性能。因为虚拟机需要追踪哪些对象被正在执行的程序引用,还要动态释放垃圾对象。(3)程序可以调用System.g原创 2016-03-16 09:30:10 · 2664 阅读 · 3 评论 -
Maven入门(含实例教程)
Maven这个个项目管理和构建自动化工具,越来越多的开发人员使用它来管理项目中的jar包。接下来小宝鸽,将从下面几个方向介绍maven:(1)Maven简单介绍 (2)Maven安装与配置 (3)Maven携手eclipse构建项目 (4)Maven的常用命令 (5)Maven实例猿友门抓紧了,马上起飞了:(1)Maven的简单介绍Maven这个个项目管理和构建自动化工具,越来越多的开发人员原创 2015-12-15 15:41:59 · 80797 阅读 · 17 评论 -
Spring中@Transactional事务回滚(含实例详细讲解,附源码)
一、使用场景举例在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用。下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除某个部门的时候,假设我们默认删除对应的成员。但是在执行的时候可能会出现这种情况,我们先删除部门,再删除成员,但是部门删除成功了,删除成员的时候出异常了。这时候我们希望如果成员删除失败了,之前删除的部门也取原创 2015-12-28 22:17:48 · 146133 阅读 · 20 评论 -
Java8所有的包介绍(由英文文档翻译而来)
翻译了一天,终于把翻译任务的“Java 8所有的包介绍”翻译完了,收获也是非常大,了解了Java8中所有包的作用,对Java8有了一个整体的了解,另外也是提高了自身的阅读能力。http://code.csdn.net/translations/97 这是我参与的一个翻译项目“Java-SE8-API文档”翻译。 希望有更多的人参与到翻译当中,一起提高一起学习。原创 2015-12-15 11:07:04 · 8585 阅读 · 9 评论 -
java调用百度地图API根据地理位置中文获取经纬度
百度地图api提供了很多地图相关的免费接口,有利于地理位置相关的开发,百度地图api首页:http://developer.baidu.com/map/。博主使用过根据地理根据地理位置中文获取经纬度的api,下面提供java调用百度api接口的代码。原创 2015-07-27 15:08:34 · 25859 阅读 · 8 评论 -
Java中synchronized的使用实例
一、使用场景在负责后台开发的时候,很多时候都是提供接口给前端开发人员去调用,会遇到这样的场景:需要提供一个领奖接口,每个用户名只能领取一次,我们可以将成功领取的用户在数据库用个标记保存起来。如果这个用户再来领取的时候,查询数据库看该用户是否领取过。但是问题来了,假设用户手速很快,极短时间内点了两次领奖按钮(前端没有进行控制,我们也不能依赖前端去控制)。那么可能掉了两次领奖接口,而且有可能第二次调用的原创 2015-12-30 11:45:34 · 8014 阅读 · 0 评论 -
Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)
下面小宝鸽将分享一篇Mybatis分页功能的博文,下面将给出详细的步骤,跟着博主的节奏肯定能实现。另外最后还会附上整个工程的源码。如果是没有使用过maven的猿友可自行下载相关的jar包即可。一、项目搭建关于项目搭建,小宝鸽以前写过一篇Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建,这篇文章提供了详细的搭建过程,而且提供了源码下载,接下来的将在这个源码的基础上继续开原创 2015-12-26 21:18:02 · 16431 阅读 · 7 评论 -
Java基础之枚举妙用
对于枚举,初学Java的时候可能我们就已经接触过了,但是在毕业前,其实一直都不知道真正工作里面枚举是怎么用的,枚举有什么用?接下来,博主就介绍枚举在实际工作中的一种使用场景,本文只适合初级的小菜鸟看哈,大神看了可别嘲笑这是水文哦,哈哈!一、使用场景在实际的工作中,比如我有一个选择家庭关系的下拉选择框,大家都是会是value和desc的组合,一般我们保存到数据库的都是value(英文),然后用户看到的原创 2016-01-06 19:00:59 · 5061 阅读 · 4 评论 -
AES加密解密&&SHA1、SHA加密&&MD5加密
AES加密解密 SHA1、SHA加密 MD5加密 二话比说马上附上代码:原创 2015-12-17 09:35:15 · 11753 阅读 · 2 评论 -
javaweb异常提示信息统一处理(使用springmvc,附源码)
一、前言后台出现异常如何友好而又高效地回显到前端呢?直接将一堆的错误信息抛给用户界面,显然不合适。先不考虑代码实现,我们希望是这样的:(1)如果是页面跳转的请求,出现异常了,我们希望跳转到一个异常显示页面,如下:当然,这里的界面不够美观,但是理论是这样的。(2)如果是ajax请求,那么我们,希望后台将合理的错误显示返回到ajax的回调函数里面,如下:$.ajax({ type: "post原创 2016-02-01 18:56:38 · 11759 阅读 · 1 评论 -
Java异常封装(自己定义错误码和描述,附源码)
真正工作了才发现,Java里面的异常在真正工作中使用还是十分普遍的。什么时候该抛出什么异常,这个是必须知道的。当然真正工作里面主动抛出的异常都是经过分装过的,自己可以定义错误码和异常描述。下面小宝鸽就为大家介绍一个Java异常简单封装的例子。在给出异常分装例子之前,需要给大家普及Java里面的checked异常和unchecked异常的个概念。一、checked异常和unchecked异常这里之所以原创 2016-01-29 22:30:54 · 38358 阅读 · 5 评论 -
给pdf文件添加防伪水印logo(附工程源码下载)
pdf添加水印logo这种需求场景确实很少,有些时候一些销售单据生成pdf添加一个水印logo,做一个简单的防伪效果,虽然实际上并没有太大作用,但是产品经理说要,巴拉巴拉……省略一万字。下面将源码分享给猿友们,有用就looklook,没用就转移视线吧。一、效果展示没加水印的pdf:添加水印后的pdf:这里截图效果可能不是很明显,有需要的猿友可以直接下载下面的源码压缩包,里面有添加水印后的pdf文件。原创 2016-01-28 20:16:45 · 8460 阅读 · 1 评论 -
Log4j日志在java项目中的使用(附工程源码)
一、关于Log4j日志Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码原创 2015-12-25 23:17:47 · 20130 阅读 · 1 评论 -
RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)
一、消息队列使用场景或者其好处消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息队列在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口原创 2016-01-09 10:23:31 · 42296 阅读 · 16 评论 -
Java我的高效编程之环境搭建
前言:刚毕业, 工作之余写博客有利于提高技术,更是能帮助人,接下来会认认真真写好每一篇博客。希望大家多多支持。废话不多说,马上开始。这是一篇环境搭建的博客。jdk+eclipse+svn+maven+mysql+tomcat7.0+sublime安装包和jar插件配置管理工具-SVN http://download.csdn.net/detail/u013142781/9355417 tomca原创 2015-12-14 20:42:04 · 31172 阅读 · 28 评论 -
Java编程之路相关书籍(三个维度)
工作的空余时间可以了解的java方面书籍原创 2015-07-24 10:40:10 · 6391 阅读 · 2 评论 -
Java我的高效编程之常用函数
在开发的过程当中,一些经常用到的函数可以自己保存起来,下次需要使用的时候可以复制粘贴,这样可以大大提高效率。下面博主介绍自己的的几个工具类:时间函数库、文件处理函数库、对象的复制。原创 2015-12-15 10:47:22 · 9026 阅读 · 6 评论