摘要:
Java进阶4表达式中的陷阱 20131103 表达式是Java中最基本的组成单元,各种表达式是Java程序员最司空见惯的内容,Java中的表达式并不是十分的复杂,但是也有一些陷阱。例如当程序中使用算术表达式的时候,表达式的类型自动提升,复合赋值运算符所隐含的类型转换,给程序带来一些潜在的陷阱。还有就是JDK1.5之后支持泛型也会带来一些陷阱,因为之前的Java版本是不支持泛型的,为了兼容之前的版本,引入了原始类型的概念,而原始类型在泛型编程中存在着极大的陷阱。1.字符串中的陷阱 JVM对于字符串的处理都会在JVM的字符串缓冲池缓冲字符串,而且java中的字符串类型是不可以改变的,如果经常改字 阅读全文
摘要:
Java进阶3. 内存回收机制 20131029前言: 学过C++的都知道,C++中内存需要程序员自己维护。说道这里,很多开发的同学就感觉很痛苦,当他转向Java的时候,就会说你看Java多好啊,程序员不用自己管理堆的内存了,我们终于可以尽情挥霍了,但实际上真的是这个样子吗?Java真的有这么好吗?其实Java回收垃圾是考的JVM后台的一条线程来运行的,这条线程会不定时的启动来回收垃圾,这样在表面上看来器省去了我们程序员的很多工作,但是后台启动这样的线程去回收垃圾就不耗时吗?不会占用资源吗?其实JVM的垃圾回收线程是十分的消耗资源的,JVM可以回收垃圾,但是不是允许我们程序员尽情挥霍的。 这里 阅读全文
摘要:
Java进阶1. Synchronized 关键字 201310251.关于synchronized的简介: Synchronized 关键字代表对这个方法加锁,相当于不管那一个线程,运行到这个方法的时候,都要检查有没有其他的线程在使用这个方法,如果有的话就要的等待正在使用synchronized方法的线程运行完成之后才可以运行此方法;如果没有的话就直接运行。2.常见的使用方法 Synchronized方法: 使用synchronized关键字声明synchronized方法的形式: public synchronized void accessVal(int newVal); synchro 阅读全文
摘要:
Java 复习9网路编程 20131008前言: Java语言在网络通信上面的开发要远远领先于其他编程语言,这是Java开发中最重要的应用,可以基于协议的编程,如Socket,URLConnection等等,之后面的Web开发就是Servlet开发还有各种框架等等,基本上都是基于网络编程的。在上大二的时候,自己学习过Java网络编程的知识,现在好像都忘了,再有就是JSP,Servlet等等这些编程的知识也都忘得差不多了,所以这一段时间回忆一下关于网络编程和Web编程的知识。1.网络通信编程 TCP/IP(Transport Control Protocol / Internet Protoco 阅读全文
摘要:
Java复习10. Servlet编程知识 20131008前言: 之前在大三下的时候,学习了一个月的JSP和Servlet知识,但是没有什么项目经验,把JSP Web开发学习实录看了前面几张,后面的框架没有学习。这个期间,我掌握的就是把java代码和html代码杂糅在一起的JSP页面,同时还有就是Servlet的简单的知识,创建Servlet返回响应,这里才明白服务器的大概原理,根据客户端的请求URL类型分发到不同的地方。然后处理,之后在使用response返回信息。还有学习一点关于Java中数据库乱接操作的知识和一些JSTL标签知识,还好自己有这一部分的笔记。 Servlet是一种独立于平 阅读全文
摘要:
Java复习8 多线程知识 20131007前言: 在Java中本身就是支持多线程程序的,而不是像C++那样,对于多线程的程序,需要调用操作系统的API 接口去实现多线程的程序,而Java是支持多线程的,具有并发性。 在程序中使用多线程意味着我们可以同时处理多项任务,在实际的开发中,尤其是大型的项目,多线程程序是十分重要的。 同时多线程的程序会带来一定的问题,比如数据的同步、资源的访问等等。在服务器端,使用多线程处理用户的请求等等的知识。1.线程的概念 每一个程序至少运行着一个进程,每一个进程至少包含一个线程。进程可以是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是进程的特殊段 阅读全文
摘要:
Java复习6.异常处理 20131005前言: Java中的异常处理机制是非常强大的,相比C++ 来说,更加系统。但是我们开发人员没有很好的使用这一点。一些小的程序是没有什么问题的,但是对于大型项目来说,异常处理机制十分重要。在Java中我们使用的异常处理,一般就是捕获异常,输出堆栈中的异常信息,就没了,这些方法仅仅适合开发环节,便于我们调试错误,但是对于后期发布上下的话,这些就没有用了,需要我们恢复错误等等,甚至要重新启动。 本章的就学习一段代码,通过它来学习Java中的异常处理机制。Connection conn = null;OutputStreamWriter out = null; 阅读全文
摘要:
Java复习4.Java中的数组声明方式 201310041.数组声明和初始化, 数组元素和变量一样,可以在定义的时候i进行初始化。数组元素的初始化工作实在编译阶段完成的,可以减少运行时间。 在初始化数组的时候,使用new 关键字创建数组,他只是一个引用,知道将值赋值给引用,初始化的工作才结束。 三种初始化的方法: int a = new int[9]; int a = new int{1,1,1,1}; int a = {1,1,1,1}; 在Java中的数组赋值不能够直接让一个数组等于另一个数组,否则只是简单地数组的引用,Java系统提供了一种数组赋值的方法: System.arrayco 阅读全文
摘要:
Java复习7.输入输出流 20131005前言: Java中涉及数据的读写,都是基于流的,这一块的知识相当重要,而且在Java中的数据,char字符是16bit的,所以存在字节流和字符流的区别。如果是字符文件的输入输出,使用字符流(以Reader/Writer为抽象基类),而其他的数据是二进制的,需要使用字节流(以InputStream和OutputStream为抽象基类)。 其实不止文件,网络数据传输也是输入输出流。目录1.字节流和字符流... 21.1字节输入流:... 21.2字节输出流:... 52.字符流... 62.1字符数据流输入:... 62.2字符数据流输出:... 73. 阅读全文
摘要:
Java 复习5面向对象知识 20131004前言: 前几天整理了C++中的面向对象的知识,学习Java语言,当然最重要的就是面向对象的知识,因为可以说Java是最正宗的面向对象语言,相比C++,更加严格的面向对象的语言。面向对象是JAVA语言最大的特点。1.基本概念面向对象在程序中开始指的是采用封装、继承、抽象的设计方法,如今以发展到整个软件行业,如OOA(面向对象分析), OOD(面向对象设计), OOP(面向对象的编程)。面向对象的特点:对象的唯一性,每一个对象都会有一个唯一的标识,通过标识,可以找到相应的对象,在对象的整个生命周期内对象的标识不会变化。抽象性:将相同的数据结构和操作方法 阅读全文