参考《Java疯狂讲义》】的更多相关文章

参考<Java疯狂讲义>Lambda表达式支持将代码块作为方法参数,Lambda表达式允许使用更简洁的代码来创建只有一个抽象方法的接口(这种接口被称为函数式接口)的实例 1. Lambda表达式入门 下面先使用匿名内部类来改写(6.6介绍的命令模式Command表达式的例子) public class CommandTest{ public static void main(String[] args) { ProcessArray pa = new ProcessArray(); int[]…
本章重点介绍java.lang.reflect包下的接口和类 当程序使用某个类时,如果该类还没有被加载到内存中,那么系统会通过加载,连接,初始化三个步骤来对该类进行初始化. 类的加载时指将类的class文件读入内存,并为之创建一个java.lang.class对象,也就是说,当程序中使用任何类时,系统都会为之建立一个java.lang.Class对象.(几乎所有的类都是java.lang.Class的实例); 所以JVM最先初始化的总是java.long.Object类. 在java中,一个类用…
NIO采用内存映射文件的方式处理输入输出,NIO将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样来访问文件了(这种方式模拟了操作系统上的虚拟内存的概念),通过这种方式来进行输入输出比传统的输入输出要快得多. Java中与NIO相关的包如下: java.nio包:主要包含各种与Buffer相关的类. java.nio.channels包:与Channle和Selector相关的类. java.nio.charset包:主要包含与字符集相关的类 java.nio.channels.spi…
面向对象(下) [TOC] 包装类 通过包装类可以把8个基本类型的值包装成对象使用. 自动拆箱.自动装箱 把字符串类型值转换成基本类型的值: 包装类的 parseXxx(String s)静态方法 包装类的 valueOf(String s)静态方法 包装类还提供多个重载 valueOf 方法将 基本类型变量 转换成字符串. 包装类型变量 可以与基本类型变量 进行值比较. 系统把一个-128-127之间的整数自动装箱成Integer实例,并放入了一个名为cache的数组中缓存起来.如果以后把一个…
内容 1.高级语言的运行机制 2.Java 语言的运行机制 1.高级语言的运行机制 高级语言主要分为编译型语言和解释型语言两类. 编译型语言是指使用专门的编译器.针对特定平台(操作系统)将高级语言源代码一次性“翻译”成该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行文件格式,这个转换过程称为编译(Compile).编译生成的可执行程序可以脱离开发环境,在特定的平台下独立运行.有些还需要链接其他编译好的目标代码 编译型语言是程序在执行之前需要一个专门的编译过程,把程序…
1.Java是一种面向对象语言,不要简单当做脚本使用.从基础学起,不要从Spring.J2EE.Hibernate和EJB开始学. 2.不要浮躁,应该扎扎实实先学好Java语言,然后按Java本身的学习规律,踏踏实实一步一个脚印地学习. 3.绝不要从IDE工具(JBuilder.Eclipse和NetBeans)开始学习,你学习的Java语言,不是任何工具.软件开发者应该了解软件开发的全部步骤. 4.深入理解Spring.J2EE.Hibernate和EJB的核心,不要仅仅会用,还要知道为什么需…
1.一个java文件中可以有多个类,但是只能有一个public类,并且该类需要与文件同名 第6章 对象的软,弱和虚引用 1.强引用---创建一个对象,并把这个对象赋给一个引用变量.一个对象被一个以上的强引用变量所引用时,它处于可达状态,不可能被系统垃圾回收机制回收 2.软引用--通过SoftReferene类来实现,对于软引用,系统垃圾回收时,如果系统内存不够用,系统可能会回收它. 3.弱引用--通过WeakReference累实现.对于弱引用对象而言,当系统垃圾回收时,不管系统内存是否足够用,…
顺序结构 if分支语句      if{} 可以有多个else if{} else{} 可以省略 switch分支语句 while循环 do while循环 for循环 嵌套循环 控制循环结构 理解数组 数组的定义和初始化 使用数组元素 数组作为引用类型的运行机制 多维数组的实质 操作数组的工具类 数组的实际应用场景 4.4控制循环结构 Java提供了continue 和break来控制循环结构 break 结束for循环 main中 //外层循环,outer作为标识符outer:for (in…
重点复习一下网络通信和代理 java的网络通信很简单,服务器端通过ServerSocket建立监听,客户端通过Socket连接到指定服务器后,通信双方就可以通过IO流进行通信. 需要重点看的工具类:InetAddress,URLDecoder,URLEncoder,URL和URLConnetion等 TCP/IP分层模型:应用层(比如http),传输层(比如TCP),网络层(比如IP),物理+数据链路层 IP地址是一个32位(bit)整数,为了便于记忆,分成4个8位的二进制数,每8位之间用圆点隔…
try,catch,finally,throw,throws java将异常分为两种,Checked异常和Runtime异常. IndexOutOfBoundsException NumberFormatException ArithmeticException NullPointerException 捕获异常时,先捕获小异常,再捕获大异常, 从java7开始,一个catch块可以捕获多种类型的异常 public static void main(String[] args) { try {…
JDBC:java database connectivity 数据库基本命令: 启动 show databases; create database [if not exists] 数据库名; dop database 数据库名; use 数据库名; show tables; 查看数据库的表结构: desc 表名; Mysql默认的InnoDB,提供事务安全的存储机制,无须指定. 如果要显示的指定,可以在建表时添加如下: ENGINE=MyISAM         #强制使用MyISAM存储机…
多线程这块,平时用的框架里都封装好了,只有写批处理和工具包时用过几次.现在水平仅仅限于会用的程度,需要全面深入学习多线程. 主要内容:创建线程,启动线程,控制线程,多线程的同步,线程池,使用线程安全的集合类 16.1.1 线程和进程 线程是进程的组成部分,一个进程可以拥有多个线程,一个线程必须有一个父进程.线程可以拥有自己的堆栈,程序计数器和局部变量,但不拥有系统资源,它与父进程的其他线程共享该进程所拥有的全部资源.因为多个线程共享父进程的全部资源,因此编程更加方便,带也需要更加小心. 16.2…
Paths类 public static void pathTest(){ Path path = Paths.get("~"); System.out.println(path); System.out.println(path.getNameCount()); System.out.println(path.getRoot()); Path absolutePath = path.toAbsolutePath(); System.out.println(absolutePath);…
产生文件 File file = new File("abc.txt"); if(!file.exists()){ System.out.println(file.exists()); file.createNewFile(); } System.out.println(file.getAbsolutePath()); 关于临时文件 1).放在指定目录,此时已项目为默认目录 File file = File.createTempFile("defaultTmp",&…
枚举类 ——Java5[基础知识]1,定义枚举类——关键字 enum (地位与class.interface相同).2,枚举类是一个特殊的类,可以有成员变量.方法,实现一个或多个接口,定义自己的构造器.3,一个Java源文件中最多只能定义一个public访问权限的枚举类,且该Java源文件也必须和该枚举类的类名相同. [枚举类与普通类的区别]1,使用enum定义的枚举类默认继承了java.lang.Enum类,不是默认继承Object类.因此枚举类不能显式继承其它父类. 其中,java.lang…
Java8新增的Lambda表达式 [特性]支持将代码块作为方法参数,Lambda表达式允许使用更简洁的代码来创建只有一个抽象方法的接口(这种接口被称为函数式接口)的实例. [组成部分]1,形参列表 形参列表允许省略形参类型.如果形参列表中只有一个参数,甚至连形参列表的圆括号都可以省略.2,箭头(->)3,代码块 如果代码块只包含一条语句,Lambda表达式允许省略代码块的花括号. Lambda代码块只有一条return语句,甚至可以省略return关键字. Lambda表达式需要返回值,而它的…
[定义]内部类:定义在其它类内部的类.外部类:包含内部类的类,也称 宿主类.局部内部类:定义在方法里的内部类. [接口内部类]接口中也可以定义内部类,必须为public static修饰(自动添加),接口内部类只能时静态内部类.[接口的内部接口]接口的内部接口为接口成员,必须为public static(自动). [与外部类关系]1,成员内部类是类成员.     成员内部类:静态内部类.非静态内部类2,局部内部类和匿名内部类不是类成员. [内部类的作用]1,内部类提供了更好的封装,其隐藏在外部类…
sikuli类.函数使用可以参考java  dochttp://doc.sikuli.org/javadoc/ http://stackoverflow.com/questions/9568612/sikuli-windows-7-64-bit-getting-the-visionproxy-dll-can-not-find-dependent-li…
file:commons package org.crazyit.editor.commons; import org.crazyit.editor.EditorFrame; import org.crazyit.editor.handler.add.AddHandler; /** * 添加的信息对象 * * @author yangenxiong yangenxiong2009@gmail.com * @version 1.0 * <br/>网站: <a href="http…
Selenium对于我们进行web自动化测试有很大的帮助,如果要进行大范围的测试覆盖,就不能仅仅在一两台机器上跑了:同样Selenium-Grid也给我们提供了这样的帮助,我们可以借助Selenium-Grid很容易的实现分布式测试环境的搭建.不同于其它一些通用的分布式程序[如:hudson],Selenium-Grid是专门针对Selenium的自动化分布式测试解决方案.   其优点是: 快速搭建分布环境[通过简单的参数配置] 自动分配测试脚本[针对不同环境] 只需一份测试代码[目标测试机不需…
一.安装JDK 第一步:双击JDK的exe文件. JDK(Java开发包),JRE(Java运行环境) 第二步:配置 path:jdk的根目录,jdk下的bin目录(两个目录之间记得用分号隔开) classpath:jdk的根目录,jdk下的lib目录(两个目录之间记得用分号隔开) 二:第一个JAVA程序 public class hello{ public static void main(String args[]){ System.out.println("hello");  …
1.数组的基本概念: 同样类型    若干个     有序 由若干个同样类型的数据组成的有序的集合 有序:存储地址连续 下标连续 数组名:用来存放数组首地址的变量 数组元素:构成数组的每个数据 数组的下标:给数组的每个元素做一个编号 数组的长度:构成数组的数据的个数 2.一维数组的定义 数组的使用的流程:先定义   ---> 初始化   --->使用 数组定义完毕后,假设不初始化里面存放的时垃圾值 格式:int arr[10]; 定义长度为10的整型数组,每一个都是Int型的,数组的名称 ar…
Ajax: async javascript and xml 异步的JS和XML AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面. Ajax创建四步法 我们都知道一个完整的Ajax动态网页的实现方法为: var xhr = new XMLHttpRequest; xhr.open("get&quo…
1.计算机中的进制 2进制:逢二进1      0  1 8进制:逢八进1      0  1   2  3  4  5  6  7 10进制:逢十进1  默认的进制  0 - 9 16进制:逢十六进1   0 - 9  A B C D E F      (内存的地址格式) 2.进制的转换问题 三个要素: 数位(0-7). 基数(每一位能取值的个数). 位权(数码*基数^数位).    101 = 1*2^0+0*2^1+1*2^2 数码(每一位设置) 转换:有得时候转换为人能识别的数制,要操作…
1.运算符: 连接两个操作数(常量.变量)的符号 用运算符依照一定的规则连接的式子称为表达式 运算符的分类: 1)操作数的个数: 单目运算(++     sizeof    !) 双目运算符:... . 三目运算符:  ?: 2) 功能: 算术运算符.关系和逻辑运算.位运算 2.算术运算符 1)什么东西? 进行算术的运算,总计5个 +  -  *  /  % 双目运算符 a+b   a*3   b/5    10%3 2)优先级 * /   3 + -   4 乘除的优先级要高于加减的 3)结合…
调用同步锁的wait().notify().notifyAll()进行线程通信 看这个经典的存取款问题,要求两个线程存款,两个线程取款,账户里有余额的时候只能取款,没余额的时候只能存款,存取款金额相同.相当于存取款交替进行,金额相同. 线程间通信,需要通过同一个同步监视器(也就是this或者显式的Object对象)调用通信方法, Object有三个方法,可以用于线程间通信 wait() 当前线程等待,并释放同步锁 wait():无限期等待 wait(long timeout):等待timeout…