java基础
快乐小左
10余年JAVA开发经验,目前创业中,熟悉SCA、OSGI、设计模式、CQ5、Liferay等技术或框架,熟悉Scrum敏捷过程,喜欢研究团队建设。
对高校业务流程有深入的研究,目前与部分高校有深入的合作
展开
-
Java中堆内存与栈内存分配浅析
<br />Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java 会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。<br /><br />堆内存用来存放由 new 创建的对象和数组,在堆中分配的内存,由 Java 虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或者对象之后,还可以在栈中定义一个特殊的变量,让转载 2010-06-14 13:10:00 · 591 阅读 · 0 评论 -
将科学记数法的数字转换为字符串
我们在从excel里面读取数字或是日期的时候,会碰到一种情况,在excel里面看上去是很正常的一串数字,比如20131114,但是到后台java读出来是2.0131114E7, 我们就需要将其转换回正常的数字String s = "2.0131114E7";if(s.indexOf(".") > 0 && s.indexOf("E") > 0){ java.math.BigDecim原创 2013-11-14 14:23:58 · 2506 阅读 · 0 评论 -
为何要面向接口编程?
我们常常说要面向接口编程,似乎它是一种流行,一种规范,可是为什么要这么做,很多人就说不清楚了,网上也有很多这样的问题,我大概总结一下:1. 一种规范约束 制定者(或者叫协调者),实现者(或者叫生产者),调用者(或者叫消费者)。 接口本质上就是由制定者来协调实现者和调用者之间的关系。 只有实现者和调用者都遵循“面向接口编程”这个准则,制定者的协调目的才能达到。原创 2013-12-24 12:47:35 · 5845 阅读 · 0 评论 -
学习Java开源框架前你应该了解的
转自:http://blog.sina.com.cn/s/blog_4779b7f50100vozd.html 不要上来就学Struts/WebWork/Spring/Hibernate/iBATIS等等框架,先了解一下下面一些技术,对于学习框架来说是十分重要的。 一是Java的反射机制和自省机制。大部分框架都用到这两种机制,因为它们都要实现通过配置文件自动完成类的识别和加载,转载 2014-03-23 17:39:23 · 800 阅读 · 0 评论 -
jsp乱码问解决及编码详解
之前看过很多关于jsp编码问题的资料,自己也实际去研究过,正好网上看到一篇文章讲得很详细,我也就借花献佛,拿来与大家分享。一、问题: 编码问题是JAVA初学者在web开发过程中经常会遇到问题,网上也有大量相关的文章介绍,但其中很多文章并没有对URL中使用了中文等非ASCII的字 符造成服务器后台程序解析出现乱码的问题作出准确的解释和说明。本文将详细介绍由于在URL中使用了中文等非AS...转载 2014-01-09 00:14:35 · 1421 阅读 · 0 评论 -
java集合框架
转自:http://jianshi-dlw.iteye.com/blog/1179834简化图:Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。Java 2集合框架图集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。抽象类:5个抽象类(长虚线表示),转载 2014-06-18 16:09:09 · 729 阅读 · 0 评论 -
java中volatile关键字的含义
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized 和 块转载 2015-03-09 15:27:27 · 674 阅读 · 0 评论 -
JSP文件是否有必要放在WEB-INF下
观点一:(较为赞同)安全性不是真正的原因,因为jsp是要解析后才显示到浏览器的,即使用户知道你jsp的路径,也不可能通过浏览器看到jsp源码的,而如果是通过其它手段入侵服务器的话,放在WEB-INF又和放在别的地方有什么区别呢???真正的原因是,对于早期直接嵌入java代码的jsp,是直接给出jsp路径给用户访问的,这种情况恰恰不能放在WEB-INF,而到了现在的mvc模式,jsp已经转载 2015-05-03 19:43:42 · 5048 阅读 · 1 评论 -
Java Zip实现
package com.sofree.common.utils;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import org.ap原创 2015-06-22 19:33:11 · 598 阅读 · 0 评论 -
Java中getResourceAsStream的用法
首先,Java中的getResourceAsStream有以下几种:1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。2. Class.getClassLoader.ge转载 2015-05-26 15:09:29 · 542 阅读 · 0 评论 -
如此理解面向对象编程
从Rob Pike 的 Google+上的一个推看到了一篇叫《Understanding Object Oriented Programming》的文章,我先把这篇文章简述一下,然后再说说老牌黑客Rob Pike的评论。先看这篇教程是怎么来讲述OOP的。它先给了下面这个问题,这个问题需要输出一段关于操作系统的文字:假设Unix很不错,Windows很差。这个把下面这段代码描述成是Hacke转载 2015-07-16 15:28:14 · 484 阅读 · 0 评论 -
Java异常处理的陋习展播
你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?OutputStreamWriter out = ... java.sql.Connection conn = ... try { // ⑸ Statement stat = conn.createStatement(); ResultSet转载 2015-07-16 15:30:48 · 591 阅读 · 0 评论 -
Java注解导图
原文参考:http://www.cnblogs.com/peida/archive/2013/04/26/3038503.html转载 2015-08-03 14:06:00 · 729 阅读 · 0 评论 -
JDK1.5以后各版本新特性
JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言。今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性。希望能给予帮助。JDK1.5新特性: 1.自动装箱与拆箱:自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封转载 2015-08-03 10:13:21 · 5014 阅读 · 2 评论 -
java 读取文件路径空格和中文的处理
应用部署时,发生文件读取错误,发现是部署路径中含有空格的文件夹名,然后把应用服务器位置迁移了。从网上找到如下方案:1, TestURL().class.getResource("").getPath()或TestURL().class.getResource("").getFile()获得的路径,不能被FileReader()和FileWriter()直接应用。 原因是URL对空格转载 2017-12-15 11:58:35 · 1218 阅读 · 0 评论 -
String的getBytes方法在不同的环境返回不一样的值
今天在用RSA加密的时候发现一个奇怪的问题,我用main方法调用加密方法得到的结果和部署到tomcat后从页面请求得到的结果不一样,进一步测试发现是 str.getBytes();在两种环境下返回的值不一样. 原来getBytes()方法如果不给编码方式的话,默认是按平台默认的字符集来编码,显然这里用main方法调用的时候和tomcat里面调用的时候拿到的字符集不一样,加上字符集后就正常了原创 2018-01-17 18:15:38 · 2954 阅读 · 0 评论 -
jsp编码问题
一、问题: 编码问题是JAVA初学者在web开发过程中经常会遇到问题,网上也有大量相关的文章介绍,但其中很多文章并没有对URL中使用了中文等非ASCII的字 符造成服务器后台程序解析出现乱码的问题作出准确的解释和说明。本文将详细介绍由于在URL中使用了中文等非ASCII的字符造成乱码的问题。1、在URL中中文字符通常出现在以下两个地方:(1)、Query String转载 2013-11-08 19:57:04 · 776 阅读 · 0 评论 -
在hibernate框架下如何保存完整的日期时间到oracle
如果我们的oracle数据库里面的字段是date类型,用逆向工程生成出来的实体类通常都有一个注解@Temporal(TemporalType.DATE)相应的java类型也是java.util.Date类型,我们用通常的方法直接new Date()赋值,会发现写到数据库以后只有日期,时间被清零了。这个据说是因为“规范化”的java.sql.Date只包含年月日信息,时分秒毫秒都会清零。原创 2013-11-19 19:08:16 · 3460 阅读 · 0 评论 -
Java专业人士必备的书籍和网站列表
Roy Miller (roy@roywmiller.com), 创始人兼总裁, The Other Road, LLC对于 Java™ 语言开发人员来说,信息过量是一个真正的问题。每个新入行的程序员都要面临一个令人畏缩的挑战:要进入的行业是一个具有海量知识的行业。要了解的东西简直太多了。对于有经验的老手来说,情况只有些微好转。知识量总在增大,仅仅跟上进度就是一个挑战。如果有一份专业人士必备的书籍和网站列表该有多好!本文就是这个列表。它包含了每个专业的 Java 语言程序员在书架或浏览器书签中必备的最重转载 2010-06-14 13:13:00 · 1042 阅读 · 2 评论 -
java7新特性之Try-with-resources statement
try-with-resources 语句是一个声明了1到多个资源的try语句。资源是指这个try执行完成后必需close掉的对象,比如connection, resultset等。try-with-resources 语句会确保在try语句结束时关闭所有资源。实现了java.lang.AutoCloseable或java.io.Closeable的对象都可以做为资源。下面是一个例子,它会翻译 2012-01-30 23:43:34 · 27729 阅读 · 4 评论 -
面向对象的三个基本特征
面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情转载 2012-01-31 12:19:29 · 919 阅读 · 0 评论 -
Java中ArrayList和LinkedList区 别
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为A转载 2012-02-22 11:08:33 · 528 阅读 · 0 评论 -
使用Override 出现错误的处理方法
如果在使用Eclipse开发Java项目时,在使用 @Override 出现以下错误:The method *** of type *** must override a superclass method主要是因为你的Compiler是jdk5,(5不支持@Override等形式的批注)只要把它改为6就可以了。方法:将window->preferences->java-compi转载 2012-03-31 14:26:16 · 1684 阅读 · 0 评论 -
String类的split方法引起的内存泄漏
一直赞叹Sun对待技术的严谨和优雅(可怜的Sun)。Sun JDK中Java库的源代码,连注释都清清楚楚、规规范范,javadoc注解的使用也一丝不苟,读起来很熟舒服。因此,在日常工作和学习中,经常读读 Java库的源代码,不亦乐乎?如果遇到诡异问题,源代码的帮助就更大了。 闲话少说,回归正题。这几天,一直在为Java的“内存泄露”问题纠结。Java应用程序占用的内存在不断的、有规转载 2012-06-11 21:44:09 · 1870 阅读 · 0 评论 -
Java虚拟机简介
一、什么是Java虚拟机 当你谈到Java虚拟机时,你可能是指: 1、抽象的Java虚拟机规范 2、一个具体的Java虚拟机实现 3、一个运行的Java虚拟机实例 二、Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机转载 2013-01-13 22:24:16 · 767 阅读 · 0 评论 -
javassist使用教程(jar破解)
Javassist是一个开源的java字节码操作工具,主要是对已经编译好的class文件进行修改和处理,这里我写了一个简单的说明,复杂的请去看www.javassist.com的官方文档。首先说明的是我不是不尊重作者的成果,有时候需要给客户选择的时候不可能用户没看就要花钱买,可以先破解了让用户看效果,效果好自然会买的.1. 首先下载开源的代码,或者直接使用它的jar,开转载 2013-02-18 09:58:31 · 10114 阅读 · 2 评论 -
JAVA wait(), notify(),sleep详解
转自:http://blog.csdn.net/zyplus/article/details/6672775 在CSDN开了博客后,一直也没在上面发布过文章,直到前一段时间与一位前辈的对话,才发现技术博客的重要,立志要把CSDN的博客建好。但一直没有找到好的开篇的主题,今天再看JAVA线程互斥、同步的时候又有了新的体会,就以他作为开篇吧。 在JAVA中,是没有类似于PV转载 2013-03-05 10:37:00 · 909 阅读 · 0 评论 -
StringBuffer是安全的吗?
我们知道StringBuffer是线程安全的,StringBuilder是非线程安全的,但是这个安全并不是绝对的。 StringBuffer的方法都加了synchronized关键字来保证每一次方法调用都是线程安全的,但是如果多个线程同时调用StringBuffer的append的方法仍然是有问题的,看下面的例子。 我们有一个单例类public class Single {原创 2013-03-05 11:03:00 · 3614 阅读 · 0 评论 -
LogBack配置及注意事项
具在http:/顶df sd fsdf替blog.sina.com.cn/s/blog_9ed9ac7d01016ja1.html原创 2013-07-16 11:36:06 · 2484 阅读 · 0 评论 -
JAVA数组使用大全
本文分享了关于Java数组最顶级的11大方法,帮助你解决工作流程问题,无论是运用在团队环境或是在私人项目中,你都可以直接拿来用! 0. 声明一个数组(Declare an array) 123String[] aArray = new String[5];String[] bArray = {"a",转载 2013-09-16 14:39:11 · 1039 阅读 · 0 评论 -
Unsupported major.minor version 50.0
我们在运行一些java程序的时候有时会碰到Unsupported major.minor version 50.0 这样的错误,通常这是因为使用了高版本的jdk编译,而使用了低版本的jdk运行。下面是版本的对照J2SE 8 = 52,J2SE 7 = 51,J2SE 6.0 = 50,J2SE 5.0 = 49,JDK 1.4 = 48,JDK 1.3 =原创 2013-10-16 17:48:35 · 1591 阅读 · 0 评论 -
Top 8 Diagrams for Understanding Java
A diagram is sometimes worth 1000 words. The following diagrams are from Java tutorials on Program Creek, they have received the most votes so far. Hopefully, they can help you review what you alrea转载 2013-10-31 09:25:51 · 996 阅读 · 0 评论 -
jdk8以上jvm常用参数
这几天一直在折腾jvm调优的事情。作为新手,把自己遇到的问题记录下来。调整jvm参数的方法有很多,网上也到处是,我也看了很多,选择用tomcat进行jvm参数设置。linux服务器配置:linux系统下的tomcat通过startup.sh启动的所以我们在catalina.sh正式代码开始之前加上JAVA_OPTS="-Xms****m -Xmx****m -XX:Metaspac...转载 2019-07-18 12:39:53 · 1048 阅读 · 0 评论