------java基础
文子越来越强
这个作者很懒,什么都没留下…
展开
-
Java 5~14各个版本新特性总结
Java 5Java5开发代号为Tiger(老虎),于2004-09-30发行特性列表泛型 枚举 自动装箱拆箱 可变参数 注解 foreach循环(增强for、for/in) 静态导入 格式化(System.out.println 支持%s %d等格式化输出) 线程框架/数据结构 JUC Arrays工具类/StringBuilder/instrument...转载 2020-03-11 17:07:55 · 4470 阅读 · 0 评论 -
规则引擎
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。应用背景:1.为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。2.市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新。3.为了快速、低成本的更原创 2016-11-13 20:52:45 · 628 阅读 · 26 评论 -
Java程序实现oracle远程数据库的备份和恢复
最近项目到了收尾的阶段,为了使我们的系统功能更加完成,也为了使客户更加安心,决定添加一个oracle备份和还原的功能。现做一下分享。原创 2017-04-17 10:59:06 · 8667 阅读 · 20 评论 -
socket网络编程实现客户端和服务端通信
之前的博客分享过远程备份oracle数据库的代码,但是因为情况变动,代码部署的服务器和数据库服务器不是一个,并且代码部署所在服务器没有oracle的客户端,因此之前的实现策略只能舍弃。尝试一个新的方法:socket编程,简单介绍下。原创 2017-05-23 21:55:43 · 3175 阅读 · 7 评论 -
自定义文件系统类加载器
虚拟机中,有一个类加载子系统,它包括了四种类加载器,其中自定义类加载器通过继承java.lang.ClassLoader类的方式实现自己的类加载器。FileSystemClassLoader.javapackage com.www.test;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;i原创 2017-05-21 22:26:42 · 646 阅读 · 5 评论 -
【JVM】jvm内存模型及分区
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。 jvm所管理的内存将会包括以下几个运行时数据区域: 程序计数器: 1.程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示原创 2017-06-11 21:46:47 · 2275 阅读 · 15 评论 -
【JVM】类加载
疯狂讲义看了一遍,jvm看了一遍,也算清晰了些。一、what 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。二、when Java语言里,类型的加载、连接和初始化过程都是在程序运行期间完成的。三、how原创 2017-06-18 21:17:01 · 413 阅读 · 3 评论 -
多线程run和start的区别
Thread的start和run1) start:用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到spu时间片,就开始执行run()方法,这里方法run()称为线程体,它包含了要执行的这个线程的内原创 2017-06-18 21:18:56 · 1252 阅读 · 2 评论 -
多线程下双重检查锁的问题及解决方法
单例模式中有一种实现方式叫双重检查锁,主要是为了更好、更安全的实现单例功能。先来看一下该方法的核心代码: [java] view plain copy"font-size:18px;">public class DoubleCheckedLocking{ private static Instance instance;转载 2017-08-23 18:00:45 · 1769 阅读 · 5 评论 -
【jvm】堆外内存
JVM可以使用的内存分外2种:堆内存和堆外内存. 堆内存完全由JVM负责分配和释放,如果程序没有缺陷代码导致内存泄露,那么就不会遇到java.lang.OutOfMemoryError这个错误。 使用堆外内存,就是为了能直接分配和释放内存,提高效率。JDK5.0之后,代码中能直接操作本地内存的方式有2种:使用未公开的Unsafe和NIO包下ByteBuffer。转载 2017-09-08 11:12:47 · 1770 阅读 · 1 评论 -
java 8 Hashmap深入解析 —— put get 方法源码
每个Java程序员都知道,HashMap是java中最重要的集合类之一,也是找工作面试中非常常见的考点,因为HashMap的实现本身确实蕴含了很多精妙的代码设计。 对于普通的程序员,可能仅仅能说出HashMap线程不安全,允许key、value为null,以及不要求线程安全时,效率上比HashTable要快一些。稍微好一些的,会对具体实现有过大概了解,能说出HashMap由数组+链表+R转载 2017-09-01 19:38:49 · 413 阅读 · 1 评论 -
【java】JVM原理及应用
java流行起来的原因无非是跨平台,垃圾回收这些,而VM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码,就可以在多种平台上不加修改地运行,JVM是java的重中之重,在Java这条路上能走多远,主要取决于对JVM的理解程度。1.内存分析最初学习java的时候接触内存的概念是从马士兵的视频当中,不过作为初学,对于它的理解也是比较简单粗暴的原创 2016-11-27 21:58:12 · 503 阅读 · 19 评论 -
jsp总结之九大内置对象
jsp内置对象,是指可以不加声明和创建就可以在JSP页面脚本中使用的成员变量。这些内置对象不需要JSP页面的开发者实例化,他们由容器实例化和管理。这9个对象分别为:request、response、session、application、out、pagecontext、config、page、exception1、request对象request 对象是 javax.servl原创 2016-09-18 23:09:18 · 549 阅读 · 11 评论 -
【java】Servlet生命周期和工作原理
上篇博客介绍了Servlet 的调用流程,这篇博客介绍Servlet的生命周期和工作原理。生命周期:Servlet生命周期包含了以下几个阶段: 1.加载和实例化 当检测到需要Servlet的第一个请求时,读取xml文件找到要加载的servlet类,创建Servlet实例。 加载一般是在运行tomcat容器时来完成,将servlet类加载到tom原创 2016-07-30 17:15:01 · 4307 阅读 · 20 评论 -
J2EE的13个规范
J2EE(Java 2 Platform, Enterprise Edition)是一个为大企业主机级的计算类型而设计的Java平台。Sun微系统(与其工业伙伴一起,例如IBM)设计了J2EE,以此来简化在瘦客户级环境下的应用开发。由于创造了标准的可重用模块组件以及由于构建出能自动处理编程中多方面问题的等级结构,J2EE简化了应用程序的开发,也降低了对编程和对受训的程序员的要求。其实J2EE就是基原创 2016-04-12 22:43:00 · 849 阅读 · 31 评论 -
【java】异常处理
一、基本概念1.java异常是java提供的用于处理程序中错误的一种机制。2.所谓错误是指在程序运行的过程中发生的一些异常事件(如:除0溢出,数组下标越界,所要读取的文件不存在)3.设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果。4.java程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装原创 2016-03-13 15:16:22 · 1041 阅读 · 19 评论 -
【java】内存分析
做项目用到了静态变量,唤起对内存的一些记忆,并且java的内存机制值得好好学习,在此进行总结。 通过查询及学习首先了解下java的内存管理原理: 在java中,有java程序,虚拟机和操作系统三个层次,java程序与虚拟机交互,虚拟机与操作系统交互,三者的运行原理如下: 1.程序运行前:向操作系统请求一定的内存空间,成为初始内存空间,程序执行过程中原创 2016-03-06 22:36:44 · 644 阅读 · 15 评论 -
【J2SE】环境配置
软考的时候进行过一次,但是没有记录,这次重装了系统还要重新配置一下,感觉还有必要用博客来记录一下环境配置的过程。配置Path内容1.右击“我的电脑”,打开属性——>高级——>环境变量2.打开环境变量,有用户变量和系统变量两个框,我们选择系统变量进行设置,因为如果设置用户变量,只是针对本用户的,而系统变量是针对本系统的,更具有实用性。3.设置“系统变量”中的“Pa原创 2016-02-14 23:45:31 · 878 阅读 · 21 评论 -
【软考】J2SE视频——java入门总结
用了大概一周的时间将J2SE的视频看完,也算是java的入门吧,下面将一些基础的知识进行一些总结,来一张简图: 【基础知识】 基础知识很多地方都很熟悉,原来都接触过,语言之间是相通的,像标示符和关键字、程序编码格式、命名规则、循环语句和异常处理。标识符的命名和学习vb的时候是差不多的,我觉得只要不是原创 2015-09-06 22:16:52 · 977 阅读 · 26 评论 -
悲观锁解决高并发访问问题
如果程序存在并发访问问题,我们就要考虑通过加锁对一些资源的访问进行控制,加锁的两种方式为悲观锁和乐观锁,学习drp的时候,老师为我们展示的悲观锁的例子,这篇博客就来看一下这种锁的机制。 在分销管理系统中,分销商的主键采用单独的表来生成,多个用于可以同时生成主键,所以存在并发访问的情况,需使用线程同步,需考虑锁的机制。在看代码之前先简单了解一些基本的知识:(原创 2016-08-14 21:49:24 · 3934 阅读 · 49 评论 -
【java】xml文件表建立及读取环境搭建并采用DOM4J完成XML文件导入到数据库
java一种简单的解析xml方法是用DOM进行解析, dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的,dom4j用于处理xml是很常用的技术,本篇博客介绍xml文件表建立及读取环境搭建并采用DOM4J完成XML文件导入到数据库。1.XML文件2.根据xml文件建表表名:T_XML字段: 使用PD原创 2016-08-18 21:02:36 · 2626 阅读 · 23 评论 -
【Java】基础总结之JSP
一、定义 JSP全称是Java Server Pages,和servle技术一样,都是用于开发动态web资源的技术。jsp通过在html或xml中嵌套Java代码实现动态网页,为用户实现动态数据。二、jsp生命周期 Jsp页必须转换成Servlet,才能对请求进行服务,因此Jsp的底层完全是Servlet。这样看来Jsp的生命周期就包括六个阶段:转换原创 2016-09-11 21:46:55 · 584 阅读 · 20 评论 -
【Java】Filter过滤器
一、什么是Filter Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 Servlet API中提供了一个Filte原创 2016-08-07 22:13:08 · 784 阅读 · 21 评论 -
【Java】Servlet调用流程
最近在学习一个DRP的项目,初次学习Servlet,老师讲解的很详细,这篇博客首先对Servlet进行一下简单的介绍,然后简单总结一下Servlet的调用流程。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet原创 2016-07-29 20:57:08 · 1357 阅读 · 17 评论