javaWeb学习之旅(一)------------java基础知识增强
来源:互联网 发布:下載外帀手機软件 编辑:程序博客网 时间:2024/06/05 05:16
一、java基础
1.文件的复制
F5: step into
F6: step over
F7: step return
思路如下:
java实现的方法如下
public class Demo1 {@Testpublic static void main(String[] args) {String file1 = "F:\\test1.txt";String file2 = "F:\\test.txt";try {// 复制copy(file1, file2);System.out.println("文件2拷贝成功");} catch (Exception e) {// TODO: handle exception}}private static void copy(String file1, String file2) throws Exception {// 以流的形式读入文件1中的内容InputStream inputStream = readFile(file1);writetoFile(inputStream, file2);}private static void writetoFile(InputStream inputStream, String file2)throws IOException {// TODO Auto-generated method stub// 如果文件2不存在,则创建文件2if (!existFile(file2)) {File file = new File(file2);file.createNewFile();}// 打开文件2 的输出流FileOutputStream fileOutputStream = new FileOutputStream(file2);intout(inputStream, fileOutputStream);}// 从buffer中读入并写入文件2中private static void intout(InputStream inputStream,FileOutputStream fileOutputStream) {try {int len = 0;byte buffer[] = new byte[1024];while ((len = inputStream.read(buffer)) > 0) {fileOutputStream.write(buffer, 0, len);}} catch (Exception e) {// TODO: handle exception} finally {if (inputStream != null) {try {inputStream.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if (fileOutputStream != null) {try {fileOutputStream.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}// TODO Auto-generated method stub}// 读文件private static InputStream readFile(String file1)throws FileNotFoundException {// TODO Auto-generated method stub// 判断文件1存在if (!existFile(file1)) {throw new FileNotFoundException("指定的文件不存在");}// 向输入流中读文件FileInputStream inputStream = new FileInputStream(file1);return inputStream;}// 判断文件是否存在private static boolean existFile(String existfile) {// TODO Auto-generated method stubFile file = new File(existfile);if (file.exists()) {return true;}return false;}}
2.eclipse 快捷键
ctrl + shift + F 格式化代码
ctrl + shift + X 更改为大写
ctrl + shift + Y 更改为小写
ctrl + shift + 向下键 复制行
ctrl + shift + T 查看类的源代码
Alt + 方向键 向前向后
ctrl + / 注释
F2 查看方法说明
ctrl + T 查看类的继承关系
ctrl + 1 快速修复
Alt + / 内容不全
3.junit测试类
Assert.assertEquals("1", person.run());
public class Person {public String run(){System.out.println("run");return "1";}public void eat(){System.out.println("eat");}}
public class Demo4 {Person person;//每个测试方法运行之前运行@Beforepublic void before() {person = new Person();System.out.println("before");}@Testpublic void testrun() {person.run();//断言 测试返回值是否是期望的返回值 Assert.assertEquals("1", person.run());}@Testpublic void testeat() {person.eat();}@Afterpublic void after() {System.out.println("after");}}
4.装箱和拆箱
public class Demo5 {public static void main(String[] args) {Integer i = 1;// 装箱int j = i; // 拆箱// 典型应用ArrayList list = new ArrayList();list.add(1);list.add(2);list.add(3);Iterator iterator = list.iterator();while (iterator.hasNext()) {int k = (Integer) iterator.next(); // 拆箱}}}
5.for循环
Map.Entry entry = (Entry) iterator.next();
具有如下两个方法
entry.getKey(); entry.getValue();
而map只有get();方法
String key = (String) obj;
String value = (String) map.get(key);
public class Demo6 {@Testpublic void test1() {int arr[] = { 1, 2, 3 };for (int num : arr) {System.out.println(num);}}@Testpublic void test2() {ArrayList list = new ArrayList();list.add(1);list.add(2);list.add(3);for (Object obj : list) {int i = (Integer) obj;System.out.println(i);}}@Testpublic void test3() {Map map = new LinkedHashMap();map.put("1", "aaa");map.put("2", "bbb");map.put("3", "ccc");// 传统方式1Set set = map.keySet();Iterator iterator = set.iterator();while (iterator.hasNext()) {String key = (String) iterator.next();String value = (String) map.get(key);System.out.println(key + "=" + value);}}@Testpublic void test4() {Map map = new LinkedHashMap();map.put("1", "aaa");map.put("2", "bbb");map.put("3", "ccc");// 传统方式 2Set set = map.entrySet();Iterator iterator = set.iterator();while (iterator.hasNext()) {Map.Entry entry = (Entry) iterator.next();String key = (String) entry.getKey();String value = (String) entry.getValue();System.out.println(key + "=" + value);}}@Testpublic void test5() {Map map = new LinkedHashMap();map.put("1", "aaa");map.put("2", "bbb");map.put("3", "ccc");// 增强for循环for (Object obj : map.keySet()) {String key = (String) obj;String value = (String) map.get(key);System.out.println(key + "=" + value);}}@Testpublic void test6() {Map map = new LinkedHashMap();map.put("1", "aaa");map.put("2", "bbb");map.put("3", "ccc");// 增强for循环for (Object obj : map.entrySet()) {Map.Entry entry = (Entry) obj;String key = (String) entry.getKey();String value = (String) entry.getValue();System.out.println(key + "=" + value);}}6.可变参数
//如果声明的是int 则不行,//会报错,Arrays.asList 接受传递的是一个对象Integer nums[]={1,2,3,4,5};list=Arrays.asList(nums);System.out.println(list);
public class Demo7 {@Testpublic void testsum() {sum(1, 2, 3, 4, 5);}public void sum(int... nums) {// 可以把可变参数看出数组// 可以前面是一个定参,后面是一个可变参数// public void sum(int x,int... nums)int sum = 0;for (int i : nums) {sum += i;}System.out.println(sum);}@Testpublic void canshu(){//asList 接受传递的是一个对象List list=Arrays.asList("1","2","3");System.out.println(list);String arr[]={"1","2","3","4"};list=Arrays.asList(arr);System.out.println(list);//如果声明的是int 则不行,//会报错,Arrays.asList 接受传递的是一个对象Integer nums[]={1,2,3,4,5};list=Arrays.asList(nums);System.out.println(list);}}
7.反射
反射就是加载类,并解剖出类的各个组成部分,主要运用于框架中
反射 加载类 有3中方法如下
//1,这个方法貌似有问题
Class class1 = Class.forName("/day01/src/com/nyist/wj/Person");
// 2
Class class2 = new Person().getClass();
// 3
Class class3 = Person.class;
// 暴力反射、
constructor.setAccessible(true);
可以利用反射的机制实现访问私有的方法
publicprivate构造函数getConstructor()getDeclaredConstructor()构造方法getMethod()getDeclaredMethod()字段getField()getDeclaredField()
/**
* 反射类的public 构造方法
* **/
// 、public Person(String name,int password)@Testpublic void test3() throws Exception {Class class2 = Person.class;Constructor constructor = class2.getConstructor(String.class, int.class);Person person = (Person) constructor.newInstance("dddddd", 12);System.out.println(person.name);}
/**
* 反射类的private 构造方法
* **/
@Test// 暴力反射私有的构造函数 private Person(List list)public void test4() throws Exception {Class class4 = Person.class;Constructor constructor = class4.getDeclaredConstructor(ArrayList.class);// 暴力反射、constructor.setAccessible(true);Person person = (Person) constructor.newInstance(new ArrayList());System.out.println(person.name);}
/**
* 反射类的public 构造函数
* **/
@Test// public void test1(String name, int passward)public void fun1() throws Exception {Class class1 = Person.class;Method method = class1.getMethod("test1", String.class, int.class);Person person = new Person();method.invoke(person, "wangjie", 23);}
/**
* 反射类的private 构造函数
* **/
@Test// private void test1(InputStream inputStream)public void fun3() throws Exception {Class class1 = Person.class;Method method = class1.getDeclaredMethod("test1", InputStream.class);//暴力反射method.setAccessible(true);Person person = new Person();method.invoke(person, new FileInputStream("c:\\1.txt"));}
/**
* 反射类的private static 构造函数
* **/
@Test// 静态的方法不需要对象// private static void test1(int num)public void fun4() throws Exception {Class class1 = Person.class;Method method = class1.getDeclaredMethod("test1", int.class);method.invoke(null, 23);}
/****
*
* 反射public 字段
* *****/
//public String name="wangjie";public void ziduan() throws Exception {Class class1 = Person.class;Field field = class1.getField("name");Person person = new Person();String name = (String) field.get(person);// System.out.println(name);// 获取字段的值Object value = field.get(person);// 获取字段的类型Class typeClass = field.getType();if (typeClass.equals(String.class)) {String svalueString = (String) value;System.out.println(svalueString);}field.set(person, "ddddd");System.out.println(person.name);}
/****
*
* 反射private 字段
* *****/
@Test// private int password=123456public void ziduan1() throws Exception {Class class1 = Person.class;Field f = class1.getDeclaredField("password");Person person = new Person();// 暴力反射、f.setAccessible(true);System.out.println(f.get(person));}
Demo如下:
package com.nyist.wj;import java.awt.List;import java.io.FileInputStream;import java.io.InputStream;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.jar.Attributes.Name;import org.junit.Test;public class Demo8 {/** * 反射类的构造方法 * **/// 反射 无参的构造函数 public Person()@Testpublic void test1() throws Exception {Class class1 = new Person().getClass();Constructor constructor = class1.getConstructor(null);Person person = (Person) constructor.newInstance(null);System.out.println(person.name);}// public Person(String name)@Testpublic void test2() throws Exception {Class class2 = Person.class;Constructor constructor = class2.getConstructor(String.class);Person person = (Person) constructor.newInstance("dddddd");System.out.println(person.name);}// 、public Person(String name,int password)@Testpublic void test3() throws Exception {Class class2 = Person.class;Constructor constructor = class2.getConstructor(String.class, int.class);Person person = (Person) constructor.newInstance("dddddd\n", 12);System.out.println(person.name);}@Test// 暴力反射私有的构造函数 private Person(List list)public void test4() throws Exception {Class class4 = Person.class;Constructor constructor = class4.getDeclaredConstructor(ArrayList.class);// 暴力反射、constructor.setAccessible(true);Person person = (Person) constructor.newInstance(new ArrayList());System.out.println(person.name);}/** * 反射类的构造函数 * **/@Test// public void test1()public void fun() throws Exception {Class class1 = Person.class;// method获得方法Method method = class1.getMethod("test1", null);Person person = new Person();method.invoke(person, null);}@Test// public void test1(String name, int passward)public void fun1() throws Exception {Class class1 = Person.class;Method method = class1.getMethod("test1", String.class, int.class);Person person = new Person();method.invoke(person, "wangjie", 23);}@Test// public Class[] test1(String name, int[] password)public void fun2() throws Exception {Class class1 = Person.class;Method method = class1.getMethod("test1", String.class, int[].class);Person person = new Person();Class array[] = (Class[]) method.invoke(person, "wangjie", new int[] {1, 2, 3 });System.out.println(array[1]);}@Test// private void test1(InputStream inputStream)public void fun3() throws Exception {Class class1 = Person.class;Method method = class1.getDeclaredMethod("test1", InputStream.class);//暴力反射method.setAccessible(true);Person person = new Person();method.invoke(person, new FileInputStream("c:\\1.txt"));}@Test// 静态的方法不需要对象// private static void test1(int num)public void fun4() throws Exception {Class class1 = Person.class;Method method = class1.getDeclaredMethod("test1", int.class);method.invoke(null, 23);}@Test// public static void main(String[] args)public void fun5() throws Exception {Class class1 = Person.class;Method method = class1.getDeclaredMethod("main", String[].class);// method.invoke(null, new Object[]{new String[]{"aa","ggg"}});// 或者method.invoke(null, (Object) new String[] { "ss", "ss" });}@Test/**** * * 反射字段 * *****///public String name="wangjie";public void ziduan() throws Exception {Class class1 = Person.class;Field field = class1.getField("name");Person person = new Person();String name = (String) field.get(person);// System.out.println(name);// 获取字段的值Object value = field.get(person);// 获取字段的类型Class typeClass = field.getType();if (typeClass.equals(String.class)) {String svalueString = (String) value;System.out.println(svalueString);}field.set(person, "ddddd");System.out.println(person.name);}@Test// private int password=123456public void ziduan1() throws Exception {Class class1 = Person.class;Field f = class1.getDeclaredField("password");Person person = new Person();// 暴力反射、f.setAccessible(true);System.out.println(f.get(person));}@Test// private static int age=23;public void ziduan2() throws Exception {Class class1 = Person.class;Field f = class1.getDeclaredField("password");Person person = new Person();// 暴力反射、f.setAccessible(true);System.out.println(f.get(person));}}
Person类如下:
package com.nyist.wj;import java.io.InputStream;import java.util.ArrayList;public class Person {//反射字段public String name="wangjie";private int password=123456;private static int age = 23;/** * 反射类的构造函数 * **/public Person() {System.out.println("person");}public Person(String name) {System.out.println(name);}public Person(String name, int password) {System.out.println(name + ":" + password);}private Person(ArrayList list) {System.out.println(list);}/** * 反射类的构造方法 * **/public void test1() {System.out.println("test");}public void test1(String name, int passward) {System.out.println(name + "" + passward);}public Class[] test1(String name, int[] password) {return new Class[] { String.class };}private void test1(InputStream inputStream) {System.out.println(inputStream);}private static void test1(int num) {System.out.println(num);}public static void main(String[] args) {System.out.println("main.....");}// 以下代码用于Demo4中public String run() {System.out.println("run");return "1";}public void eat() {System.out.println("eat");}}
8.内省操作javabean的属性
Demo如下
public class Demo9 {// 得到bean的所有属性@Testpublic void test1() throws IntrospectionException {// 得到bean的自己是属性BeanInfo info = Introspector.getBeanInfo(student.class, Object.class);PropertyDescriptor[] pds = info.getPropertyDescriptors();for (PropertyDescriptor pd : pds) {System.out.println(pd.getName());}}// 操作bean的制定属性@Testpublic void test2() throws Exception {PropertyDescriptor pd = new PropertyDescriptor("age", student.class);student stu = new student();// 得到属性的写方法,为属性赋值Method method = pd.getWriteMethod();method.invoke(stu, 23);// 获取属性的值method = pd.getReadMethod();System.out.println(method.invoke(stu, null));}// 高级属性,获取当前属性的类型@Testpublic void test3() throws Exception {PropertyDescriptor pd = new PropertyDescriptor("age", student.class);student stu = new student();// 得到属性的写方法,为属性赋值System.out.println(pd.getPropertyType());}}
Studet.java如下
package com.nyist.wj;public class student {private String name;private String passward;private int age;//本实例工有5个属性 隐藏的一个是objectpublic String getab() {return null;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassward() {return passward;}public void setPassward(String passward) {this.passward = passward;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
9.泛型的使用
测试的例子如下:
@Testpublic void test1() {List<String> list = new ArrayList<String>();list.add("qq");list.add("ghg");list.add("eee");// 传统Iterator<String> iterator = list.iterator();while (iterator.hasNext()) {String value = iterator.next();System.out.println(value);}// 增强for循环for (String string : list) {System.out.println(string);}}
还有...
@Testpublic void test2() {Map<Integer, String> map = new HashMap<Integer, String>();map.put(1, "hhhh");map.put(2, "eeee");map.put(3, "hhhh");// 传统keyset entrysetSet<Map.Entry<Integer, String>> set = map.entrySet();Iterator<Map.Entry<Integer, String>> iterator = set.iterator();while (iterator.hasNext()) {Map.Entry<Integer, String> entry = (Map.Entry<Integer, String>) iterator.next();int key = entry.getKey();String value = entry.getValue();System.out.println(key + " " + value);}// 增强for循环的方法(重点)for (Map.Entry<Integer, String> entry : map.entrySet()) {int key = entry.getKey();String value = entry.getValue();System.out.println(key + " " + value);}}
工程包下载地址:http://download.csdn.net/detail/wjky2014/5220360
- javaWeb学习之旅(一)------------java基础知识增强
- javaweb学习总结(java增强)
- Java基础知识学习之面向对象一
- JavaWeb学习之旅(一)
- 增强学习之基础一
- Java基础知识学习(一)
- (一)JavaWeb基础知识
- JavaWeb学习笔记-java基础-4-增强for循环
- 增强学习系列之(一):增强学习介绍
- 系统学习javaweb-09-javaweb基础增强
- Java EE 学习(9) 正则表达式 之(一)基础知识
- java--数组的学习笔记一之基础知识
- python学习之基础知识(一)
- JAVA 学习模块一:基础知识
- java核心技术 之基础知识(一)
- JAVAWeb之JSP学习笔记一
- JavaWeb学习之路(一)
- JavaWeb技术内幕学习笔记一:JavaWeb请求过程部分基础知识
- Aix5.3安装Bash Shell环境
- 为数据库表维护视图分配事务代码(T-CODE)
- windows xp windows 7 纯净版 iso 下载 microsoft产品下载
- AWR策略查看及变更
- VS2010调试时提示:无法启动程序http://.....
- javaWeb学习之旅(一)------------java基础知识增强
- 通过映像劫持实现Notepad2替换记事本
- document to xml string
- jquery与prototype冲突问题
- Eclipse调试Java的10个技巧
- Linux 平台下 RMAN 全备 和 增量备份 shell 脚本
- 关于anroid设置webview背景方法探讨
- csv文件导入导出
- SecureCRT 遇到一个致命的错误且必须关闭。