javase
JoneWill
业精于勤,荒于嬉;行成于思,毁于随。
展开
-
Get与Post区别与范例讲解
一、 J2EE WEB应用文件目录结构 Java Web应用由一组静态HTML页、Servlet、JSP和其他相关的class组成,它们一起构成一个大的工程项目。每种组件在Web应用中都有固定的存放目录。Web应用的配置信息存放在web.xml文件中。在发布某些组件(如Servlet)时,必须在web.xml文件中添加相应的配置信息 Java Web应用程序必须使用规范的目录结转载 2017-04-07 09:26:17 · 184 阅读 · 0 评论 -
深入理解Java:注解(Annotation)--注解处理器
如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement): Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Anno原创 2017-04-18 13:53:48 · 238 阅读 · 0 评论 -
深入理解Java:注解(Annotation)基本概念
什么是注解(Annotation): Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。 Annotation(注解)是JDK5.0及以后版本引入的。它可以用于原创 2017-04-18 13:54:56 · 246 阅读 · 0 评论 -
多线程之内存可见性Volatile(一)
从这篇博文开始,我们开始分享一些多线程的内容,毕竟在工作中,使用多线程比较多。多总结一下,终归没有坏处。这个系列的文章不会特别长,争取在3到5分钟之间结束,主要以说明白内容,给出相应的解决方案,重点在于实践。如标题所示,这篇博文我们简单的介绍一下内存可见性问题,之前,要简单的介绍一下什么是内存模型?内存模型什么是Java 内存模型?Java Memory Model转载 2017-04-18 14:25:30 · 206 阅读 · 0 评论 -
多线程之原子变量CAS算法(二)
上篇博文,我们介绍了多线程之内存可见性Volatile(一),但是也遗留了一个问题,如何保证变量的”原子性操作(Atomic operations)”?Volatile保证部分类型的原子性上篇博文,我们说Voloatile不能保证原子性,有一点局限: 因为在32位(4字节)处理器中,Java中读取long类型变量不是原子的,需要分成两步,如果一个线程正在修改该long变量的值,转载 2017-04-18 14:27:17 · 236 阅读 · 0 评论 -
多线程之创建线程的方式之一:实现Callable接口(三)
对于多线程,大家并不陌生,对于如何创建线程也是轻车熟路,对于使用new thread和实现runable接口的方式,不再多说。这篇博文我们介绍第三种:实现Callable接口。Callable接口接口定义:@FunctionalInterfacepublic interface Callable { V call() throws Exception;}123412转载 2017-04-18 14:28:07 · 268 阅读 · 0 评论 -
多线程之重入锁ReentrantLock(四)
在博文多线程之内存可见性Volatile(一),多线程之原子变量CAS算法(二)中,我介绍了如何安全的访问共享对象,给了两种解决方案,java5.0之后,增加了lock接口的高级功能。这篇博文,我们介绍lock接口的一种实现,重入锁ReentrantLock,我们只是简单的介绍和synchronized进行一下对比。对于重入锁更加深入的内容,后面我们会再详细的写。Reentrant转载 2017-04-18 14:28:59 · 264 阅读 · 0 评论 -
Java 多线程(八) 线程状态图
Java 多线程(八) 线程状态图结合多线程的学习过程,介绍线程的状态图,随着学习的深入,这幅图不断加入新的内容。 一.线程基本状态图 这幅图是在Java 多线程(三) 线程的生命周期及优先级出现过的: 图中是线程运行的基本状态:线程调用start()方法开始后,就进入到可运行状态,随着CPU的资源调度在运行和可运行之间切换;遇到阻塞则进入阻塞状转载 2017-05-05 17:33:50 · 468 阅读 · 0 评论 -
java中集合类HashSet、ArrayList、LinkedList总结
【HashSet】1. HashSet存储不能够存储相同的元素,元素是否相同的判断:重写元素的equals方法。equals方法和hashCode方法必须兼容,如:equals方法判断的是用户的名字name,那么hashCode的返回的hashcode必须是name。hashcode();2. HashSet存储是无序的,保存的顺序与添加的顺序是不一致的,它不是线性结构,而是散列结转载 2017-05-08 14:28:38 · 222 阅读 · 0 评论 -
Java虚拟机工作原理详解
一、类加载器首先来看一下Java程序的执行过程。 从这个框图很容易大体上了解java程序工作原理。首先,你写好java代码,保存到硬盘当中。然后你在命令行中输入[java] view plain copyjavac YourClassName.java转载 2017-05-08 15:27:42 · 5490 阅读 · 1 评论 -
产生死锁的原因和必要条件+解决死锁的基本方法
死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再 向前推进。安全状态与不安全状态:安全状态指系统能按某种进程顺序来为每个进程分配其所需资源,直 至最大需求,使每个进程都可顺利完成。若系统不存在这样一个序列, 则称系统处于不安全状态。 产生死锁的原因:(1)竞争系统资源 (2)进程的推进顺序不当产生死锁转载 2017-05-09 11:56:02 · 339 阅读 · 0 评论 -
Java中如何将“字符串数组”转换成“字符串”
如果是 “字符串数组” 转 “字符串”,只能通过循环,没有其它方法 String[] str = {"abc", "bcd", "def"};StringBuffer sb = new StringBuffer();for(int i = 0; i sb. append(str[i]);}String s = sb.toString();如果是 “字符数组” 转 “字符串” 可以通过下边的方法原创 2017-05-19 16:32:10 · 409 阅读 · 0 评论 -
List集合与Array数组之间的互相转换
数组转换成List集合方法一 笨方法就是通过add把数组中的数据循环添加到List集合中 List mlist = new ArrayList<>(); String[] array = new String[] {"zhu", "wen", "tao"}; // String数组转List集合 for (int i = 0; i array.leng转载 2017-12-28 22:32:16 · 20570 阅读 · 1 评论 -
深入理解Java:注解(Annotation)自定义注解入门
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target,原创 2017-04-18 13:52:16 · 187 阅读 · 0 评论 -
Java 正则表达式学习总结和一些小例子
从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础工具,可以用于很多类型的文本处理, 如匹配,搜索,提取和分析结构化内容.java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。它包括两个类:Pattern和Matcher. Pattern是一个正则表达式经编译后的表现模式。 在java中,通转载 2017-04-01 16:31:17 · 286 阅读 · 0 评论 -
Java的文件读写操作
file(内存)----输入流---->【程序】----输出流---->file(内存)当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的类是InputStreamReader, 它是字节转换为字符的桥梁。你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统转载 2017-03-31 17:04:35 · 437 阅读 · 0 评论 -
Servlet之forward、sendRedirect、 include区别与使用
servlet中的请求转发主要有三种方式:1、 forward:是指转发,将当前request和response对象保存,交给指定的url处理。并没有表示页面的跳转,所以地址栏的地址不会发生改变。2、 redirect:是指重定向,包含两次浏览器请求,浏览器根据url请求一个新的页面,所有的业务处理都转到下一个页面,地址栏的地址会变发生改变。3、 include:意为包含,即包含url转载 2017-04-07 09:27:57 · 283 阅读 · 0 评论 -
servlet之cookied/session深入浅出(上)
一、会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。 有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾经来过,这称之为有状态会话。二、会话过程中要解决的一些问题? 每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些转载 2017-04-07 09:32:51 · 224 阅读 · 0 评论 -
session深入解读
摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答。目录:一、术语session二、HTTP协议与状态保持三、理解cookie机制四、理解sessi转载 2017-04-07 09:36:25 · 165 阅读 · 0 评论 -
Servlet之Filter深入讲解及实例研究
一、Filter 1、过滤器的概念Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应。 主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,是个典型的处理链。优点:过滤链的好处是,执行过程中任何时候都可以打断,只要不执行chain.转载 2017-04-07 09:38:16 · 299 阅读 · 1 评论 -
String, StringBuffer, StringBuilder三者区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)简要的说,String 类型和 StringBuffer 类型的主要性能区别其实在于 String是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改转载 2017-03-29 21:25:01 · 302 阅读 · 0 评论 -
Java多线程学习(吐血超详细总结)
写在前面的话:此文只能说是Java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢?如果你觉得此文很简单,那推荐你看看Java并发包的的线程池(Java并发编程与技术内幕:线程池深入理解),或者看这个专栏:Java并发编程与技术内幕。你将会对Java里头的高并发场景下的线程有更加深刻的理解。目录(?)[-]一扩展java转载 2017-03-31 15:45:28 · 159 阅读 · 0 评论 -
Java集合与框架总结与学习
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 本文将主要讲解Java中集合的使用与区别,主要讲List、Set、Map的原理、使用方法、注意事项等。一、Collection与Collections的区别 Java集合框架是Java语言的重要组成部分,它包含了系统而完整的集合层次体系,封装了大量转载 2017-03-31 15:48:27 · 160 阅读 · 0 评论 -
聊聊我的高效编程之路
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 摘要:在程序开发过程中,一些IDE的配置、常用代类的积累以及常用框架的使用。能帮助我们迅速写好代码,快速定位错误。同时,又有利于我们快速构造和部署,以及进行后续的迭代开发。目录:一、IDE配置篇二、规范工程篇三、常用代码篇四、常用转载 2017-03-31 15:53:41 · 320 阅读 · 0 评论 -
Java操作符总结
Java语言中的表达式是由运算符与操作数组合而成的,所谓的运算符就是用来做运算的符号。 在Java中的运算符,基本上可分为算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、转型运算符等。一、算术运算符 所谓算术运算符,也就是我们数学中学到的加、减、乘、除等运算。这些操作可以对几个不同类型的数字进行混合运算,为了保证操作的精度,系统在运算的过程中会做转载 2017-03-31 15:56:26 · 333 阅读 · 0 评论 -
Java I/O解读与使用实例
摘要:本文主要讲解了Java I/O解读与使用实例。 一、I/O基本概念 I/O全称是Input/Output,Java的I/O就是Java的输入与输出操作。与之相关的接口和类都放在java.io包里面,因而,在进行Java输入输出操作时,需要导入该包。利用Java的I/O大大地扩展了系统的输入与输出范畴,不仅可以从控制台输入输出,还可以从其他数据存储形式转载 2017-03-31 15:59:26 · 229 阅读 · 0 评论 -
java内存管理深入浅出
摘要:本文主要讲解了Java中的内存管理机制、泄露机制及各种数据的存储方式,内存管理是JAVA学习中的一个重点,深入理解它有助于帮助我们加深对JAVA程序的理解1.java是如何管理内存的 为了判断Java中是否有内存泄露,我们首先必须了解Java是如何管理内存的。Java的内存管理就是对象的分配和释放问题。在Java中,内存的分配是由程序完成的,而内存的释放是由垃圾原创 2017-03-31 16:08:07 · 243 阅读 · 0 评论 -
Java反射探索研究
摘要:本文详细深入讲解是Java中反射的机制,并介绍了如何通过反射来生成对象、调用函数、取得字段、设置字段的方法。最后,给出了一些反射常用到的实例。一、反射(1)概念 反射含义:可以获取正在运行的Java对象。(2)功能 1)在运行时判断任意一个对象所属的类 2)在运行时构造任意一个类的对象 3) 在运行时判断任转载 2017-03-31 16:14:39 · 273 阅读 · 0 评论 -
java 中String编码和byte 解码 总结
java 中String编码和byte 解码http://wanxw2001.iteye.com/blog/15703391、InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符InputStreamReader(InputStream in, String charsetName) 2、Outpu转载 2017-03-31 16:43:17 · 612 阅读 · 0 评论 -
Java接口学习笔记
Java语言不支持一个类有多个直接的父类(多继承),但可以实现(implements)多个接口,间接的实现了多继承AD:一、Java接口基础知识1, Java语言不支持一个类有多个直接的父类(多继承),但可以实现(implements)多个接口,间接的实现了多继承.2, 与Java接口相关的设计模式:1, 定制服务模式设计精粒度的接口,每个Java接转载 2017-03-31 16:55:51 · 314 阅读 · 0 评论 -
java递归实现动态解析json字符串未知key的方法
java递归实现动态解析json字符串未知key的方法2018年05月05日 23:12:44 喜欢原味奶茶 阅读数:683版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Esc_Tab_End/article/details/80210659以下maven依赖需要一起加载<dependency> &...转载 2018-11-21 22:25:00 · 2549 阅读 · 2 评论