一、JAVA中两大类型

  • 基本类型(byte、short、int->(Integer)、long、float、double)
  • 类 类型
  • 两者优缺点:使用基本类型效率高,但是类类型里面可以有一些属性、方法

二、基本类型与类类型的相互转化

  • 例如:

    int 与Integer类相互转化

    • public int intValue() Integer 转化成int
    • public static Integer valueOf(String s)throwsNumberFormatExcepton

      int转化成Integer
  • 其他类型与之相似

三、int与Integer之间的区别

  • 代码验证1:
    int i1=1;
    int i2=2;
    System.out.println(i1==i2);//结果为true
  • 代码验证2:
    Integer i1=Integer.valueOf(1);
    Integer i2=Integer.valueOf(1);
    System.out.println(i1==i2);//结果为true
  • 代码验证3:
    Integer i1=Integer.new(1);
    Integer i2=Integer.new(1);
    System.out.println(i1==i2);//结果为false
  • 代码验证4:
    Integer i1 =100;
    Integer i2 =100;
    if (i1 == i2){
    System.out.println("i1 == i2");
    } else {
    System.out.println("i1 != i2");
    }
    //输出i1==i2;
  • 代码验证5:
    Integer i1 =200;
    Integer i2 =200;
    if (i1 == i2){
    System.out.println("i1 == i2");
    } else {
    System.out.println("i1 != i2");
    }
    //输出i1!=i2;
  • 部分运行结果截图:

  • 理解情况:
  1. 由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量永远是不相等的。(因为引用不相同)
  2. Integer变量和int变量比较时,只要两个变量的值是相等的,则结果为true。
    • 原因:因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较。
    • 例如:Integet i1=100; 默认为Integer i1=Integer.valueOf(100)。
  3. 对于两个非new生成的Integer对象,进行比较时,如果两个变量的值在区间-128到127之间,则比较结果为true,如果两个变量的值不在此区间,则比较结果为false
    • 因为Integer有个默认范围-128-127。
    • 但你也可以通过如下指令修改范围:java -Djava.lang.Integer.IntegerCache.high=300;//将范围改为-128-300

四、String、StringBuffer、StringBuilder三者之间的区别

  • 代码验证1:
    String s1="hello"
String s2="hello"
System.out.println(s1 == s2);//输出结果为true
  • 代码验证2:
    String s1="hello";
String s2=s1;
System.out.println(s1 == s2);//输出结果为true
  • 代码验证3:
    String s1=new String("hello");
String s2=s1;
s1=s1+"world";
System.out.printlns(s1==s2);//输出结果为false
  • 代码验证4:
    StringBuilder s1=new StringBuilder("hello");
StringBuilder s2=s1;
s1=s1,append("hello");
System.out.printlns(s1==s2);//输出结果为true
  • 代码验证5:
    StringBuffer s1=new StringBuffer("hello");
StringBufferr s2=s1;
s1=s1,append("hello");
System.out.printlns(s1==s2);//输出结果为true
  • 部分运行结果截图:







  • 理解情况:
  1. String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。(String后面一旦加上一个字符串就重新new)
  2. StringBuilder类与StringBuffer类使用 append方法往后加字符串时不改变引用
  3. StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
  4. StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况,效率低

五、ArrayList类、Vector类、LinkedList类三者之间的区别

  • ArrayList类,动态,数组随机访问,访问任何一个元素所用的时间都是一致的 查找快
  • Vector类,多线程,并发时使用Vector
  • LinkedList链表,查找慢,插入删除快
  • 代码验证:
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.lang.Integer;
import java.util.Vector;
public class TestList {
public static List list = CreatList.creatList();
public static void main(String[] args) {
if (args[0].equals("0")) {
ArrayListTest();
}
if (args[0].equals("1")) {
VectorTest();
}
if (args[0].equals("2")) {
LinkListTest();
}
}
public static void ArrayListTest() {
ArrayList arrayList = new ArrayList(list);
int index3 = arrayList.indexOf(Integer.valueOf(35));
System.out.println(index3);
}
public static void VectorTest() {
Vector vector = new Vector(list);
int index3 = vector.indexOf(Integer.valueOf(35));
System.out.println(index3);
}
public static void LinkListTest() {
LinkedList linkedList = new LinkedList(list);
int index3 = linkedList.indexOf(35);
System.out.println(index3);
}
}
  • 运行结果截图:

