Java
du_xian_sheng
这个作者很懒,什么都没留下…
展开
-
java提高篇(四)-----抽象类与接口
接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 抽象类与接口是Java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。 一、抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并转载 2017-03-08 13:02:49 · 363 阅读 · 0 评论 -
事务与多线程和同步之间的关系
事务为保证一个操作的原子性而设置的,一个事务必定包含多个操作,多个操作再逻辑上要保证完整一致,如果中间只要有一个操作失败,那么事务必须回滚,必须回到整个操作的初始状态多线程为了提高应用的执行效率而设置的,多个线程可以做同样的事情或不同的事情,单个线程只能处理1个客户请求,那么多线程就可以同时处理多个请求。每一个线程处理的业务涉及到多个操作,如果有一致性的要求,那么必须介入事务同步是转载 2017-03-08 10:18:00 · 4473 阅读 · 1 评论 -
Java中的基础----堆与栈的介绍、区别
堆和栈都是Java中常用的存储结构,都是内存中存放数据的地方。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~我是可爱的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~堆:(对象)引用类型的变量,其内存分配在堆上或者常量池(字符串常量、基本数据类型常量),需要通过new等方式来创建。堆内存转载 2017-03-04 17:53:11 · 301 阅读 · 0 评论 -
JAVA中堆和栈的区别
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。转载 2017-03-04 17:39:50 · 218 阅读 · 0 评论 -
java中BufferedInputStream类和FileInputStream区别
这个缓冲区的概念比较抽象,其实这么说就明白了不带缓冲的操作,每读1024个字节就要从存储文件的磁盘当中写入1024个字节(byte[] buffer = new byte[1024]),由于涉及磁盘的IO操作相比内存的操作要慢很多,所以不带缓冲的流效率很低带缓冲的流,可以一次读很多字节(超过定义的1024个字节),只是先放到内存里,下次再要读取1024个字节就先去缓存里读,不够再到文件中原创 2017-03-04 11:49:20 · 778 阅读 · 0 评论 -
java web项目整体异常处理机制
在实际的j2ee项目中,系统内部难免会出现一些异常,如果把异常放任不管直接打印到浏览器可能会让用户感觉莫名其妙,也有可能让某些用户找到破解系统的方法。出来工作一年时间了,我也大概对异常处理有了一些了解,在这呢小弟简单介绍下个人对异常处理的见解,抛砖引玉,希望各位大神提出宝贵的意见和建议。 就拿spring+struts2+hibernate项目说明:通常一个页面请求到后台以转载 2017-02-26 18:04:40 · 469 阅读 · 0 评论 -
关于web.xml的url映射的小知识
关于web.xml的url映射的小知识:/ 会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url/* 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)原创 2017-02-25 10:35:48 · 1148 阅读 · 0 评论 -
WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。
WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。转载 2017-02-22 11:02:41 · 410 阅读 · 0 评论 -
web.xml中load-on-startup标签的含义
在servlet的配置当中,5的含义是:标记容器是否在启动的时候就加载这个servlet。当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。正数的值越小,启动该servlet的优先级越高。转载 2017-02-21 05:35:05 · 629 阅读 · 0 评论 -
eclipse导入已经存在workspace里的工程
按照file->import->generalexisting project in workspace->browse,选择了要导入的工程或者整个workspace,这时下一步是灰色的,点不了,显示Some projects cannot be imported because they already exist in the workspace.只需要把copy to worksap转载 2017-02-20 23:35:12 · 841 阅读 · 0 评论 -
动态代理 ,接口 ,抽象类
包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法。注意,抽象类和普通类的主要有三点区别: 1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。 2)抽象类不能用来创建对象; 3)如果一个类继承于一个抽象类,则子类必转载 2017-02-15 18:25:30 · 1521 阅读 · 0 评论 -
线程安全和线程不安全
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据比如一个 ArrayList 类,在添加一个元素的时候,它可能会有两步来完成:1. 在 Items[Size] 的位置存放原创 2017-02-14 00:38:33 · 343 阅读 · 0 评论 -
多线程的概念
什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的,线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创原创 2017-02-14 00:20:36 · 374 阅读 · 0 评论 -
JDBC自动提交和批处理操作
今天用JDBC与数据库进行交互的时候,报错如下:*********************************************************************************************com.ibm.db2.jcc.b.SqlException: [jcc][t4][10251][10308][3.53.70] 正在连接上执行事务时,请转载 2017-02-12 18:02:41 · 2847 阅读 · 0 评论 -
cglib-nodep-2.2.3.jar第三方JAR包动态代理使用
引入 cglib-nodep-2.1_3.ja包cglib产生的代理类是目标类的子类定义接口,让切面都继承它,方便加入到动态代理方法 的那个类中使用在SalaryInterceptor类中使用 private List interceptors; 1 package cn.itcast.cglibproxy.salary;2 3 public interface Inter转载 2016-12-20 17:56:40 · 4351 阅读 · 0 评论 -
再探java基础——throw与throws
再探Java基础——throw与throws以前虽然知道一些异常的处理,也用过一些,但是对throw和throws区别还是有不太清楚。今天用实例测试一下。异常处理机制异常处理是对可能出现的异常进行处理,以防止程序遇到异常时被卡死,处于一直等待,或死循环。异常有两个过程,一个是抛出异常;一个是捕捉异常。抛出异常抛出异常有三种形式,一是throw,一个t转载 2016-12-20 16:08:55 · 330 阅读 · 0 评论 -
java.util.Date和java.sql.Date的区别和相互转化
java.util.Date和java.sql.Date的区别和相互转化 Java.util.Date是在除了SQL语句的情况下面使用的。java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分它们都有getTime方法返回毫秒数,自然就可以直接构建。 java.util.Date 是 java.sql.Date 的父类,前者是常用的表示时间的类,我们通常格式化转载 2016-11-13 17:32:16 · 341 阅读 · 0 评论 -
10分钟带你理解Java中的反射
一、简介Java 反射是可以让我们在运行时获取类的方法、属性、父类、接口等类的内部信息的机制。也就是说,反射本质上是一个“反着来”的过程。我们通过new创建一个类的实例时,实际上是由Java虚拟机根据这个类的Class对象在运行时构建出来的,而反射是通过一个类的Class对象来获取它的定义信息,从而我们可以访问到它的属性、方法,知道这个类的父类、实现了哪些接口等信息。二、Class类转载 2016-11-13 15:54:04 · 396 阅读 · 0 评论 -
java里,new HashSet(0),这个0是什么意思
private Set roles = new HashSet(0);定一了一个集合roles,初始容量为0。roles里面的每一个元素都是Role类的一个对象,java 1.5新增的泛型定义。 roles里面只能放Role类对象,放其他编译不通过也就是通过来指定Set中的内容,例如:Set roles = new HashSet(0);只能放置转载 2016-10-26 17:33:37 · 2583 阅读 · 0 评论 -
Java 中的 static 使用之静态初始化块
Java 中可以通过初始化块进行数据赋值。如:在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。我们来看一段代码:运行结果:通过原创 2016-10-21 15:03:28 · 409 阅读 · 0 评论 -
java中String s = new String("abc")创建了几个对象?
云端飘String s=new String("abc")创建了几个对象?String str=new String("abc"); 紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢?相信大家对这道题并不陌生,答案也是众所周知的,2个。接下来我们就从这道题展开,一起回顾一下与创建String对象相关的一些JAVA知识。 我们可转载 2017-03-10 14:51:00 · 1101 阅读 · 1 评论 -
web.xml中在Servlet中获取context-param和init-param内的参数
很多诸如filter、listener不是由我们写的而是第三方提供的,他只声明的必须的变量并给了个默认值保证他的完整,而此时的默认值不是你需要的你就可以用init-param来改变它web.xml里面可以定义两种参数:1.application范围内的参数,存放在servletcontext中,在web.xml中配置如下: [html] view转载 2016-12-18 14:58:19 · 661 阅读 · 0 评论 -
java转换字符串编码格式 (解码错误,重新解码)
字符集概念:规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值代表了哪个文字(解码)的转换关系。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。 乱码场景(纯属瞎掰): 1) 前台输入utf-8编码的一串汉字(string1)。 (页面编码为utf-8, 在内存中会将这串汉字以utf-8编码为对应的二进制流存储) 2) 这转载 2017-03-29 15:35:32 · 4279 阅读 · 0 评论 -
java中主要有四个场景需要进行编码解码
在java中主要有四个场景需要进行编码解码操作: (1):I/O操作 (2):内存 (3):数据库 (4):javaWebI/O操作在前面LZ就提过乱码问题无非就是转码过程中编码格式的不统一产生的,比如编码时采用UTF-8,解码采用GBK,但最根本的原因是字符到字节或者字节到字符的转换出问题了,而这种情况的转换最主要的场景就是I/O操作的时候。当然I/O操作主要包括转载 2017-03-29 18:13:12 · 1915 阅读 · 0 评论 -
深入理解java异常处理机制
1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。转载 2017-04-09 16:23:15 · 315 阅读 · 0 评论 -
PreparedStatement 预编译
什么是预编译语句? PreparedStatement是java.sql中的一个接口,它是Statement的子接口。通过Statement对象执行sql语句时,需要将sql语句发送给DBMS,由DBMS首先进行编译再执行(在创建通道的时候并不进行sql的编译工作,事实上也无法进行编译)。而通过PreparedStatement不同,在创建PreparedStatement对象时就指定了sql转载 2017-03-25 17:05:05 · 738 阅读 · 1 评论 -
java中判断文件是否为空内容
在File类中并没有提供判断文件是否为空的方法,但可以借助length()方法的返回值进行判断。如果文件不存在或文件为空时,length()方法返回0。File file = new File("D:\\test.txt"); if(file.exists() && file.length() == 0) { System.out.println("文件为空!");转载 2017-04-13 04:55:28 · 9174 阅读 · 0 评论 -
JavaWeb学习总结(十三)——使用Session防止表单重复提交
只为成功找方法,不为失败找借口!JavaWeb学习总结(十三)——使用Session防止表单重复提交 在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交。一、表单重复提交的常见应用场景有如下的form.jsp页面 1 @ page lan转载 2017-05-23 19:35:51 · 746 阅读 · 0 评论 -
线程的2种实现方式
1.继承Thread类声明一个内部(外部)类,假如名字叫做 Thread1,继承Thread类,重写(Override)其中的run方法。定义一个类,里面再定义一个Thread1类型的对象,调用start()方法。举个例子吧:public class ThreadTest1 {public static void main(String[] args){转载 2017-05-05 11:42:04 · 325 阅读 · 0 评论 -
Java的Collection介绍
Collection层次结构Collection[plain] view plain copy 子接口 Set,List 集合中只能放置对象的引用,不能放置原生数据类型, 我们需要使用原生数据类型的封装类才能加入到集合中 Ordered与Sorted接口[plain] view plai转载 2017-05-06 17:19:46 · 545 阅读 · 0 评论 -
JSP中的动态包含和静态包含的区别
JSP中有两种包含:静态包含:动态包含:它们有什么区别,都知道,JSP在WEB服务器中都要转换成一个Java文件,java文件再编译成一个class文件。当请求JSP页面的时候,实际上运行的是这个class文件。从这个方面来说:静态包含发生在:JSP---->java文件阶段。动态包含发生在:执行class文件阶段。动态加入。静态包含:只生成一个java文件,动态包含:生成转载 2017-05-06 18:28:03 · 729 阅读 · 0 评论 -
Java中实现对象的比较:Comparable接口和Comparator接口
在实际应用中,我们往往有需要比较两个自定义对象大小的地方。而这些自定义对象的比较,就不像简单的整型数据那么简单,它们往往包含有许多的属性,我们一般都是根据这些属性对自定义对象进行比较的。所以Java中要比较对象的大小或者要对对象的集合进行排序,需要通过比较这些对象的某些属性的大小来确定它们之间的大小关系。一般,Java中通过接口实现两个对象的比较,比较常用就是Comparable接口和Comp转载 2017-05-06 18:57:22 · 570 阅读 · 0 评论 -
Java运行时异常和非运行时异常
1.Java异常机制 Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示:2.Throwable Throwable类是所有异常或错误的超类,它有两个子类:Error和Exception,分别表示错误和异常。其中异常Exc转载 2017-05-09 19:08:51 · 889 阅读 · 0 评论 -
Servlet使用注解配置URl提示404错误
Servlet使用注解配置URl提示404错误之前配置Servlet作为URL的时候,都是在web.xml中配置的,配置方法大概如下:如果我有这样一个Servlet的话:hello.Java代码:[java] view plain copy package test; import java.io.IOException转载 2017-05-18 18:22:54 · 4967 阅读 · 1 评论 -
TCP/IP、Http、Socket的区别
网络由下往上分为 物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可比性, socket则是对TCP/IP协议的封装和应用(程序员层面上)。 也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输, 而HTTP是应用层转载 2016-11-26 15:29:38 · 344 阅读 · 0 评论 -
<filter-mapping>中<dispatcher>FORWARD</dispatcher>的作用
2.4版本的servlet规范在部属描述符中新增加了一个元素,这个元素有四个可能的值:即REQUEST,FORWARD,INCLUDE和ERROR,可以在一个元素中加入任意数目的,使得filter将会作用于直接从客户端过来的request,通过forward过来的request,通过include过来的request和通过过来的request。如果没有指定任何元素,默认值是REQUEST。可以通过转载 2016-11-13 14:27:19 · 552 阅读 · 0 评论 -
重新认识MIME类型
重新认识MIME类型我们都知道一件事情,编写网页要使用Html、css,我们也学过常用的html标签,也明白在文档中添加标签会在浏览器中显示一张图片。但是作为一个web开发者,你还需要知道浏览器到底是如何为我们显示出纷繁复杂的界面的。要搞清楚这一点,MIME类型,这个你可能从来没留意的东西,可能你就要重新认识了。 请放心,这一点都不难。关于读音我想很多同学在使用各种各样的读转载 2017-02-27 17:37:26 · 462 阅读 · 0 评论 -
JavaWeb学习总结(五十)——文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。这个common-fileuplo转载 2017-05-21 16:25:25 · 338 阅读 · 0 评论 -
英文字母和中文汉字在不同字符集编码下的字节数
英文字母:字节数 : 1;编码:GB2312字节数 : 1;编码:GBK字节数 : 1;编码:GB18030字节数 : 1;编码:ISO-8859-1字节数 : 1;编码:UTF-8字节数 : 4;编码:UTF-16字节数 : 2;编码:UTF-16BE字节数 : 2;编码:UTF-16LE 中文汉字:字节数 : 2;编码:GB2312字节数 : 2转载 2017-06-20 10:08:01 · 382 阅读 · 0 评论 -
java中编码与解码分别指什么? 如何向非技术人员解释 Unicode 是什么?
java中编码与解码分别指什么?如何向非技术人员解释 Unicode 是什么?一部国际标准,主要是为计算机中用到的所有字符分配各自的通用代号。就像给地球上每个人都发一张全球通用的身份证,而非让人们持有世界各地五花八门、互不兼容的身份证件。为什么需要编码计算机只认0和1,0和1可以组成无穷的数字现实世界中很多字符需要在计算机中表示(英语的[a-zA-Z]原创 2017-04-13 04:29:44 · 1818 阅读 · 0 评论