201871010106-丁宣元 《面向对象程序设计(java)》第十一周学习总结

正文开头:

项目

内容

这个作业属于哪个课程

https://home.cnblogs.com/u/nwnu-daizh/

这个作业的要求在哪里

https://www.cnblogs.com/nwnu-daizh/p/11815810.html

作业学习目标

(1) 理解泛型概念;

(2) 掌握泛型类的定义与使用;

(3) 了解泛型方法的声明与使用;

(4) 掌握泛型接口的定义与实现;

(5) 理解泛型程序设计,理解其用途。

正文内容:

第一部分:总结第八章理论知识

  8.1泛型程序设计(JDK 5.0 中增加,是Java 语言中类型安全的改进)

    1.泛型:也称参数化类型,即在定义类、接口和方法时,通过类型参数指示将要处理的对象类型。eg:ArrayList类

    2.泛型程序设计(Generic programming):编写的代码可以被多个不同类型的对象所重用。

    类型参数的优点:改善程序的可读性,增强类型的使用安全性

     3.泛型类的定义:格式:class Generics<K,V> (K,V是类的可变类型参数)

        eg:public class Pair<T>

      注:Pair类引入了一个类型变量T,用<>括起来,置于类名后面;

        可以有多个类型变量,用,隔开

        类定义中的类型变量用于指定方法的返回类型以及域、局部变量的类型。

    4.泛型方法

       (1)泛型方法:可以只单独定义一个方法作为泛型方法,用于指定方法参数或者返回值为泛型类型,留待方法调用时确定。

       (2)可以声明在泛型类中,也可以声明在普通类中。

        eg:public class ArrayTool

         {

          public static<E> void insert(E[] e,int i){...}

          public static<E> valueAt(E[] e,int i){...}

         }

    5.泛型接口

      (1)定义:public interface IPool<T>

            {

              T get();

              int add(T t);

            }

         (2)实现:public class GenericPool<T> implements IPool<T>{...}

           public class GenericPool implements IPool<Account>{...}

    6.泛型变量的限定

      (1)定义上界:public class NumberGeneric<T extends Number>

            注:说明NumberGeneric类能处理的泛型变量需要和Number有继承关系

             extends所申明的上界可以是一个类,也可以是一个接口

             <T extends Bounding Type>表示T应是绑定类型的子类型

              一个类型变量或通配符可以有多个限定,限定类型用&分割

                  eg:<T extends Comparable &Serializable>

         (2)定义下界:List<? super CashCard>cards=new ArrayList<T>

            注:super可以固定泛型参数的类型为某类型的超类

              若一个方法的参数为限定类型时,可以使用下限通配符

            eg:public static <T> void sort(T[] A,Comparator<? super T> c){...}

    7.泛型类的约束与局限性(*):

      a.不能用基本类型实例化类型参数

      b.运行时类型查询只适用于原始类型

      c.不能抛出也不能捕获泛型类实例

      d.参数化类型的数组不合法

       e.不能实例化类型变量

      f.泛型类的静态上下文中类型变量无效

      g.注意擦除后的冲突

    8.泛型类型的继承规则(*)

    (1)数组是协变的(covariant),但不适用于泛型类型

        原因:避免破坏要提供类型的安全泛型

    (2)泛型类不具协变性。

    (3)泛型类可扩展或实现其它的泛型类。

  8-2通配符

    1.通配符类型

      (1)“?”表明参数的类型可以是任何一种类型

      ( 2)三种用法:

            单独的 ?,用于表示任何类型

            ? extends type,表示带有上界。

            ? super type,表示带有下界。

      (3)通配符的类型限定

        a)Pair<? extends Employee>

        b)  Pair<? super Manager>

        c)  无限定通配符:Pair<?>。

            注:Pair<?>与Pair的不同:可以用任意Object 对象调用原始的Pair类的setObject方法。

  

  8-3 泛型程序设计小结

    1.定义泛型类时,在<>内定义形式类型参数,即<>内为类型

    2.实例化泛型对象时,要在类名后指定类型参数的值(类型)

    3.extents表示类型范围限制,不表示继承

    4.泛型类不是协变的