六、HashMap、HashTable、TreeMap三者之间的区别

  • HashMap具有很快的访问速度。HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致。
  • Hashtable与HashMap类似,不同的是:它支持线程的同步,即任一时刻只有一个线程能写Hashtable,然而,这也导致了Hashtable在写入时会比较慢。
  • TreeMap能够把它保存的记录根据键排序,默认是按升序排序,也可以指定排序的比较器。当用Iteraor遍历TreeMap时,得到的记录是排过序的。
  • 代码验证:
    • 代码1:
    import java.util.Iterator;
    import java.util.Map;
    public class HashMap {
    public static void main(String[] args) {
    Map<String, String> map1= new java.util.HashMap<String, String>();
    map1.put("20175313","张黎仙");
    map1.put("20175314","薛勐");
    map1.put("20175312","陶光远");
    map1.put("20175316","盛茂淞");
    map1.put("20175311","胡济栋");
    map1.put("20175315","陈煜扬");
    long start1=System.currentTimeMillis();
    Iterator<Map.Entry<String, String>> it1 = map1.entrySet().iterator();
    while (it1.hasNext()) {
    Map.Entry<String, String> e = it1.next();
    System.out.println("Key: " + e.getKey() + "; Value: " + e.getValue());
    }
    }
    }
    • 代码2:
    import java.util.HashMap;
    import java.util.Hashtable;
    import java.util.Map;
    import java.util.TreeMap;
    import java.util.Iterator;
    public class HashTable {
    public static void main(String[] args) {
    Map<String, String> map= new Hashtable<String, String>();
    map.put("20175313","张黎仙");
    map.put("20175314","薛勐");
    map.put("20175312","陶光远");
    map.put("20175316","盛茂淞");
    map.put("20175311","胡济栋");
    map.put("20175315","陈煜扬");
    long start=System.currentTimeMillis();
    Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
    while (it.hasNext()) {
    Map.Entry<String, String> e = it.next();
    System.out.println("Key: " + e.getKey() + "; Value: " + e.getValue());
    }
    }
    }
    • 代码3:
    import java.util.Iterator;
    import java.util.Map;
    public class TreeMap {
    public static void main(String[] args) {
    Map<String, String> map2= new java.util.TreeMap<String, String>();
    map2.put("20175313","张黎仙");
    map2.put("20175314","薛勐");
    map2.put("20175312","陶光远");
    map2.put("20175316","盛茂淞");
    map2.put("20175311","胡济栋");
    map2.put("20175315","陈煜扬");
    long start2=System.currentTimeMillis();
    Iterator<Map.Entry<String, String>> it2 = map2.entrySet().iterator();
    while (it2.hasNext()) {
    Map.Entry<String, String> e = it2.next();
    System.out.println("Key: " + e.getKey() + "; Value: " + e.getValue());
    }
    }
    }
  • 运行结果截图:

七、码云链接

