????????????Java????????
?????ziwenxie ???????[ 2017/3/7 10:59:04 ] ??????????????????? Java
???????????
????Java??????????????????????????????????????????C++?????????????????????Java???????????????????????????飬??????????????????????????????????????????????????????JVM??????????????????????????????????????????Java??????1.5????????????????????μ????????????????????????????????????????????????????????Java???????????????????Щ????????????????
?????????????????????????????????????????????????????????????????
????public class Node<T> {
????private T data;
????private Node<T> next;
????public Node(T data?? Node<T> next) } this.data = data;
????this.next = next;
????}
????public T getData() { return data; }
????// ...
????}
?????????????????????????????????????????????????δ???????????????
????public class Node {
????private Object data;
????private Node next;
????public Node(Object data?? Node next) {
????this.data = data;
????this.next = next;
????}
????public Object getData() { return data; }
????// ...
????}
????????ζ?????????????Node<String>????Node<Integer>?????????????JVM?????Node<Object>???????????????????????????????????????????????bounds???????????????????????????
????public class Node<T extends Comparable<T>> {
????private T data;
????private Node<T> next;
????public Node(T data?? Node<T> next) {
????this.data = data;
????this.next = next;
????}
????public T getData() { return data; }
????// ...
????}
????????????????T????????滻??Comparable????????????Object???
????public class Node {
????private Comparable data;
????private Node next;
????public Node(Comparable data?? Node next) {
????this.data = data;
????this.next = next;
????}
????public Comparable getData() { return data; }
????// ...
????}
?????????????????????????????????????????????????????Щ???????????????????????????????????????Щ??????Щ??????C++??????п??????????????????Java??????????С???
?????????
??????Java?в???????????????飬?????????????????????????????
????List<Integer>[] arrayOfLists = new List<Integer>[2]; // compile-time error
???????????????????????????????????????????????????????????????????????????????
?????????????????????????????
????Object[] strings = new String[2];
????strings[0] = "hi"; // OK
????strings[1] = 100; // An ArrayStoreException is thrown.
??????????????δ??????????????????鯔????????????????????????????????????????е?????????????????????????????????????????????????Java??????????????????????????
????Object[] stringLists = new List<String>[]; // compiler error?? but pretend it's allowed
????stringLists[0] = new ArrayList<String>(); // OK
????// An ArrayStoreException should be thrown?? but the runtime can't detect it.
????stringLists[1] = new ArrayList<Integer>();
?????????????????????????????????????????????????????????JVM?????????????new ArrayList<String>()??new ArrayList<Integer>()????????????????????????????????ó????У??????????????
??????????????????????л????????????????????????δ???
????public class ErasedTypeEquivalence {
????public static void main(String[] args) {
????Class c1 = new ArrayList<String>().getClass();
????Class c2 = new ArrayList<Integer>().getClass();
????System.out.println(c1 == c2); // true
????}
????}
?????????
?????????????????????Node??????????????Java????????????????????????????Bridge method??
????public class Node<T> {
????public T data;
????public Node(T data) { this.data = data; }
????public void setData(T data) {
????System.out.println("Node.setData");
????this.data = data;
????}
????}
????public class MyNode extends Node<Integer> {
????public MyNode(Integer data) { super(data); }
????public void setData(Integer data) {
????System.out.println("MyNode.setData");
????super.setData(data);
????}
????}
???????????????????????????????????????????????Node??MyNode?????????????
????public class Node {
????public Object data;
????public Node(Object data) { this.data = data; }
????public void setData(Object data) {
????System.out.println("Node.setData");
????this.data = data;
????}
????}
????public class MyNode extends Node {
????public MyNode(Integer data) { super(data); }
????public void setData(Integer data) {
????System.out.println("MyNode.setData");
????super.setData(data);
????}
????}
??????????????????????????????????????δ?????δ??????е????????ClassCastException???????String????????Integer??
????MyNode mn = new MyNode(5);
????Node n = mn; // A raw type - compiler throws an unchecked warning
????n.setData("Hello"); // Causes a ClassCastException to be thrown.
????// Integer x = mn.data;
??????????????????????????????е???3?е??????????(????????????4??)?????MyNode?в?????setData(String data)???????????????????Node??setData(Object data)???????????????????3?д?????????????String????????????Object?????ClassCastException???????????????
?????????Java????????????????????????????????
????class MyNode extends Node {
????// Bridge method generated by the compiler
????public void setData(Object data) {
????setData((Integer) data);
????}
????public void setData(Integer data) {
????System.out.println("MyNode.setData");
????super.setData(data);
????}
????// ...
????}
??????????????????????????setData((Integer) data);?????String????????Integer???????????2?б????????unchecked warning??????????????????????????????????????????????????????????Node<Integer> n = mn??????????????????????????????????
??????????
?????????????????????Java???????????????????????飬????????????????????????????????????????????????????????????????????????
????public static <E> void append(List<E> list) {
????E elem = new E(); // compile-time error
????list.add(elem);
????}
????????????Щ????????????????????????????????????????????????????????÷????????????
????public static <E> void append(List<E> list?? Class<E> cls) throws Exception {
????E elem = cls.newInstance(); // OK
????list.add(elem);
????}
??????????????????????????
????List<String> ls = new ArrayList<>();
????append(ls?? String.class);
????????????????????????????????Factory??Template??????????????????????????????????Thinking in Java?е?15???й???Creating instance of types(?????664?)?????????????????????
??????????
?????????????????????????instanceof?????????Java??????????????????????????????????????????????????????????????JVM????????????????ArrayList<Integer>??ArrayList<String>??????????
????public static <E> void rtti(List<E> list) {
????if (list instanceof ArrayList<Integer>) { // compile-time error
????// ...
????}
????}
????=> { ArrayList<Integer>?? ArrayList<String>?? LinkedList<Character>?? ... }
?????????????????????????????????????bounds????????????
????public static void rtti(List<?> list) {
????if (list instanceof ArrayList<?>) { // OK; instanceof requires a reifiable type
????// ...
????}
????}
???????????????????????漰???????????????????SPASVOС??(021-61079698-8054)?????????????????????????
??????
Java???????????Щ???????????????Java????????????????Java?б???Map????????Java Web???????????????Java??????????????д?????Java????????7???????????????????????(java .net ?????)???Java??????????Python??????Java webdriver??λ????????′????е?????Java??д??????????????????Java???????????????JavaScript????????????Java?????????????????? Java???????10??????????????Java?м????????????????java???????ü???????????м???????????????????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11????????
?????????App Bug???????????????????????Jmeter?????????QC??????APP????????????????app?????е????????jenkins+testng+ant+webdriver??????????????JMeter????HTTP???????Selenium 2.0 WebDriver ??????