- 博客(58)
- 资源 (3)
- 收藏
- 关注
原创 反射_反射、设置模式、JDK新特性总结
1:反射(理解) (1)类的加载及类加载器 (2)反射: 通过字节码文件对象,去使用成员变量,构造方法,成员方法 (3)反射的使用 A:通过反射获取构造方法并使用 B:通过反射获取成员变量并使用 C:通过反射获取成员方法并使用 (4)反射案例 A:通过反射运行配置文件的内容 B:通过反射越过泛型检查 C:通过反射给任意的一个对象的任意的属性赋值为指定的值 (5
2017-04-15 18:03:37 555
原创 JDK8新特性_接口中也可以有方法
interface Inter{ //抽象方法 public abstract void show(); //default方法 public default void defaultPrint(){ System.out.println("defaultPrint 张三"); } //staict public static void staticPrint(){
2017-04-15 17:50:11 1083
原创 JDK7新特性_JDK7的六个新特性
二进制字面量 JDK7开始,终于可以用二进制来表示整数( byte,short,int和long)。使用二进制字面 量的好处是,可以使代码更容易被理解。 语法非常简单,只要在二进制数值前面加 0b或者0B 举例: int x = ob110110 数字字面量可以出现下划线 为了增强对数值的阅读性,如我们经常把数据用逗号分隔一样。JDK7提供了_对数据分隔。 举例: in
2017-04-15 15:18:45 2268
原创 JDK5新特性_枚举类的常见方式
package cn.itcast_02;public class EnumMethodDemo { public static void main(String[] args) { // int compareTo(E o):比较枚举谁前谁后 Direction2 d21 = Direction2.FRONT; Direction2 d22 = Direction2.BEHIN
2017-04-15 14:56:31 563
原创 JDK5新特性_枚举的注意事项
注意事项 定义枚举类要用关键字enum 所有枚举类都是Enum的子类 枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略 枚举类可以有构造器,但必须是private的,它默认的也是private的。枚举项的用法比较特殊:枚举(“”); 枚举类也可以有抽象方法,但是枚举项必须重写该方法 枚举在switch语句中的
2017-04-15 14:27:54 373
原创 JDK5新特性_通过enum实现枚举类
package cn.itcast_02;public class DirectionDemo { public static void main(String[] args) { Direction d = Direction.FRONT; System.out.println(d);// FRONT // public String toString()返回枚举常量的名称,它
2017-04-15 12:59:05 516
原创 JDK5新特性_自己实现枚举类
package cn.itcast_01;public class DirectionDemo { public static void main(String[] args) { Direction d = Direction.FRONT; System.out.println(d);// cn.itcast_01.Direction@6bbc4459 System.out.p
2017-04-15 12:27:46 485
原创 设计模式_装饰模式概述和使用
package cn.itcast_02;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.Scanner;public class PhoneD
2017-04-15 02:03:13 367
原创 设计模式_模版设计模式概述和使用
模版设计模式概述 模版方法模式就是定义一个算法的骨架,而将具体的算法延迟到子类中来实现优点 使用模版方法模式,在定义算法骨架的同时,可以很灵活的实现具体的算法,满足用户灵活多变的需求缺点 如果算法骨架有修改的话,则需要修改抽象类package cn.itcast_01;public class GetTimeDemo { public static void main(
2017-04-15 01:09:49 332
原创 反射_动态代理的概述和实现
package cn.itcast_06;import java.lang.reflect.Proxy;public class Test { public static void main(String[] args) { UserDao ud = new UserDaoImpl(); ud.add(); ud.delete(); ud.update(); ud.f
2017-04-14 20:24:46 678 1
原创 反射_通过反射写一个通用的设置某个对象的某个属性为指定的值
package cn.itcast.test;import java.lang.reflect.Field;/* * 写一个方法 * public void setPropertv(Object obj,String propertvName,Object value){ * } * * 此方法可将obj对象中名为propertvName的属性值设置为value
2017-04-14 17:33:19 1252
原创 反射_通过反射越过泛型检查
package cn.itcast.test;import java.lang.reflect.Constructor;import java.lang.reflect.Method;import java.util.ArrayList;/* * 需求:给你一个ArrayList的一个对象,我想在这个集中添加一个字符串,如何实现呢? */public class ArrayLis
2017-04-14 17:07:31 522
原创 反射_通过反射运行配置文件内容
package cn.itcast.test;import java.io.FileReader;import java.io.FileWriter;import java.io.Writer;import java.lang.reflect.Constructor;import java.lang.reflect.Method;import java.util.Properties
2017-04-14 16:53:05 536
原创 反射_通过反射获取成员变量、构造方法、成员方法的使用
package cn.itcast_01;public class Person { private String name; int age; public String address; public Person() { } private Person(String name) { this.name = name; } Person(String name
2017-04-14 01:51:14 466
原创 反射_通过反射获取带参带返回值成员方法并使用
package cn.itcast_04;import java.lang.reflect.Constructor;import java.lang.reflect.Method;/* * 需求:通过反射获取成员方法 */public class ReflectDemo { public static void main(String[] args) throws Excepti
2017-04-14 01:06:13 7089
原创 反射_通过反射获取无参无返回值成员方法并使用
package cn.itcast_04;import java.lang.reflect.Constructor;import java.lang.reflect.Method;/* * 需求:通过反射获取成员方法 */public class ReflectDemo { public static void main(String[] args) throws Excepti
2017-04-14 00:21:18 3377
原创 反射_通过反射获取成员变量并使用
package cn.itcast_03;import java.lang.reflect.Constructor;import java.lang.reflect.Field;/* * 需求:通过反射获取成员变量并使用 */public class ReflectDemo { public static void main(String[] args) throws Excep
2017-04-13 23:46:24 2636
原创 反射_通过反射获取私有构造方法并使用
package cn.itcast_02;import java.lang.reflect.Constructor;/* * 需求:通过反射获取私有构造方法并使用 * private Person(String name) * * Person p = new Person("风清杨"); * Systme.out.println(p); */public class
2017-04-13 23:09:25 2760 2
原创 反射_通过反射获取带参构造方法并使用
package cn.itcast_02;import java.lang.reflect.Constructor;/* * 需求:通过反射去获取该构造方法并使用: * public Person(String name, int age, String address) * * Person p = new Person("胡亦菲",27,"上海"); * System.
2017-04-13 22:43:32 1404
原创 反射_通过反射获取无参构造方法并使用
package cn.itcast_02;import java.lang.reflect.Constructor;import cn.itcast_01.Person;/* * 通过反射获取构造方法并使用 */public class ReflectDemo { public static void main(String[] args) throws Exception {
2017-04-13 19:49:39 777
原创 反射_获取class文件对象的三种方式
package cn.itcast_01;/* * 反射:就是通过class文件对象,去使用该文件中的成员变量,构造方法,成员方法。 * * Person p = new Person(); * p.使用 * * 要想这样使用,首先你必须得到class文件对象,其实也就是得到Class类的对象。 * Class类: * 成员变量 Field * 构造方法 Cons
2017-04-13 19:04:56 1127
原创 反射_反射概述
反射 JAVA反射机制是在运行状态中,对于任意一个 类,都能够知道这个类的所有属性和方法;对 于任意一个对象,都能够调用它的任意一个方 法和属性;这种动态获取的信息以及动态调用 对象的方法的功能称为java语言的反射机制。 要想解剖一个类,必须先要获取到该类的字节码 文件对象。而解剖使用的就是Class类中的方法. 所以先要获取到每一个字节码文件对应的Class类型的对象.
2017-04-13 18:34:49 455
原创 反射_类加载器的概述和分类
类加载器 负责将.class文件加载到内在中,并为之生成对应的Class对象。 虽然我们不需要关心类加载机制,但是了解这个机制我们就能更好的理解程序的运行。类加载器的组成 Bootstrap ClassLoader 根类加载器 Extension ClassLoader 扩展类加载器 Sysetm ClassLoader 系统类加载器类加载器的作用 Bootstrap ClassL
2017-04-13 18:11:34 361
原创 反射_类的加载概述和加载时机
类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。 加载 就是指将class文件读入内存,并为之创建一个Class对象。 任何类被使用时系统都会建立一个Class对象。 连接 验证 是否有正确的内部结构,并和其他类协调一致 准备 负责为类的静态成员分配内存,并设置默认初始化值 解析 将类的二进制数据中
2017-04-13 18:00:14 499 1
原创 网络编程_网络编程、UDP、TCP总结
1:网络编程(理解) (1)网络编程:用Java语言实现计算机间数据的信息传递和资源共享 (2)网络编程模型 (3)网络编程的三要素 A:IP地址 a:点分十进制 b:IP地址的组成 c:IP地址的分类 d:dos命令 e:InetAddress B:端口 是应用程序的标识。范围:0-65535。其中0-1024不建议使用。 C:协议 U
2017-04-12 22:19:00 443
原创 网络编程_多线程改进多个客户端上传文件案例
package cn.itcast_15;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class UploadServer { public static void main(String[] args) throws IOException { //
2017-04-12 19:46:35 766
原创 网络编程_关于多个客户端上传到一个服务器的思考
package cn.itcast_14;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.ne
2017-04-12 19:42:26 599
原创 网络编程_TCP协议上传图片并给出反馈
package cn.itcast_13;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.ne
2017-04-12 17:08:48 384
原创 网络编程_TCP上传文本文件并给出反馈
package cn.itcast_12;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStrea
2017-04-12 13:36:48 387
原创 网络编程_TCP协议上传文本文件
package cn.itcast_11;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.net.ServerSock
2017-04-12 11:21:15 573 1
原创 网络编程_客户端读取文本文件服务器控制台输出
package cn.itcast_10;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;/* * 服务器输出到控制台 */public cl
2017-04-12 11:00:34 554
原创 网络编程_客户端键盘录入服务器写到文本文件
package cn.itcast_09;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.net.ServerSock
2017-04-12 10:40:05 520
原创 网络编程_客户端键盘录入服务器控制台输出
package cn.itcast_08;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;/* * 服务器输出到控制到 */public cl
2017-04-12 09:56:49 772
原创 网络编程_服务器给客户端一个反馈案例
package cn.itcast_07;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;/* * TCP协议接收数据: * A:创建接收端Socket对象
2017-04-12 09:28:45 648
原创 网络编程_TCP协议接收数据
package cn.itcast_06;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;/* * TCP协议接收数据: * A:创建接收端Socket对象 * B:监听客户端连接,返回一个对应的Socket
2017-04-12 08:11:58 536
原创 网络编程_TCP协议发送数据
package cn.itcast_06;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;/* * TCP协议发送数据: * A:创建发送端的Socket对象 * 这一步如果成功了,说明建立连接成功了。 * B:获取输出流,写数据。 * C:释放资源
2017-04-12 07:47:34 579
原创 网络编程_多线程实现聊天室程序
package cn.itcast_05;import java.io.IOException;import java.net.DatagramSocket;/* * 通过多线程改进聊天室程序,这样就可以实现在一个窗口发送和接收数据了 */public class ChatRoom { public static void main(String[] args) throws I
2017-04-11 00:31:27 1643
原创 网络编程_发送端的数据来自于键盘录入案例
package cn.itcast_04;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;public class ReceiveDemo { public static void main(String[] args) throws IOExceptio
2017-04-10 23:13:55 828
原创 网络编程_UDP协议发送和接收数据代码优化
package cn.itcast_03;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;/* * 多次启动接收端: * Unrecognized Windows Sockets error: 0: Cannot bind * 端口被占用。
2017-04-10 22:51:00 841
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人