首页 > 编程语言 >java07

java07

时间:2024-09-05 10:23:18浏览次数:11  
标签:java07 java sites sites01 System println out

一、java包

一个包(package)可以定义为一组相互联系的类型(类、接口、枚举和注释),为这些类型提供访问保护和命名空间管理的功能。

(一)Java 中的包:

java.lang-打包基础的类
java.io-包含输入输出功能的函数

(二)创建包

创建包的时候要为包取一个合适的名字
如果其他的一个源文件包含了这个包提供的类、接口、枚举、或者注释类型的时候,都必须将这个包的声明放在这个源文件的开头
包声明应该在源文件的第一行,每个源文件智能有一个包声明,这个文件的,诶个类型都应用于它
如果一个源文件中没有使用包声明,南无其中的类,函数,枚举。注释等将被放在一个无名的包中
package com.company;

 

(三)import关键字

为了能够使用某一个包的成员,我们应该在java中明确导入包
在java中import关键字用于引入其他包中的类。接口。静态成员。它允许你在代码中直接使用其他包中的类,而不需要完整的指定类的包名
import package1[.package2…].(classname|*);
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import 语句引入其他包中的类
在一个包中想引用本包中的另一个类,那么包名可以省略
这样就可以在源文件中直接使用类的方法、变量、或常量
*代表引入整个包

 

二、反射

(一)反射

java反射是一个强大的特性,它允许程序在运行时查询,访问和修改类、接口、字段和方法的信息。反射提供了一种动态的操作类的能力,这在很多框架和库中被广泛使用
反射API
java反射API提供了一系列的类和接口来操作对象,主要的类包括:
java.lang.Class:表示类的对象,提供了方法来获取类的字段、方法、构造函数等
java.lang.reflect.Field:表示类的字段。提供了访问和修改的能力
java.lang.reflect.Method:表示类的方法,提供了调用方法的能力
java.lang.reflect.Constructor:表示类的构造函数,提供了创造对象的能力

(二)工作流程

1、获取class对象:首先获取目标的class对象
2、获取成员信息:通过class对象,可以获取类的字段、方法、构造函数等信息
3、操作对象:通过API反射可以读取和修改字段的值、调用方法以及创造对象

三、java数据结构

(一)数组

数组是一种基本的数据结构,可以存储固定大小的相同类型元素
int []arr=new int[5];
特点:固定大小,存储相同类型元素
优点:随机访问元素效率高
缺点:大小固定,插入和删除元素相对较慢

(二)列表

列表:Java 提供了多种列表实现,如 ArrayList 和 LinkedList。
List<String> arrayList = new ArrayList<>();
List<Integer> linkedList = new LinkedList<>();

1、ArrayList:

特点:动态数组可变大小
优点:高效的随机访问和快速尾部插入
缺点:中间插入和删除比较慢

2、LinkedList:

特点:双向链表,元素之间通过指针连接
优点:插入和删除元素效率高,迭代器性能好
缺点:随机访问相对较慢

(三)集合Sets

sets用于存储不重复的元素,常见的实现有hashset和Treeset
(1)hashset
特点:无序集合,基于HashMap实现
优点:高效的查找和插入操作
缺点;不保证等顺序
(2)Treeset
特点:有序集合,底层基于红黑树实现,不允许重复元素
优点:提供自动排序功能,适用于需要按照顺序存储元素的场景
缺点:性能相对较差,不允许插入NULL

(四)映射(map)

用于存储键值对,常见的实现有 HashMap 和 TreeMap。
Map<String, Integer> hashMap = new HashMap<>();
Map<String, Integer> treeMap = new TreeMap<>();
(1)HashMap:
特点: 基于哈希表实现的键值对存储结构。
优点: 高效的查找、插入和删除操作。
缺点: 无序,不保证顺序。
(2)TreeMap:
特点: 基于红黑树实现的有序键值对存储结构。
优点: 有序,支持按照键的顺序遍历。
缺点: 插入和删除相对较慢。

(五)栈(Stack)

