JavaEE开发人员必知必会。坚实的基础 - 核心JavaJavaSE中跑去界面编程如Swing、Awt等剩下的内容基本属于核心Java。
学习目标:能使用Java集成开发环境,运用Swing设计图形界面,运用JDBC访问数据库,掌握事件处理编程,了解简单两层C/S项目的开发及简单面向对象程序的设计过程,发展基本的团队协作开发能力。
在Java中有很多方法调用存储过程。Jdbc,Spring中的SimpleJdbcTemplate也很好的封装了调用存储过程的方法。Spring中调用存储过程要求jdk的版本是jdk1.5以上的版本。这里介绍几种调用方法。
{为了防止某些用户使用软件进行登录和发布信息,很多网站在用户登录或者发布信息时,都要求用户输入验证码,验证码通是以一幅图片形式显示的。用户按照图片中显示的数字或字母依次输入,服务器站将对用户的输入进行比较,以判断用户是否经过验证。由于验证码是随机产生的。自动发布信息的软件无法知道每次产生的验证码。
运行时异常与一般异常有何区别?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。JAVA编译器要求方法必须声明抛出可能发生的非运行时异常,但并不要求必须声明抛出未捕获的运行时异常。
抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
本章内容编程语言的发展面向过程的设计思想面向对象的设计思想对象和类的概念类之间的关系对象和引用Java类的定义构造函数对象的创建和使用this关键字static关键字package和import语句访问控制类的继承方法的重写Object类对象转型多态抽象类接口。
以前我作为java 开发人员,用的都是sun 的JVM (这也是当今最好用的虚拟机),由于垃圾收集的工作都是交给JVM 做,只要编码的时候注意不要在静态的集合对象中只添加对象,而不删除对象的情况发生,就可以避免内存泄漏,所以自己从没有认真考虑过要将GC 好好学习一下;然而实际的工作表明,不深入的学习GC 的原理,很难解决生产中的问题。 学习开始从理解JVM 的GC 工作原理入手。垃圾收集的过程主要分三个步骤:标记(mark ),清除(sweep ),整理(compact )。标记过程就是看看在JVM 堆中有哪些对象还有用,哪些对象不用了,有用的对象就作个标记,不用的对象就不作标记;对未作标记的对象(即不用的对象)就作第二步清除;当清除完以后,由于有用的对象此时是分散的分布在JVM 堆中,JVM 堆就会有许多堆碎片,因而需要做第三步整理;整理(也有人翻译成“压缩”,实际上最准确的翻译是“使紧凑”)就是将散放在JVM 堆中的有用对象移动到堆底部,削除堆碎片。
Java中对文件的操作是以流的方式进行的。流是Java内存中的一组有序数据序列。Java将数据从源(文件、内存、键盘、网络)读入到内存中,形成了流,然后将这些流还可以写到另外的目的地(文件、内存、控制台、网络),之所以称为流,是因为这个数据序列在不同时刻所操作的是源的不同部分。
这里是想介绍一下如何通过Java的注解机制,实现对bean资源的注入。主要介绍实现的方法,至于例子的实用性不必讨论。需求:一个应用有两个数据库,分别为DB-A,DB-B。假设持久层框架使用iBatis来实现,那么SqlMapClient对象在创建时,对于两个不同的DB连接要有两个不同的SqlMapClient对象,假设我们有一个Service类为MyService.java,该类中有两个SqlMapClient对象sqlMapA、sqlMapB分别对应着DB-A、DB-B。
SAF能做什么?1.管理窗口的启动和关闭,对整个窗体进行管理。其中继承SingleFrameApplication类就不需要手动设置窗体的位置和大小,程序会自动记住上次打开窗体的位置和大小。如果需要手动设置窗体的屏幕位置或大小,就继承application类即可。
执行框程序(Executor):最常见的用法就是用Executors来构造相关的线程池;用CompletionService来分离生产任务和已经完成的任务,生产者 submit 执行的任务。使用者 take 已完成的任务,并按照完成这些任务的顺序处理它们的结果;Callable和Future接口到处都需要用到。
有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍。
使用J2SEAPI读取Properties文件的六种方法,//如果配置文件在包中,要加入配置文件的路径,一般是在classpath下依次查找,如conf/crm/db.properties,默认路径在classpath下,如果配置文件就在classpath下,没有放在包中,就直接写文件名。
Java运行时系统实现了一个用于调度线程执行的线程调度器,用于确定某一时刻由哪一个线程在CPU上运行。 在java技术中,线程通常是抢占式的而不需要时间片分配进程(分配给每个线程相等的CPU时间的进程)。抢占式调度模型就是许多线程处于可以运行状态(等待状态),但实际上只有一个线程在运行。该线程一直运行到它终止进入可运行状态(等待状态),或者另一个具有更高优先级的线程变成可运行状态。在后一种情况下,低优先级的线程被高优先级的线程抢占,高优先级的线程获得运行的机会。
内容大纲:JAVA的特点及应用领域。新版JDK的一些新特性。JAVA的集合结构。Concurrent包的特性及应用。JMX的介绍及使用。JAVA常用参考资料。
本篇将讲述coroutine的一些背景知识,以及在Java中如何使用Coroutine,包括一个简单的benchmark对比,希望能借助这篇blog让大家了解到更多在java中使用coroutine的方法。采用Coroutine方式可以很好的绕开需要启动太多线程来支撑高并发出现的瓶颈,提高Java应用所能支撑的并发量,但在开发模式上也会带来变化,并且需要特别注意不能造成线程被阻塞的现象,从开发易用和透明迁移现有Java应用两个角度而言目前Coroutine方式还有很多不足,但相信随着越来越多的人在Java中使用Coroutine,其易用性必然是能够得到提升的。