第二部分:实验内容和步骤

实验1 导入第8章示例程序,测试程序并进行代码注释。

  测试程序1:

     编辑、调试、运行教材311、312页代码,结合程序运行结果理解程序;

     在泛型类定义及使用代码处添加注释;

     掌握泛型类的定义及使用。

代码:PairTest1.java

  1. package pair1;
  2.  
  3. /**
  4. * @version 1.01 2012-01-26
  5. * @author Cay Horstmann
  6. */
  7. public class PairTest1
  8. {
  9. public static void main(String[] args)
  10. {
  11. String[] words = { "Mary", "had", "a", "little", "lamb" };//字符串数组
  12. Pair<String> mm = ArrayAlg.minmax(words);//用具体的类型替换类型变量 可以实例化泛型类型。创建Pair<String>类对象mm,通过类名ArrayAlg来调用minmax方法
  13. System.out.println("min = " + mm.getFirst());
  14. System.out.println("max = " + mm.getSecond());
  15. }
  16. }
  17.  
  18. class ArrayAlg//与类Pair是依赖关系
  19. {
  20. /**
  21. * Gets the minimum and maximum of an array of strings.
  22. * @param a an array of strings
  23. * @return a pair with the min and max values, or null if a is null or empty
  24. */
  25. public static Pair<String> minmax(String[] a)
  26. {
  27. if (a == null || a.length == 0) return null;//a==null空引用
  28. String min = a[0];
  29. String max = a[0];
  30. for (int i = 1; i < a.length; i++)
  31. {
  32. if (min.compareTo(a[i]) > 0) min = a[i];
  33. if (max.compareTo(a[i]) < 0) max = a[i];
  34. }
  35. return new Pair<>(min, max);
  36. }
  37. }

  Pair.java

  1. package pair1;
  2.  
  3. /**
  4. * @version 1.00 2004-05-10
  5. * @author Cay Horstmann
  6. */
  7. public class Pair<T> //Pair类引入了一个类型变量T
  8. {
  9. private T first;//类定义中的类型变量指定方法的返回类型及域和局部变量的类型
  10. private T second;
  11.  
  12. public Pair() { first = null; second = null; }
  13. public Pair(T first, T second) { this.first = first; this.second = second; }
  14.  
  15. public T getFirst() { return first; }
  16. public T getSecond() { return second; }
  17.  
  18. public void setFirst(T newValue) { first = newValue; }
  19. public void setSecond(T newValue) { second = newValue; }
  20. }

  结果:

  测试程序2:

    编辑、调试运行教材315 PairTest2,结合程序运行结果理解程序;

    在泛型程序设计代码处添加相关注释;

    了解泛型方法、泛型变量限定的定义及用途。

  代码:PairTest2.java

  1. package pair2;
  2.  
  3. import java.time.*;
  4.  
  5. /**
  6. * @version 1.02 2015-06-21
  7. * @author Cay Horstmann
  8. */
  9. public class PairTest2
  10. {
  11. public static void main(String[] args)
  12. {
  13. LocalDate[] birthdays =
  14. {
  15. LocalDate.of(1906, 12, 9), // G. Hopper
  16. LocalDate.of(1815, 12, 10), // A. Lovelace
  17. LocalDate.of(1903, 12, 3), // J. von Neumann
  18. LocalDate.of(1910, 6, 22), // K. Zuse
  19. };
  20. Pair<LocalDate> mm = ArrayAlg.minmax(birthdays);
  21. System.out.println("min = " + mm.getFirst());
  22. System.out.println("max = " + mm.getSecond());
  23. }
  24. }
  25.  
  26. class ArrayAlg
  27. {
  28. /**
  29. Gets the minimum and maximum of an array of objects of type T.
  30. @param a an array of objects of type T
  31. @return a pair with the min and max values, or null if a is null or empty
  32. */
  33. public static <T extends Comparable> Pair<T> minmax(T[] a) //将T限制为实现了Comparable接口的类
  34. {
  35. if (a == null || a.length == 0) return null;
  36. T min = a[0];
  37. T max = a[0];
  38. for (int i = 1; i < a.length; i++)
  39. {
  40. if (min.compareTo(a[i]) > 0) min = a[i];
  41. if (max.compareTo(a[i]) < 0) max = a[i];
  42. }
  43. return new Pair<>(min, max);
  44. }
  45. }

  Pair.java

  1. package pair2;
  2.  
  3. /**
     * @version 1.00 2004-05-10
     * @author Cay Horstmann
     */
    public class Pair<T> //Pair类引入了一个类型变量T
    {
       private T first;
       private T second;
  4.  
  5.    public Pair() { first = null; second = null; }
       public Pair(T first, T second) { this.first = first;  this.second = second; }
  6.  
  7.    public T getFirst() { return first; }
       public T getSecond() { return second; }
  8.  
  9.    public void setFirst(T newValue) { first = newValue; }
       public void setSecond(T newValue) { second = newValue; }
    }

  结果:

  测试程序3:

    用调试运行教材335页 PairTest3,结合程序运行结果理解程序;

    了解通配符类型的定义及用途。

  代码:

    Empolyee.java

  1. package pair3;
  2.  
  3. import java.time.*;
  4.  
  5. public class Employee
  6. {
  7. private String name;
  8. private double salary;
  9. private LocalDate hireDay;
  10.  
  11. public Employee(String name, double salary, int year, int month, int day)
  12. {
  13. this.name = name;
  14. this.salary = salary;
  15. hireDay = LocalDate.of(year, month, day);
  16. }
  17.  
  18. public String getName()
  19. {
  20. return name;
  21. }
  22.  
  23. public double getSalary()
  24. {
  25. return salary;
  26. }
  27.  
  28. public LocalDate getHireDay()
  29. {
  30. return hireDay;
  31. }
  32.  
  33. public void raiseSalary(double byPercent)
  34. {
  35. double raise = salary * byPercent / 100;
  36. salary += raise;
  37. }
  38. }

  Manager.java

  1. package pair3;
  2.  
  3. public class Manager extends Employee
  4. {
  5. private double bonus;
  6.  
  7. /**
  8. @param name the employee's name
  9. @param salary the salary
  10. @param year the hire year
  11. @param month the hire month
  12. @param day the hire day
  13. */
  14. public Manager(String name, double salary, int year, int month, int day)
  15. {
  16. super(name, salary, year, month, day);
  17. bonus = 0;
  18. }
  19.  
  20. public double getSalary()
  21. {
  22. double baseSalary = super.getSalary();
  23. return baseSalary + bonus;
  24. }
  25.  
  26. public void setBonus(double b)
  27. {
  28. bonus = b;
  29. }
  30.  
  31. public double getBonus()
  32. {
  33. return bonus;
  34. }
  35. }

  Pair.java

  1. package pair3;
  2.  
  3. /**
  4. * @version 1.00 2004-05-10
  5. * @author Cay Horstmann
  6. */
  7. public class Pair<T> //Pair类引入了一个类型变量T
  8. {
  9. private T first;
  10. private T second;
  11.  
  12. public Pair() { first = null; second = null; }
  13. public Pair(T first, T second) { this.first = first; this.second = second; }
  14.  
  15. public T getFirst() { return first; }
  16. public T getSecond() { return second; }
  17.  
  18. public void setFirst(T newValue) { first = newValue; }
  19. public void setSecond(T newValue) { second = newValue; }
  20. }

  PariTest3.java

  1. package pair3;
  2.  
  3. /**
  4. * @version 1.01 2012-01-26
  5. * @author Cay Horstmann
  6. */
  7. public class PairTest3
  8. {
  9. public static void main(String[] args)
  10. {
  11. var ceo = new Manager("Gus Greedy", 800000, 2003, 12, 15);
  12. var cfo = new Manager("Sid Sneaky", 600000, 2003, 12, 15);
  13. var buddies = new Pair<Manager>(ceo, cfo);
  14. printBuddies(buddies);
  15.  
  16. ceo.setBonus(1000000);
  17. cfo.setBonus(500000);
  18. Manager[] managers = { ceo, cfo };
  19.  
  20. var result = new Pair<Employee>();
  21. minmaxBonus(managers, result);
  22. System.out.println("first: " + result.getFirst().getName()
  23. + ", second: " + result.getSecond().getName());
  24. maxminBonus(managers, result);
  25. System.out.println("first: " + result.getFirst().getName()
  26. + ", second: " + result.getSecond().getName());
  27. }
  28.  
  29. public static void printBuddies(Pair<? extends Employee> p)//通配符类型,带有上界,extends关键字声明的上界既可以是一个类,也可以是一个接口
  30. {
  31. Employee first = p.getFirst();
  32. Employee second = p.getSecond();
  33. System.out.println(first.getName() + " and " + second.getName() + " are buddies.");
  34. }
  35.  
  36. public static void minmaxBonus(Manager[] a, Pair<? super Manager> result)//通配符类型,带有下界,必须是Manager的子类
  37. {
  38. if (a.length == 0) return;
  39. Manager min = a[0];
  40. Manager max = a[0];
  41. for (int i = 1; i < a.length; i++)
  42. {
  43. if (min.getBonus() > a[i].getBonus()) min = a[i];
  44. if (max.getBonus() < a[i].getBonus()) max = a[i];
  45. }
  46. result.setFirst(min);
  47. result.setSecond(max);
  48. }
  49.  
  50. public static void maxminBonus(Manager[] a, Pair<? super Manager> result)//通配符类型
  51. {
  52. minmaxBonus(a, result);
  53. PairAlg.swapHelper(result); // OK--swapHelper captures wildcard type 用swapHelper捕获通配符类型
  54. }
  55. // can't write public static <T super manager> . . .
  56. }
  57.  
  58. class PairAlg
  59. {
  60. public static boolean hasNulls(Pair<?> p)//将hasNulls转换成泛型方法,来避免使用通配符类型
  61. {
  62. return p.getFirst() == null || p.getSecond() == null;
  63. }
  64.  
  65. public static void swap(Pair<?> p) { swapHelper(p); }//在交换时临时保存第一个元素,辅助方法swapHelper(泛型方法)
  66.  
  67. public static <T> void swapHelper(Pair<T> p)
  68. {
  69. T t = p.getFirst();
  70. p.setFirst(p.getSecond());
  71. p.setSecond(t);
  72. }
  73. }

  结果:

实验2结对编程练习,将程序提交到PTA(2019面向对象程序设计基础知识测试题(2)

1 编写一个泛型接口GeneralStack,要求类方法对任何引用类型数据都适用。GeneralStack接口中方法如下:

push(item);            //如item为null,则不入栈直接返回null。

pop();                 //出栈,如为栈为空,则返回null。

peek();                //获得栈顶元素,如为空,则返回null.

public boolean empty();//如为空返回true

public int size();     //返回栈中元素数量

2定义GeneralStack的类ArrayListGeneralStack要求:

ü 类内使用ArrayList对象存储堆栈数据,名为list;

ü 方法: public String toString()//代码为return list.toString();

ü 代码中不要出现类型不安全的强制转换。

3定义Car类,类的属性有:

private int id;

private String name;

方法:Eclipse自动生成setter/getter,toString方法。

4main方法要求

ü 输入选项,有quit, Integer, Double, Car 4个选项。如果输入quit,程序直接退出。否则,输入整数m与n。m代表入栈个数,n代表出栈个数。然后声明栈变量stack。

ü 输入Integer,打印Integer Test。建立可以存放Integer类型的ArrayListGeneralStack。入栈m次,出栈n次。打印栈的toString方法。最后将栈中剩余元素出栈并累加输出。

ü 输入Double ,打印Double Test。剩下的与输入Integer一样。

ü 输入Car,打印Car Test。其他操作与Integer、Double基本一样。只不过最后将栈中元素出栈,并将其name依次输出。

特别注意:如果栈为空,继续出栈,返回null

输入样例

  1. Integer
  2. 5
  3. 2
  4. 1 2 3 4 5
  5. Double
  6. 5
  7. 3
  8. 1.1 2.0 4.9 5.7 7.2
  9. Car
  10. 3
  11. 2
  12. 1 Ford
  13. 2 Cherry
  14. 3 BYD
  15. quit

输出样例

  1. Integer Test
  2. push:1
  3. push:2
  4. push:3
  5. push:4
  6. push:5
  7. pop:5
  8. pop:4
  9. [1, 2, 3]
  10. sum=6
  11. interface GeneralStack
  12. Double Test
  13. push:1.1
  14. push:2.0
  15. push:4.9
  16. push:5.7
  17. push:7.2
  18. pop:7.2
  19. pop:5.7
  20. pop:4.9
  21. [1.1, 2.0]
  22. sum=3.1
  23. interface GeneralStack
  24. Car Test
  25. push:Car [id=1, name=Ford]
  26. push:Car [id=2, name=Cherry]
  27. push:Car [id=3, name=BYD]
  28. pop:Car [id=3, name=BYD]
  29. pop:Car [id=2, name=Cherry]
  30. [Car [id=1, name=Ford]]
  31. Ford
  32. interface GeneralStack

    代码:

  1.  
  1. import java.util.ArrayList;
  2. import java.util.Scanner;
  3.  
  4. interface GeneralStack<T> {
  5. public T push(T item); //若item为null,则不入栈直接返回null。
  6. public T pop(); //出栈,如为栈为空,则返回null。
  7. public T peek(); //获得栈顶元素,如为空,则返回null.
  8. public boolean empty(); //如为空返回true
  9. public int size(); //返回栈中元素数量
  10. }
  11. class ArrayListGeneralStack implements GeneralStack{ //泛型接口GeneralStack
  12. ArrayList list=new ArrayList();
  13. @Override
  14. public String toString() {
  15. return list.toString();
  16. }
  17.  
  18. @Override
  19. public Object push(Object item) {//入栈
  20. if (list.add(item)){
  21. return item;
  22. }else {
  23. return false;
  24. }
  25. }
  26.  
  27. @Override
  28. public Object pop() {//出栈
  29. if (list.size()==0){
  30. return null;
  31. }
  32. return list.remove(list.size()-1);
  33. }
  34.  
  35. @Override
  36. public Object peek() { //取栈顶元素
  37. return list.get(list.size()-1);
  38. }
  39.  
  40. @Override
  41. public boolean empty() {
  42. if (list.size()==0){
  43. return true;
  44. }else {
  45. return false;
  46. }
  47. }
  48.  
  49. @Override
  50. public int size() {
  51. return list.size();
  52. }
  53. }
  54. class Car{ //Car类
  55. private int id;
  56. private String name;
  57.  
  58. @Override
  59. public String toString() {
  60. return "Car [" + "id=" + id +", name=" + name +']';
  61. }
  62.  
  63. public int getId() {
  64. return id;
  65. }
  66.  
  67. public void setId(int id) {
  68. this.id = id;
  69. }
  70.  
  71. public String getName() {
  72. return name;
  73. }
  74.  
  75. public void setName(String name) {
  76. this.name = name;
  77. }
  78.  
  79. public Car(int id, String name) {
  80. this.id = id;
  81. this.name = name;
  82. }
  83. }
  84. public class Main {
  85. public static void main(String[] args) {
  86. @SuppressWarnings("resource")
  87. Scanner in=new Scanner(System.in);
  88. while (true){
  89. String a=in.nextLine();
  90. if (a.equals("Integer"))//为Integer
  91. {
  92. //System.out.println("");
  93. int count=in.nextInt();
  94. int pop_time=in.nextInt();
  95. System.out.println("Integer Test");
  96. ArrayListGeneralStack arrayListGeneralStack = new ArrayListGeneralStack();
  97. for (int i=0;i<count;i++){
  98. System.out.println("push:"+arrayListGeneralStack.push(in.nextInt()));
  99. }
  100. for (int i=0;i<pop_time;i++){
  101. System.out.println("pop:"+arrayListGeneralStack.pop());
  102. }
  103. System.out.println(arrayListGeneralStack.toString());
  104. int size=arrayListGeneralStack.size();
  105. int sum=0;
  106. for (int i=0;i<size;i++){
  107. sum=sum+(int)(arrayListGeneralStack.pop());
  108. }
  109. System.out.println("sum="+sum);
  110. System.out.println("interface GeneralStack");
  111. }else if(a.equals("Double"))//为Double
  112. {
  113. System.out.println("Double Test");
  114. int count=in.nextInt();
  115. int pop_time=in.nextInt();
  116. ArrayListGeneralStack arrayListGeneralStack = new ArrayListGeneralStack();
  117. for (int i=0;i<count;i++)
  118. {
  119. System.out.println("push:"+arrayListGeneralStack.push(in.nextDouble()));
  120. }
  121. for (int i=0;i<pop_time;i++)
  122. {
  123. System.out.println("pop:"+arrayListGeneralStack.pop());
  124. }
  125. System.out.println(arrayListGeneralStack.toString());
  126. int size=arrayListGeneralStack.size();
  127. double sum=0;
  128. for (int i=0;i < size;i++){
  129. sum = sum + (double)(arrayListGeneralStack.pop());
  130. }
  131. System.out.println("sum="+sum);
  132. System.out.println("interface GeneralStack");
  133. }else if (a.equals("Car"))
  134. {
  135. System.out.println("Car Test");
  136. int count=in.nextInt();
  137. int pop_time=in.nextInt();
  138. ArrayListGeneralStack arrayListGeneralStack = new ArrayListGeneralStack();
  139. for (int i=0;i<count;i++)
  140. {
  141. int id=in.nextInt();
  142. String name=in.next();
  143. Car car = new Car(id,name);
  144. System.out.println("push:"+arrayListGeneralStack.push(car));
  145. }
  146. for (int i=0;i<pop_time;i++)
  147. {
  148. System.out.println("pop:"+arrayListGeneralStack.pop());
  149. }
  150. System.out.println(arrayListGeneralStack.toString());
  151. if (arrayListGeneralStack.size()>0)
  152. {
  153. int size=arrayListGeneralStack.size();
  154. for (int i=0;i<size;i++)
  155. {
  156. Car car=(Car) arrayListGeneralStack.pop();
  157. System.out.println(car.getName());
  158. }
  159. }
  160. System.out.println("interface GeneralStack");
  161. }else if (s.equals("quit"))
  162. {
  163. break;
  164. }
  165. }
  166.  
  167. }
  168. }
  1.  
  1.  

  结果:

  实验总结:

    通过本次实验,我学到了:1.泛型类的定义与使用       2.泛型方法的声明与使用          3.泛型接口的定义与实现

  4.理解泛型程序设计      5.通配符

      本次实验验证理解性实验难度不大,在理解完整代码的基础上,加深了我对泛型类的理解,尝试着熟悉泛型类的定义,泛型方法的声明与使用,泛型接口的 使用,逐步体会到泛型程序设计的好处。但在较为综合的Pair3的理解较为困难,不断翻书,查找知识,基本上有了大致的理解。最为困难的要数结对编程练习,看到题目不知该如何下手,没有思路。在与同学讨论商量后大致有了一点思路,但在实现的过程中问题多多,困难重重,再多次修改,询问后基本差不多实现。自己的编程问题很多。在闲暇之余,要尝试解决简单问题,多敲,多调试。

201871010106-丁宣元 《面向对象程序设计(java)》第十一周学习总结的更多相关文章

  1. 201771010134杨其菊《面向对象程序设计java》第九周学习总结

                                                                      第九周学习总结 第一部分:理论知识 异常.断言和调试.日志 1.捕获 ...

  2. 201871010132-张潇潇《面向对象程序设计(java)》第一周学习总结

    面向对象程序设计(Java) 博文正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cn ...

  3. 扎西平措 201571030332《面向对象程序设计 Java 》第一周学习总结

    <面向对象程序设计(java)>第一周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 ...

  4. 杨其菊201771010134《面向对象程序设计Java》第二周学习总结

    第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...

  5. 201871010124 王生涛《面向对象程序设计JAVA》第一周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://edu.cnblogs.com/campus/xbsf/ ...

  6. 201871010115——马北《面向对象程序设计JAVA》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  7. 201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  8. 201871010132——张潇潇《面向对象程序设计JAVA》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  9. 201771010123汪慧和《面向对象程序设计Java》第二周学习总结

    一.理论知识部分 1.标识符由字母.下划线.美元符号和数字组成, 且第一个符号不能为数字.标识符可用作: 类名.变量名.方法名.数组名.文件名等.第二部分:理论知识学习部分 2.关键字就是Java语言 ...

  10. 20172325 2017-2018-2 《Java程序设计》第十一周学习总结

    20172325 2017-2018-2 <Java程序设计>第十一周学习总结 教材学习内容总结 Android简介 Android操作系统是一种多用户的Linux系统,每个应用程序作为单 ...

随机推荐

  1. Pwn-level2

    题目地址 https://dn.jarvisoj.com/challengefiles/level2.54931449c557d0551c4fc2a10f4778a1 先看一下文件的属性   32位 ...

  2. web-never give up

    打开题目连接 ?id=1 ,疑是注入点 但是输入其他数字无果 打开源码,发现注释有网页链接 打开连接123.206.87.240:8006/test/1p.html 发现回到了bugku的论坛首页,应 ...

  3. Jenkins配置:添加用户和管理权限

    Jenkins配置:添加用户和管理权限 参考文章:http://www.cnblogs.com/zz0412/p/jenkins_jj_14.html 今天给大家说说使用Jenkins专有用户数据库的 ...

  4. jQuery与IE兼容性问题处理

    jQuery虽然是兼容所有主流的浏览器,但实际应用中也会存在很多兼容性的问题.使用IE11+jquery-3.2.1.min.js遇到的问题如: 对象不支持indexOf 在低版本中,1.8写法如下: ...

  5. Note | 论文写作笔记

    目录 1. 规范 2. 语法 3. 其他 4. 好图好表 5. 好表达 我们的工作很重要 我们的工作有意义 我们的工作细节 我们怎么组织这篇文章 最终效果出类拔萃 怎么解释我们的成功 写完逐条核对吧. ...

  6. Eureka注册中心的自我保护模式

    如果在Eureka Server的首页看到以下这段提示,则说明Eureka已经进入了保护模式. EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTAN ...

  7. 动态修改maven的jdk版本

    当环境变量jdk为1.7,项目为jdk1.8,用mvn clean package指令打包项目时,想不修改环境变量的情况下,修改maven的jdk版本 方法如下: 官网给出了方法 https://ma ...

  8. Erlang语言基础总结

    1.=操作符(模式匹配) 当看到一个表达式像X = 123时,它的意思看似“将整数123赋予变量X”,但这种解读是不 正确的.=不是一个赋值操作符,它实际上是一个模式匹配操作符.与其他函数式编程语言一 ...

  9. Python字典(Dictionary)update()方法

    原文连接:https://www.runoob.com/python/att-dictionary-update.html Python字典(dictionary)update()函数把字典dict2 ...

  10. IDEA设置外部比对工具Beyond Compare

    设置IDEA使用外部的比对工具,比如Beyond Compare,其实很简单,但是可能好几年才会设置一次,比如换工作的时候,所以记录下来 可以通过菜单File-Settings 或者直接快捷键ctrl ...