一、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;

部分运行结果截图:

理解情况:

由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量永远是不相等的。(因为引用不相同)

Integer变量和int变量比较时,只要两个变量的值是相等的,则结果为true。

原因:因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较。

例如:Integet i1=100; 默认为Integer i1=Integer.valueOf(100)。

对于两个非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

部分运行结果截图:

理解情况:

String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。(String后面一旦加上一个字符串就重新new)

StringBuilder类与StringBuffer类使用 append方法往后加字符串时不改变引用

StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况

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 map1= new java.util.HashMap();

map1.put("20175313","张黎仙");

map1.put("20175314","薛勐");

map1.put("20175312","陶光远");

map1.put("20175316","盛茂淞");

map1.put("20175311","胡济栋");

map1.put("20175315","陈煜扬");

long start1=System.currentTimeMillis();

Iterator> it1 = map1.entrySet().iterator();

while (it1.hasNext()) {

Map.Entry 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 map= new Hashtable();

map.put("20175313","张黎仙");

map.put("20175314","薛勐");

map.put("20175312","陶光远");

map.put("20175316","盛茂淞");

map.put("20175311","胡济栋");

map.put("20175315","陈煜扬");

long start=System.currentTimeMillis();

Iterator> it = map.entrySet().iterator();

while (it.hasNext()) {

Map.Entry 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 map2= new java.util.TreeMap();

map2.put("20175313","张黎仙");

map2.put("20175314","薛勐");

map2.put("20175312","陶光远");

map2.put("20175316","盛茂淞");

map2.put("20175311","胡济栋");

map2.put("20175315","陈煜扬");

long start2=System.currentTimeMillis();

Iterator> it2 = map2.entrySet().iterator();

while (it2.hasNext()) {

Map.Entry e = it2.next();

System.out.println("Key: " + e.getKey() + "; Value: " + e.getValue());

}

}

}

运行结果截图:

java讲座总结报告_20175313 张黎仙《Java综合讲座》第十三周课堂测试总结相关推荐

  1. java 变量锁_一张图看透java的“锁”事

    Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率. Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家 ...

  2. Java设计模式之简单工厂模式实验(软件工程综合实践课程第二周)

    实验目的 1 .理解软件设计的相关理论 : 2 .理解面向对象设计原则: 实验内容 1 .简单工厂模式实验: (1) 参考讲义上的代码,利用简单工厂模式完成计算器应用程序: (2) 画出计算器程序简单 ...

  3. Java社会实践报告范文精选5篇

    Java社会实践报告范文精选5篇      Java社会实践报告1 面临毕业与就业的压力,不久将来就要从一个学生到一个社会人的转变:技术在不断的提高,思路在不断的开阔,思想在不断的升华,更重要的是自己 ...

  4. 20145302张薇《Java程序设计》实验三报告

    20145302张薇<Java程序设计>实验三:敏捷开发与XP实践 实验内容 使用git上传代码 使用git实现代码开发实践 实现代码的重载 使用git上传代码 git init git ...

  5. java语言实验报告,Java语言 实验报告(二)

    实验报告(二) 实验目的 熟悉 Java 图形界面的基本设计. 熟悉 Java 界面的菜单使用方法. 熟悉 Java 的多线程应用程序开发方法. 实验任务 1 编写 Java 应用程序,实现以下登陆界 ...

  6. java程序设计实验报告册_20145215《Java程序设计》实验一实验报告

    实验一 Java开发环境的熟悉 实验内容及步骤 使用JDK编译.运行简单的Java程序 命令行下程序开发: 在命令行下建立实验目录,进入该目录后创建exp1目录 敲入以下代码: package exp ...

  7. Java课程设计报告--绩效考核信息管理系统

     Java课程设计报告 题目      绩效考核信息管理系统    学生姓名         学    号                   院    系        年级专业计算机科学与技术 班 ...

  8. Java程序设计实验报告 实验名称:循环和数组

    Java程序设计实验报告 实验名称:循环和数组 学号: 姓名:大聪TI学员 实验日期:2018年5月30日星期三 一.实验目的: 1. 遵循循环设计策略来开发循环,使用标记值控制循环. 2. 使用fo ...

  9. 张天钰 内大计算机学院,20175305张天钰Java结对编程四则运算

    Java结对编程四则运算 一.题目描述:如何对表达式进行求值运算呢 1.中缀表达式与后缀表达式(娄老师讲解) 中缀表达式就是运算符号在运算数中间的表达式,比如1+2,顾名思义,后缀表达式就是运算符在运 ...

最新文章

  1. springboot国际化i18n
  2. Linux 内存映射函数 mmap()函数笔记
  3. iOS调用系统相册、相机 显示中文标题
  4. mysql触发器对同一张表做操作_mysql的触发器同数据库 多表的数据操作
  5. 如何让oracle用户不过期,Oracle用户密码设为不过期的两种方法
  6. Python基础__函数
  7. java中modifier_Java Modifier工具类
  8. 好好说话之ret2csu
  9. 不论微信钉钉还是什么软件,我写了个通用的消息监控处理机器人
  10. 修改/忘记数据库密码
  11. 使用Visio画UML模型
  12. Vue启动项目报错:Can‘t resolve ‘xxx‘ in ‘D:\briup\vue_test\node_modules\send‘
  13. Windows10 DPC_WATCHDOG_VIOLATION 蓝屏故障分析
  14. 利用PPT删除图片背景(PPT图片删除背景)
  15. Linux UVC driver 独立交叉编译记录
  16. 大工21春《船舶制图》大作业离线作业
  17. Nacos下载与安装(Windows)
  18. DSP入门小白学习日记第三篇
  19. 迈阿密色主题学科导航 HTML5静态开源
  20. 【转帖】一些常用网站列表

热门文章

  1. 深耕5G云专网,阿里云祝顺民入选“2022年度5G创新人物”
  2. 【CSS】禅意花园--心得分享
  3. 利用DW制作简单网页
  4. Kubernetes: kubectl 插件管理器 Krew 安装
  5. wms、wmts和wfs的区别
  6. 银河麒麟系统安装失败
  7. 使用多普达565(Dopod 565)几天以后的感受
  8. linux网络编程--网络编程的基本函数介绍与使用【转】
  9. 关于智慧团建忘记密码的解决方法
  10. 英文中 vi和vt的区别