20175313 张黎仙《Java综合讲座》第十三周课堂测试总结的更多相关文章

  1. 20155233 《Java程序设计》 第十三周课堂练习总结

    20155233 <Java程序设计>第十三周课堂练习总结 测试题目 测试1 在IDEA中对P145 MathTool.java 使用JUnit进行单元测试,测试用例不少于三个,要包含正常 ...

  2. 20175313 张黎仙《Java程序设计》第九周学习总结

    目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...

  3. 20175313 张黎仙《获奖感想与Java阶段性学习总结》

    一.获奖感想 很荣幸能够成为为数不多的小黄衫获得者之一,这是对我近一学期以来学习成果的肯定,也激励着我更加努力学习. 首先我要感谢的人就是娄嘉鹏老师.我曾在师生关系中提到,我认为的好老师的特点之一是: ...

  4. 20175313 张黎仙《Java程序设计》第十一周学习总结

    目录 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 一.教材学习内容总结 第十三章内容 主要内容 URL类 InetAdress类 套 ...

  5. 20175313 张黎仙《Java程序设计》第十周学习总结

    目录 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码调试中的问题和解决过程 四.代码托管 五.心得体会 六.学习进度条 七.参考资料 一.教材学习内容总结 第十二章内容 主要内容 杂项 ...

  6. 学号 20175201张驰 《Java程序设计》第8周学习总结

    学号 20175201张驰 <Java程序设计>第8周学习总结 教材学习内容总结 第十五章 知识总结: 1.泛型类声明:可以使用"class 名称"声明一个类,例如:c ...

  7. 学号 20175201张驰 《Java程序设计》第7周学习总结

    学号 20175201张驰 <Java程序设计>第7周学习总结 教材学习内容总结 第八章 String类能有效地处理字符序列信息,它的常用方法有: public int length()可 ...

  8. 学号 20175201张驰 《Java程序设计》第6周学习总结

    学号 20175201张驰 <Java程序设计>第6周学习总结 教材学习内容总结 第7章 ·1.Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类称为内部类的外嵌类 ...

  9. 学号 20175201张驰 《Java程序设计》第5周学习总结

    学号 20175201张驰 <Java程序设计>第5周学习总结 教材学习内容总结 第六章 ·1.接口的接口体中只可以有常量和abstract方法. ·2.和类一样,接口也是Java中一种重 ...

随机推荐

  1. elementui限制开始日期和结束日期

    项目需求:开始日期和结束日期 禁用当前日期之前的日期.同时结束日期 禁用开始日期之前的日期 <div class='startTime'> 开始时间:<el-date-picker ...

  2. linux 下调用wps 注意

    记录笔记以防忘记 wps 是界面程序,linux 必须在界面终端中调用 wps 命令才能打开软件 xshell 连接时启动tomcat ,wps命令 会使用Xshell 的隧道转发,只有在界面下的终端 ...

  3. echart——vue封装成公共组件

    <!-- 自定义Echarts * options: Object,//数据 * theme: String,//主题 * initOptions: Object,//初始化 * group: ...

  4. CentOS7安装CDH 第七章:CDH集群Hadoop的HA配置

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  5. Flutter——Radio组件、RadioListTile组件(单选按钮组件)

    Radio组件 Radio组件的常用属性: 属性 描述 value 单选的值 onChanged 改变时触发 activeColor 选中的颜色.背景颜色 groupValue 选择组的值 impor ...

  6. Linux命令——pr

    参考:Linux命令——column 前言 接触这个命令的初衷是我想把一个很长的单列输出设置成多列输出,奈何column的分列输出机制太智障,直到我发现了pr 参数 pr -# 输出指定的列数. -t ...

  7. Ubuntu armhf 版本国内源

    Ubuntu armhf 版本国内源: deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted u ...

  8. linux网络编程之socket编程(六)

    经过一个国庆长假,又有一段时间没有写博文了,今天继续对linux网络编程进行学习,如今的北京又全面进入雾霾天气了,让我突然想到了一句名句:“真爱生活,珍惜生命”,好了,言归正传. 回顾一下我们之间实现 ...

  9. SVG的几个标签元素

    defs svg允许我们定义以后需要重复使用的图形元素.建议把所有需要再次使用的元素定义在defs元素里面.这样做可以增加svg内容的易读性和可访问性.在defs元素定义的元素不会直接呈现.你可以在你 ...

  10. tomcat启动之后,Chrome浏览器可以访问,IE不行(IE无法访问8080 端口)

    方法简单粗暴,在windows中关闭IE服务,然后再重新安装服务. 请注意,在输入框输入:  http://localhost:8080/myproject 不要直接输入localhost:8080/ ...