java基础
超有韧性的猿媛
这个作者很懒,什么都没留下…
展开
-
logback、log4j混用,指定log未输出问题排查
问题描述:某个SDK(有一定历史的祖传代码)中自定义了一个logName,并且在类初始化时调用log4j为该logName指定了Appender、Layout,filePath。而使用了这个SDK的应用,正好在想要查看这个log时,发现file.log是存在的,但是内容却为空。结论:翻了一下源码,结合当前应用配置的日志,得出结论:1) SDK中的日志框架为common-logging+log4j,虽然动态调用log4j配置了Appender、filePath,但是应用的日志框架为slf4j+原创 2020-12-07 21:29:10 · 1391 阅读 · 0 评论 -
ant和Xdoclent生成配置文件
1. ant的介绍 2. Xdoclent的介绍原创 2013-01-23 21:45:00 · 618 阅读 · 2 评论 -
OA_待总结
OA视频终于在计划的前一天看完了。接下来几天该总结知识点了:1. ant+xdoclet2. 异常处理3. 日志处理 java常用的三个日志记录框架:java logging API、 log4j、 commons log log4j简介 log4j的配置和使用4. 分页逻辑的封装5. 授权与认证、权限管原创 2013-02-27 21:34:08 · 763 阅读 · 2 评论 -
权限管理及实现思路
一个系统包含众多模块,要求能够通过权限管理,控制不同用户对模块的访问权限,而且需要控制到对某个模块的某个操作(增删改查)的级别。一般情况下,通过角色对用户进行统一授权,在某些特殊情况下,能够单独对用户进行授权。 一、给用户分配角色。涉及到的模块有: 角色和用户的关系:以用户为主来进行设计符合客户的使用习惯,即将多个角色授予某个用户,也就是用户拥有多个原创 2013-02-28 21:25:12 · 28310 阅读 · 2 评论 -
Enterprise Bean
EJB包括企业Bean 和消息驱动Bean。原创 2013-03-31 21:42:54 · 932 阅读 · 1 评论 -
java基础——集合
原来学习java容器的时候,对于容器的概念、实现原理等等理解的不是很好,在后来的drp、oa等项目中也经常用到,现在,在开发中也经常用到这些,所以, 今天总结一下java容器的相关内容。 主要内容为: 每种集合的实现机制 用法的差别原创 2013-04-30 23:51:15 · 959 阅读 · 2 评论 -
java基础——容器
集合接口以及常用实现类:原创 2014-04-24 18:52:53 · 862 阅读 · 3 评论 -
String类的疑惑
java string的疑惑• 创建• 拼接在进入答疑之前,先来了解一点基本概念:String是java的常用类之一,本质是字符数组char[]。String类是final类,不可被继承。关于String的创建,可以通过new来创建对象,也可以直接赋值。但是这两种创建方式的实现机制是不同的。提到对象的创建,我们就会想到堆、栈,这里还有一个string pool的概念,JVM维护原创 2014-07-31 18:43:57 · 1179 阅读 · 3 评论 -
任务调度——java.util.Timer
在web应用中,多数应用都具有任务调度的功能,也就是在指定时间点,指定时间间隔、指定执行次数下自动执行的任务。任务调度的实现方式有多种:TimerScheduledExecutorQuartazJCronTab 当然,这些实现方式都各有优缺点的,Timer是最简单的一种实现任务调度的方法,是JDK自带的类。使用比较简单,需要Timer和TimerTask两个类即可。pub原创 2015-02-28 17:35:39 · 917 阅读 · 2 评论 -
java常用类——集合
集合接口以及常用实现类:collection和Map区别: Collection是最基本的集合接口,存储的是Object。JDK不提供直接继承Collection的类,提供了Collection的子接口List和Set。 Map是以key-value的形式来存储的,可看成是key集合,或Value集合,或key-value集合,key不可重复。Map常用的实现类主要是Has原创 2015-03-31 19:40:01 · 707 阅读 · 3 评论 -
java工具类——calendar
最近代码中需要做很多和时间相关的处理,以时间为条件查询、string——Date转换、分秒的加减、日期的加减、日期的前后比较、相隔的天数(小时、分钟、秒)、获取年月日、获取星期、获取某月第一天、设置某个时间为当天的起始时间……用到的时候,发现calendar的强大,不管什么样的需求,都是在一些基本操作之上自己进行组合应用。查看calendar源码,了解更多细节应用。Calendar原创 2015-05-31 22:37:03 · 1044 阅读 · 0 评论 -
遍历ArrayList删除指定元素
清空List,直接调用clear()方法,或者直接赋值为null便可。那删除List中指定元素呢?遍历list,遍历到符合条件的元素,then remove()?我们来看下面三种代码就知道结果啦。 public static void removeList1() { List list = new ArrayList(); list.add("1"); list.add("原创 2015-08-30 15:37:36 · 6640 阅读 · 1 评论 -
java基础——static深入理解
java中static可以修饰成员变量、方法、类、代码块。1. static变量按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是:对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可原创 2015-10-31 23:03:19 · 2052 阅读 · 1 评论 -
java基础——反射基础知识
动态代理在项目中应用的比较多,动态代理是依靠反射技术来实现的,今天就来系统的学习一下反射。java中提供的反射机制是说在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。java反射的主要实现类:java.lang.Class:表示正在运行的java应用程序中的类和接口,提供得到Construtor、Fie原创 2016-08-31 23:23:20 · 631 阅读 · 0 评论 -
通过httpclient和urlconnection下载网络文件
java中提供了文件的读写功能,通过io包中的File、inputStream、outPutStream配合操作,便可以操作本地文件,文件的获取主要通过File的构造函数,new File(path)来构造。如果文件不在本地,该如何获得这个资源呢?挺简单的,java.net提供了网络编程工具类,可以通过URL类来访问网络资源。下面分别提供了本地资源访问和网络资源访问的实现。 /**原创 2015-12-31 18:29:05 · 3256 阅读 · 3 评论 -
DRP总结
DRP(distribution Resource Planning)分销资源计划。是管理企业分销网络的系统,目的是使企业对订单和供货具有快速反应和持续补充库存的能力。 这个系统,是J2EE的一个实践项目,规模也很大,包括了用户管理模块、物料管理模块、分销商管理模块、流向单管理模块、报表。运用了servlet、jsp、JDBC、Xml几个规范。系统架构由model1升级到model2原创 2013-01-04 17:37:10 · 1524 阅读 · 5 评论 -
Hibernate关系映射——组件映射
如何理解组件? 组件是某个实体的逻辑组成部分,它与实体的本质区别在于组件没有oid,可以把组件当做值对象。这样的解释可能有点抽象,举例来说:student类有id、name、address、phoneNo、email等属性。将address、phoneNo、email从student实体类中拿出来,单独建立一个联系方式类contact,这个类就叫做值对象,也就是所说的组件。原创 2012-12-05 11:27:49 · 1549 阅读 · 3 评论 -
J2EE初涉
J2EE 的视频看了初级部分,只是知道每一章都讲了哪一块知识,但是再多一点就什么都不懂了。从网上阅读了一些关于J2EE的资料,这些概念可以模模糊糊的理解一些,比视频的感觉要好一点点。下面摘录了一些关于J2EE 的介绍:一、Java2 的三个版本 J2ME:(Java2 Platform Micro Edition)适用于小型设备和智能卡的java2平台Micro版。主要原创 2012-01-10 15:54:50 · 888 阅读 · 1 评论 -
DRP开始
用了两个星期看完了J2EE,年后开始学习DRP,看过的同学说DRP这个项目包含的很多,按照软件开发的流程,一步步开始,后面还会涉及到好多专题,有些东西之前涉及过,有些是java的新内容。离开学还有十几天,除了英语之外,就把时间都安排在DRP的学习上了,刚刚看完需求分析,明天继续……原创 2012-01-31 21:36:35 · 779 阅读 · 5 评论 -
配置Tomcat时出现"JAVA_HOME should point to a jdk not a jre”
配置完Tomcat环境变量后,运行startup出现“JAVA_HOME should point to a jdk not a jre“。检查java_home、classpath、path变量的值都正确,而且JDK已配置成功。 解决办法:打开Tomcat的bin文件夹的startup.bat,检查里面的JDK版本和现在电脑里装的JDK版本是否相同。一定要保证J原创 2012-02-07 19:47:30 · 23347 阅读 · 5 评论 -
JDK配置环境变量
JDK是整个java的核心,包括了java运行环境,java工具和java基础类库,没有JDK就无法安装或者运行java程序。安装好JDK后,接下来的一步就是对JDK进行环境变量的配置。 一、配置环境变量的意义 如果不配置环境变量,也可以直接在完整的敲上java应用程序的全路径和类的全路径来运行程序,例如下面的路径: 否则,如果输入的路径不完整,就会原创 2012-05-31 21:55:39 · 1026 阅读 · 5 评论 -
servlet介绍
一、servlet是什么 servlet是一种服务器端的java应用程序,具有独立于平台和协议的特性,可以生成动态的web页面。它是动态网页技术中的一种,动态网页技术还包括:JSP、ASP、PHP、CGI。二、servlet作用 Servlet担当客户请求(web浏览器或其他http客户程序)与服务器响应(Http服务器上的数据库或应用程序)的中间层。 也就是在原创 2012-06-03 21:46:47 · 1434 阅读 · 4 评论 -
a++ 和 ++a
打好基础,不在小河沟里翻船。原创 2012-07-18 21:24:38 · 805 阅读 · 2 评论 -
java中 a++ 和 ++a
背景: 在完成DRP项目的一个添加功能时,主键通过id生成器自动控制。当所有的代码完成后,执行添加时,报错了“java.sql.SQLException: ORA-00001: 违反唯一约束条件(DRP1.PK_T_CLIENT)”,意思是要插入的主键值已存在。代码: 查看控制主键的代码value = rs.getInt("value"); //从记录主键值的表中获取当前原创 2012-07-21 14:58:20 · 12805 阅读 · 7 评论 -
servlet获取参数
在web.xml里面可以定义两种参数,一种是全局范围的参数,一种是servlet内的参数。 web.xml里定义参数的应用举例:在做分页功能时,可以在代码中直给定pageSize的值,这样,写死在代码中,灵活性差。改进方法:将pageSize配置在web.xml中,然后再在代码中获取。 1. 全局范围的参数,存放在ServletContext对象中,在web.xml中原创 2012-08-09 21:31:47 · 2305 阅读 · 8 评论 -
通过JDBC访问数据 实例
针对上篇博客的几个步骤,本篇博客主要以添加用户为例,演示一段完整的代码。一般在实际项目中,我们将connection、preparedStatement、resultSet的创建和关闭都封装在一个类中。public class DbUtil { /* * 取得Connection */ public static Connection getConnection(){ C原创 2012-09-30 19:51:18 · 943 阅读 · 5 评论 -
synchronized方法和synchronized块
synchronized关键字,它包括两种用法:synchronized 方法和 synchronized 块。 当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。1. synchronized 方法:通过在方法声明中加入 synchronized关键字来声明synchronized方法。如: public synchronized voidacce转载 2012-09-13 16:21:25 · 1360 阅读 · 0 评论 -
Threadlocal 简介及使用
一、threadlocal介绍 java中的 ThreadLocal类为每一个使用该变量的线程都提供一个变量值的副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变量。二、threadlocal的实现原理 ThreadLocal是如何做到为每一个线程维护变量副本的呢?在threadlocal类中有个容原创 2012-09-13 09:56:12 · 741 阅读 · 1 评论 -
threadlocal和线程同步机制的比较
threadLocal和其他所有的同步机制都是为了解决多线程中的对同一变量的访问冲突。 在普通的同步机制中,是通过对象加锁来实现多个线程对统一变量的安全访问的,这时该变量是多个线程共享的,使用这种同步机制需要很细致的分析在什么时候对变量进行读写、什么时候需要锁定某个对象,什么时候释放该对象的锁等等。同步机制中一般使用synchronized关键字来保证同一时刻只有一个线程对共享转载 2012-09-13 16:37:12 · 3760 阅读 · 3 评论 -
synchronized通俗理解
java中synchronized关键字,通过举例生活中的例子来理解: 一个object就像一个大房子,大门永远打开。房子里有 很多房间(也就是方法)。这些房间有上锁的(synchronized方法), 和不上锁之分(普通方法)。房门口放着一把钥匙(key),这把钥匙可以打开所有上锁的房间。另外把所有想调用该对象方法的线程比喻成想进入这房子某个房间的人。所有的东西就这么多了,下面我转载 2012-09-13 16:20:44 · 1571 阅读 · 4 评论 -
通过JDBC访问数据库的基本步骤
首先将jdbc的jar包引入到程序中,放到WEB-INF/lib文件夹下。jar包可以自己下载,或者直接从oracle的安装包(\Oracle\Product\10.2.0\db_1\jdbc\lib)中拿出来。一、加载JDBC驱动程序 在和某一特定数据库建立连接之前,必须首先加载一种可用的JDBC驱动程序到JVM。使用java.lang.Class类的forName(St原创 2012-09-15 20:43:01 · 22041 阅读 · 10 评论 -
JDBC
……原创 2012-09-15 20:35:14 · 636 阅读 · 1 评论 -
PDA系统收获
可能过几天就要去实习了,在走之前,还是要说说这段时间学习PDA汽车检测系统的事儿,这是我学习过程中的一个阶段,不能丢了啊。 首先,要感谢这个系统的开发者。我们都知道,做开发最关键、最困难的就是前期设计,而不是写代码。是她们从零开始,用了很长时间,开发出了现在这款可以投入使用的系统。有了她们前期的工作,我们再来学习这个系统,这就节省了很多时间。 下面步入正题,说说自原创 2012-11-13 19:56:11 · 711 阅读 · 2 评论 -
java容器
1)容器的概念: 能够装其他各种各样对象的一个东西,就叫做容器。例如:数组。 不过,数组本身有它的局限性,第一、数组必须存放相同类型的基本数据或对象,第二、数组容量有限,不允许超出定义的长度。第三,改动很不方便,数组确定后如果进行改动,必须再new原创 2011-09-12 08:37:08 · 894 阅读 · 3 评论