首页 > 编程语言 >Java学习笔记(十二)

Java学习笔记(十二)

时间:2023-05-15 20:44:30浏览次数:40  
标签:初始化 Java 对象 元素 十二 笔记 length 数组 动态

1、     请描述你理解的对象数组

对象数组是一种由多个对象组成的数组,每个元素都是一个对象。在Java中,对象数组可以用来存储同一类型的对象,这些对象可以是预定义的类对象,也可以是自定义的类对象。

2、请描述数组的扩容机制

扩容其实就是定义一个空间程度更大的数组, 然后把原来数组的元素复制到大的数组中, 最后让原来的数组名指向这个大的数组(地址的赋值)。

3、请描述基本类型数组元素的删除过程

先建立一个新的数组,数组长度为旧数组减去要删除的元素个数,然后根据if条件判断,把旧数组中剩余的元素复制到新数组中。然后把新数组地址给旧数组。

4、请描述你理解的动态数组

动态数组是一种通过自动扩容机制来实现动态增删操作的数据结构。动态数组的实现方式通常是基于数组。

动态数组可以根据实际需求动态地调整数组的大小,以避免数组溢出或频繁的数组复制操作。

声明格式:数据类型[] 数组名字 = new 数据类型[数组长度];

5、数组有没有length()这个方法? String有没有length()这个方法

数组没有,有length属性。String有length()方法,用于返回字符串的长度。

6、请描述冒泡排序的思想

从数组的第一个元素开始,比较相邻的两个元素,如果前一个元素比后一个元素大,则交换它们的位置。

继续遍历数组,重复执行上述比较和交换的操作,直到遍历到最后一个元素。

重复执行第1步和第2步,但是在每次遍历时都将待排序的元素个数减1,因为每次遍历都会将最大的元素移动到数组的末尾。

当待排序的元素个数为1时,排序完成。

7、请描述数组的初始化方式

静态初始化,在定义数组时直接指定初始化值,int [] arr = {1,2,3,4,5}

动态初始化,在定义数组时只指定长度,而不指定具体的初始化值,int[] ints = new int[5];

8、请描述数组中可能会出现的异常

  1. 数组下标越界异常(ArrayIndexOutOfBoundsException):当尝试访问一个不存在的数组元素或数组下标超出了数组范围时,就会抛出数组下标越界异常。
  2. 空指针异常(NullPointerException):当尝试访问一个空数组或对数组进行null引用操作时,就会抛出空指针异常。
  3. 数组类型不匹配异常(ArrayStoreException):当尝试将一个类型不兼容的值存储到数组中时,就会抛出数组类型不匹配异常。

 

标签:初始化,Java,对象,元素,十二,笔记,length,数组,动态
From: https://www.cnblogs.com/wgh123/p/17403049.html

相关文章

  • Java设计模式-简单工厂模式
    简介在软件开发过程中,设计模式是一种被广泛应用的实践,它是通过总结、归纳和提炼出软件设计经验,从而使得设计更加优雅、高效。简单工厂模式是设计模式中最基本、最简单的一种模式,它能够有效地封装对象的创建过程,简化代码结构。简单工厂模式又称为静态工厂方法模式,它是通过定义一......
  • Java设计模式-桥接模式
    简介桥接模式(BridgePattern)是一种结构性设计模式,它的主要作用是将抽象部分和实现部分解耦,使它们可以独立变化而不会互相影响。桥接模式最早由GoF(GangofFour)提出,在《设计模式》一书中有详细的介绍。桥接模式和其他设计模式的区别在于它关注的是如何将抽象和实现分离,从而达到灵......
  • JAVA反序列化-URLDNS分析
    目录0x01URLDNS0x02利用链分析本文基于P大的《java安全漫谈》环境jdk1.7urldns是学习JAVA反序列化的入门利用链0x01URLDNSURLDNS就是ysoserial中⼀个利⽤链的名字,但准确来说,这个其实不能称作“利⽤链”。因为其参数不是⼀个可以“利⽤”的命令,⽽仅为⼀个URL,其能触发的结......
  • 给定一个字符串,用java代码找出其中不含有重复字符的最长子串的长度
    publicintlengthOfLongestSubstring(Strings){intn=s.length(),ans=0;Map<Character,Integer>map=newHashMap<>();for(inti=0,j=0;j<n;j++){if(map.containsKey(s.charAt(j))){i=Math.ma......
  • Java并发(六)----线程start、run、state方法
    1、start与run调用runpublicstaticvoidmain(String[]args){  Threadt1=newThread("t1"){    @Override    publicvoidrun(){      log.debug(Thread.currentThread().getName());//打印线程名称      FileRe......
  • Java并发(五)----线程常见方法总结
    常见方法方法名static功能说明注意start() 启动一个新线程,在新的线程运行run方法中的代码start方法只是让线程进入就绪,里面代码不一定立刻运行(CPU的时间片还没分给它)。每个线程对象的start方法只能调用一次,如果调用了多次会出现IllegalThreadStateException......
  • 4、HDFS-java操作类HDFSUtil及junit测试(HDFS的常见操作以及HA环境的配置)
    目录Hadoop系列文章目录一、pom.xml二、junit测试类三、操作类(帮助类)四、高可用环境的操作类本文编写了java对HDFS的常见操作,并且均测试通过。其功能包含构造conf、设置系统环境变量、创建目录、判断文件是否存在、获取文件/目录的大小等,具体见下图。本文分为四部分,即pom.xml、ju......
  • 5、zookeeper的java -Curator(服务注册与发现)
    目录Zookeeper系列文章目录一、知识介绍1、ServiceInstance2、ServiceProvider3、ServiceDiscovery1)、注册/注销服务2)、查询服务3)、服务缓存二、示例11、pom.xml2、ServiceInstance3、ServiceProvider及ServiceDiscovery4、注册服务的添加、删除、查询5、验证示例1三、示例21、Ins......
  • 4、zookeeper的java三种客户端介绍-Curator(crud、事务操作、监听、分布式计数器、分布
    目录Zookeeper系列文章目录一、zookeeper原生JavaAPI二、ZkClient三、Apachecurator1、pom.xml2、定义常量类3、连接实例化4、事务操作示例5、CRUD示例6、监听示例7、计数器示例1)、单机原子自增性实现1、Synchronized示例2、Lock示例3、AtomicInteger示例2)、分布式线程安全原子......
  • DOT 学习笔记
    开始大恶补图论了。说句闲话,\(\text{ODT}\)和\(\text{DOT}\)。\(\text{DOT}\),全称「树上启发式合并(\(\text{dsuontree}\))」,乍一听这个算法十分有智慧的样子,实际上也确实是一个人类智慧,他的本质就是「离线+节点合并」,听着复杂度似乎很扯,但是实际上它是正确的,但是我不会证明......