同步异步以及泛型
package com.zking.temp;
import java.util.Vector;
public class Temp {
public static void main(String[] args) {
//1.同步 异步
//异步
//未响应 = 假死 占用内存过多 内存无法进行处理
//请求方式:同步 异步
//网页的展现过程中:1.css的下载 2.js文件进行下载 3.下载你当前的html的页面 4.显示
//同步 获取数据 页面的刷新
//ajax 异步动作 success 成功对应属性 error 失败对应的属性
//success 成功对应属性 error 失败对应的属性 callback 回调函数
//异步解决问题 :未响应 = 假死
//未响应 并发数
//本机的浏览器进行访问请求而永远得不到响应所造成的未响应
//并发量 服务器能够同时承受访问量的最大数值
//Jmeter 测试当前服务器(服务器容器 tomcat) 的并发量
//服务器的带宽 客户端再访问服务器的相应的速度 上行 下行
//集群 分布式
//微服务 线程中的 生产者和消费者 http协议来实现
//Vector线程同步快,线程安全
//ArrayList的运行速度较快,因为没有使用线程
// Vector v = new Vector();
// v.add("a");
// v.add("a");
// v.add("a");
// v.add("a");
// v.add("a");
// v.add("a");
// System.out.println(v.size());
//栈
// MyStarK me = new MyStarK();
// me.push("a");
// me.push("b");
// me.push("c");
// me.push("d");
// me.push("e");
// for (int i = 0; i < 5; i++) {
// System.out.println(me.prop());
// }
//泛型
//泛型类 泛型接口 泛型方法 泛型的属性
//泛型的属性 属性的数据类型由调用方来决定当前属性数据类型
//Integer 是int数据类型的封装类
//Character 是char的类型的封装类
//必定只能是类而不是基础数据类型的关键字
//方便扩展
// Person<String, Integer, Character> p = new Person<>();
// p.setPname("zs");
// p.setPage(18);
// p.setPsex('女');
//
//
// //泛型的方法
// PersonMethod<String> pm = new PersonMethod<>();
// pm.getValue("zs");
//
//引用类型可以new
//装箱 值类型 到引用类型
//jdk 1.5
// int i = 10;
// Object object = i;
// System.out.println(object);
int i = 10;
String object = String.valueOf(i);
System.out.println(object);
//拆箱 引用类型 到值类型
//jdk1.5
// Object o = 10;
// int j = (int)o;
// System.out.println(j);
String str = "10";
int j = Integer.parseInt(str);
System.out.println(j);
}
}
package com.zking.temp;
import java.util.List;
/**
* 泛型的结果 实现 可以在实现类中定义好也可以在调用的地方定义
* 接口实现接口 实现类实现类
* 基础接口 自定义接口 来扩展实现类
* @author Administrator
*
* @param <E>
*/
public interface IBaseFace<E> {
//CRUD
/**
* 增加的公共方法
* @param element
* @return
*/
public int addObject(E element);
/**
* 编辑
* @param element
* @return
*/
public int editObject(E element);
/**
* 删除
* @param element
* @return
*/
public int remove(E element);
/**
* 查询单个对象的方法
* @param element
* @return
*/
public E queryObject(E element);
/**
* 查询多个对象的方法
* @param element
* @return
*/
public List<E> queryObjects(E element);
/**
* 查询并且分页
* @param element
* @return
*/
public List<E> queryObjectPage(E element);
}
package com.zking.temp;
/**
* 可以在当前的接口中确定他的数据类型
* @author Administrator
*
*/
public interface IPersonFace extends IBaseFace<Person<String, Integer, String>> {
public boolean queryUserName(String name);
}
package com.zking.temp;
import java.util.List;
public class PersonImpl implements IPersonFace {
@Override
public int addObject(Person<String, Integer, String> element) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int editObject(Person<String, Integer, String> element) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int remove(Person<String, Integer, String> element) {
// TODO Auto-generated method stub
return 0;
}
@Override
public Person<String, Integer, String> queryObject(Person<String, Integer, String> element) {
// TODO Auto-generated method stub
return null;
}
@Override
public List<Person<String, Integer, String>> queryObjects(Person<String, Integer, String> element) {
// TODO Auto-generated method stub
return null;
}
@Override
public List<Person<String, Integer, String>> queryObjectPage(Person<String, Integer, String> element) {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean queryUserName(String name) {
// TODO Auto-generated method stub
return false;
}
}
package com.zking.temp;
import java.util.ArrayList;
import java.util.LinkedList;
public class MyStarK {
// ArrayList arr = new ArrayList();
//
// public void push(Object object) {
// arr.add(0,object);
// }
//
// public Object prop() {
// Object o = arr.get(0);
// arr.remove(0);
// return o;
// }
LinkedList arr = new LinkedList();
public void push(Object object) {
arr.addFirst(object);
}
public Object prop() {
Object o = arr.getFirst();
arr.removeFirst();
return o;
}
}
package com.zking.temp;
public class Person<A,B,C> {
private A pname;
private B page;
private C psex;
public A getPname() {
return pname;
}
public void setPname(A pname) {
this.pname = pname;
}
public B getPage() {
return page;
}
public void setPage(B page) {
this.page = page;
}
public C getPsex() {
return psex;
}
public void setPsex(C psex) {
this.psex = psex;
}
}