栈(Stack)是一种线性数据结构,它按照后进先出(Last In, First Out,LIFO)的原则管理元素。
在栈中,新元素被添加到栈的顶部,而只能从栈的顶部移除元素。
这就意味着最后添加的元素是第一个被移除的。

(六)队列(Queue)

队列(Queue)遵循先进先出(FIFO)原则,常见的实现有 LinkedList 和 PriorityQueue。

(七)堆(Heap)

堆(Heap)优先队列的基础,可以实现最大堆和最小堆。

(八)树(Trees)

Java 提供了 TreeNode 类型,可以用于构建二叉树等数据结构。

(九)图(Graphs)

图的表示通常需要自定义数据结构或使用图库,Java 没有内建的图类。

四、ArrayList

是一个可以动态修改的数组,与普通数组的区别就是它没有固定的限制,我们可以增加或者删除元素
arraylist类位于java.util包中,使用前必须要引入它,
import java.util.ArrayList;
ArrayList<E>objectname=new ArrayList<>();
E:用于设置objectname数据类型,只能为引用数据类型
objectname:对象名

        //创建动态数组
        ArrayList<Integer> sites = new ArrayList<Integer>();
        //向数组中添加元素
        sites.add(1);
        sites.add(3);
        sites.add(11);
        sites.add(2);
        System.out.println(sites);
        //从数组中获取数据  使用get方法
        System.out.println(sites.get(0));
        //从数组中修改元素   使用set方法
        sites.set(0,0);//第一个元素为索引位置,第二个元素为修改的值
        System.out.println(sites);
        //删除元素     使用remove方法
        sites.remove(0);//删除下标为0的元素
        System.out.println(sites);
        //计算数组大小   使用size()方法
        System.out.println(sites.size());
        //迭代数组列表
        //for循环
        for(int i=0;i<sites.size();i++)
        {
            System.out.println(sites.get(i));
        }
        //for增强
        for(int i:sites)
        {
            System.out.println(i);
        }
        //ArrayList排序
       // Collections类排序  使用sort() 对字符或者数字列表进行排序,从小到大
        Collections.sort(sites);
        System.out.println(sites);

五、链表(LinkedList)

//链表
        //创建一个链表、
        LinkedList<String>sites01 = new LinkedList<String>();
        //写入数据并输出
        sites01.add("001a");
        sites01.add("002b");
        sites01.add("003c");
        sites01.add("004d");
        //输出链表
        System.out.println(sites01);
        //头插
        sites01.addFirst("000q");
        //尾插
        sites01.addLast("999p");
        System.out.println(sites01);
        //删除头
        sites01.removeFirst();
        //删除尾
        sites01.removeLast();
        System.out.println(sites01);
        //获取头
        System.out.println(sites01.getFirst());
        //获取尾
        System.out.println(sites01.getLast());
        sites01.set(1, "99999");
        System.out.println(sites01);
        //迭代
        for(int i=0;i<sites01.size();i++)
        {
            System.out.println(sites01.get(i));
        }
        //for增强迭代
        for(String x:sites01)
        {
            System.out.println(x);
        }

标签:java07,java,sites,sites01,System,println,out
From: https://blog.csdn.net/zyq2217330101/article/details/141923824

相关文章

  • java07
    数组数组的声明和创建dataType[]=arrayRefVar创建数组dataType[]arrayRefVar=newdataType[array.length];数组长度arrays.length内存堆:1,存放new的对象和数组2,栈:1,存放基本的变量类型2,引用对象的变量数组的注意事项1.数组一旦被创建,长度就是确定的2.其元素必须......
  • 学java07数据类型
    基本类型数值类型整数类型:byte(1字节)-128到127;short(2字节)-32768到32767;int(4字节)-2147483648到2147483647;long(要在字数后面加L)(8字节)-9223372036854775808到9223372036854775807浮点类型:float(4字节)(要在字数后面加F);double(8字节)字符类型:char(2字节)单个符号或汉字字符串:string(不......
  • Java07
    一、面向过程&面向对象1.面向过程:线性思维,处理简单问题2.面向对象:分类,复杂问题 二、面向对象(OOP)1.本质:以类的方式组织代码,以对象的组织(封装)数据。......
  • Java07 异常
    一、什么是异常实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对......