![](https://img-blog.csdnimg.cn/direct/e6b8a078b74442fc857845faf484d336.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
java基础
文章平均质量分 94
在Java编程中,尽管Java本身是一个静态类型语言,其类型系统在编译时便确定了变量和表达式的类型,但Java也提供了一些机制,使得开发者能够在一定程度上享受到动态类型语言的灵活性。这些特性包括反射(Reflection)、泛型(Generics)、接口(Interfaces)和动态代理(Dynam
Cx330_zhahui
编程小白的成长之路
展开
-
day15-枚举&单元测试&注解&xml
其实我们爱之前的学习中已经见过很多很多次注解了~,举个栗子!@Override概述对我们的程序进行标注和解释。作用主要作用是对我们的程序进行标注和解释。或者对类、方法或者属性进行约束。或者不改变程序本身的情况下 增强功能。注解和注释的区别12注释: 给程序员看的 // /**/注解: 给编译器看的 @xxx使用注解进行配置配置的优势代码更加简洁,方便。未来主流开发方式!!!典型代表springboot框架!演示略。格式。原创 2024-05-13 11:56:32 · 845 阅读 · 0 评论 -
day14-类加载器和反射机制
我们在idea中 通过ctrl+p 可以查看一个方法对应的形参 那这个功能是如何实现的?其实就是通过反射来完成的。反射就是从类里面拿东西。那现在有一个问题 为什么不用io流来读取呢?答:io流是从上下文往下 依次读取 当我们读取到 构造方法和成员方法的时候 并不好区分;并且 成员变量和局部变量也不好区分;如下图 我们利用反射 可以获取到类中的每一个信息。是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;原创 2024-05-13 11:56:10 · 987 阅读 · 0 评论 -
day13-多线程&网络编程
当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。线程对象在不同的时期有不同的状态。那么Java中的线程存在哪几种状态呢?Java中的线程。/* 新建 */NEW ,/* 可运行状态 */RUNNABLE ,/* 阻塞状态 */BLOCKED ,/* 无限等待状态 */WAITING ,/* 计时等待 *//* 终止 */TERMINATED;// 获取当前线程的状态通过源码我们可以看到Java中的线程存在6种状态,每种线程状态的含义如下。原创 2024-05-13 11:54:01 · 944 阅读 · 0 评论 -
day12-多线程
创建一个核心线程数2,最大线程数5,临时线程空闲2秒,队列10,默认创建线程,拒绝策略抛出异常的线程池。2,//核心线程数5,//最大线程数2,//临时线程空闲时间TimeUnit.SECONDS,//时间单位new ArrayBlockingQueue(10),//队列Executors.defaultThreadFactory(),//创建线程方式// 线程拒绝策略// 获取线程// 关闭线程池。原创 2024-05-12 16:12:26 · 563 阅读 · 0 评论 -
day11-IO流
I表示intput,是数据从硬盘进内存的过程,称之为读。O表示output,是数据从内存到硬盘的过程。称之为写。按照数据的流向输入流:读数据输出流:写数据按照数据类型来分字节流字节输入流字节输出流字符流字符输入流字符输出流IO流的使用场景如果操作的是纯文本文件(可以用记事本打开),优先使用字符流如果操作的是图片、视频、音频等二进制文件,优先使用字节流如果不确定文件类型,优先使用字节流.字节流是万能的流对象操作流分为两类:对象操作输入流和对象操作输出流。原创 2024-05-12 15:14:17 · 805 阅读 · 0 评论 -
day11-Stream&File
1.Stream流的作用结合了Lambda表达式,简化集合、数组的操作2.stream的使用步骤a.获取Stream流对象b.使用中间方法处理数据c. 使用终结方法处理数据3.如何获取Stream流对象a.单列集合: Collection中的默认方法streamb.双列集合:不能直接获取c. 数组: Arrays工具类型中的静态方法streamd.一堆零散的数据: stream接口中的静态方法of4.常见方法。原创 2024-05-12 15:05:27 · 706 阅读 · 0 评论 -
day10-Set集合
Set集合特点1.可以去除重复2.存取顺序不一致3.没有带索引的方法,所以不能使用普通fori循环遍历,也不能通过索引来获取,删除Set集合里面的元素Set集合练习存储字符串并遍历HashSet集合特点1.底层数据结构是哈希表2.存取无序3.无索引 所以不能使用普通for循环遍历4.不能存在重复值HashSet集合练习存储字符串并遍历扩展:什么是哈希表?什么是哈希表?哈希表是一种以键值key存储数据value的结构,以key作为标识值存储value值;原创 2024-05-12 14:58:20 · 935 阅读 · 0 评论 -
day10-Map集合
HashMap中数据存储的结构是数组+链表/红黑树Interface Map K:键的数据类型;V:值的数据类型键不能重复,值可以重复键和值是一一对应的,每一个键只能找到自己对应的值(键+值) 这个整体 我们称之为“键值对”或者“键值对对象”,在Java中叫做“Entry对象”。举例:学生的学号和姓名itgaohe001 小智itgaohe002 小美itgaohe003 大胖创建Map集合的对象1.多态的方式2.具体的实现类HashMap。原创 2024-05-12 14:56:22 · 717 阅读 · 0 评论 -
day10-集合
集合与数组类似,也是一种容器,用于装数据。数组定义完成并启动后,类型确定、长度固定。问题:在个数不能确定,且要进行增删数据操作的时候,数组是不太合适的。1、数组和集合的元素存储的个数问题。数组定义后类型确定,长度固定集合类型可以不固定,大小是可变的。2、数组和集合存储元素的类型问题。数组可以存储基本类型和引用类型的数据。集合只能存储引用数据类型的数据。3、数组和集合适合的场景数组适合做数据个数和类型确定的场景。集合适合做数据个数不确定,且要做增删元素的场景。ArrayList简单介绍。原创 2024-05-12 14:51:21 · 382 阅读 · 0 评论 -
day09-常用API&异常
自定义异常概述当Java中提供的异常不能满足我们的需求时,我们可以自定义异常实现步骤定义异常类写继承关系提供空参构造提供带参构造代码实现异常类/*** 自定义异常*///1. 继承RuntimeException// 2. 重写构造器学生类return age;}else{//如果Java中提供的异常不能满足我们的需求,我们可以使用自定义的异常throw new AgeOutOfBoundsException("年龄超出了范围");@Override。原创 2024-05-12 14:03:28 · 546 阅读 · 0 评论 -
day08-面向对象高级
内部类就是在一个类中定义一个类。举例:在一个类A的内部定义一个类B,类B就被称为内部类public class 类名{ 修饰符 class 类名{ }}Lambda表达式是JDK 8开始后的一种新语法形式。作用:简化匿名内部类的代码写法。Lambda表达式的格式(匿名内部类被重写方法的形参列表) -> { 被重写方法的方法体代码。注:-> 是语法形式,无实际含义Lambda表达式的简化格式()->{}注意:Lambda表达式只能简化函数式接口的匿名内部类的写法形式每个类都可以将 Object 作为父类。原创 2024-05-12 13:49:09 · 939 阅读 · 0 评论 -
day06-07面向对象(高级)
继承是面向对象三大特征之一。(封装,继承,多态)可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。在Math源码中 有个值这个值不能改变final关键字是最终的意思,可以修饰成员方法,成员变量,类final修饰的特点修饰方法:表明该方法是最终方法,不能被重写修饰变量:表明该变量是常量,不能再次被赋值修饰类:表明该类是最终类,不能被继承举例: dog类和cat类都会吃 能不能把吃这个方法提取到父类animal中?什么是抽象类?一种特殊的父类 里面可以写抽象方法什么是。原创 2024-05-12 13:42:18 · 697 阅读 · 0 评论 -
day05-面向对象内存原理和数组
1.new 对象会创建堆内存2.声明变量 只创建栈内存3.多个变量可以指向一个对象4.局部变量存在栈内存,用完就消失,作用范围仅限方法或者局部{}范围5.成员变量会存在堆内存,随着对象消失才消失,作用范围类范围是面向对象三大特征之一(封装,继承,多态是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的eg:相当于把水放在一个水杯中,只能通过水杯出水口喝水。外界是无法拿到水,只能通过一个公共的出口取水。构造方法是一种特殊的方法作用:创建对象。原创 2024-05-12 13:07:45 · 918 阅读 · 0 评论 -
day04-面向对象基础&类和对象&方法
面相:找、拿对象:能干活的东西面相对象:拿东西解决对应的问题面向对象是一种编程思想,通过这种思想可以吧生活中的复杂事情变的简单化,从原来的执行者变成指挥者面向对象就是把构成问题的事物分解成一个个对象,建立对象不是为了实现一个步骤,而是为了描述某个事物在解决问题中的行为面向对象的优点:可扩展性非常高,维护成本低。缺点:新手上手难。类(class):定义对象的设计图纸public class 类名{}// 根据图纸创建类有两个部分 属性和行为 —>成员变量和成员方法。创建对象。原创 2024-05-12 13:03:21 · 922 阅读 · 0 评论 -
day04-常用API
API (Application Programming Interface) :应用程序编程接口编写一个机器人程序去控制机器人踢足球,程序需要向机器人发出向前跑、向后跑、射门、抢球等各种命令。机器人厂商就会提供一些用于控制机器人的类,这些类中定义好了操作机器人各种动作的方法。其实,这些类就是机器人厂商提供给开发者的应用程序编程接口,而这些类我们称之为:APIJava API :指的就是 JDK 中提供的各种功能的 Java类。这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,原创 2024-05-12 12:51:42 · 386 阅读 · 0 评论 -
day03-循环案例题
这三种循环可以做相同的事情,当然它们也有小的区别,至于它们的应用及区别,我们后面会详细讲解。由于循环语句的区别,只是大家需要理解的知识点,故这里不需要练习,我们在后面的使用中,在慢慢体会即可。需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,还提到了这里的几个部分,分别是定义变量,条件判断,控制变量的变化,展示手机信息(可能被多次执行)那什么是“回文数”呢?代码演示后,通过Debug查看了一下程序的执行流程,让我们更清晰for循环的执行流程。原创 2024-05-12 12:47:21 · 638 阅读 · 0 评论 -
day02-运算符和流程控制语句
隐式转换把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。强制转换把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。格式:数据类型 变量名 = (目标数据类型)(数值或者变量)如果值为false,表达式2的值就是运算结果。如果值为true,表达式1的值就是运算结果。拿字符在计算机底层对应的数值来进行计算的。当“+”操作中出现字符串时,这个“+”是。拿字符在计算机底层对应的数值来进行计算的。‘A’ 65 A-Z是连续的。‘a’ 97 a-z是连续的。=>隐式数据类型转化。原创 2024-05-12 12:34:54 · 944 阅读 · 0 评论 -
day01-初识Java
1.JDK全称Java Development Kit 中文意思是Java 开发工具包2.JDK是sun公司开发的3.JDK包括 jre (Java Runtime Environment) Java 运行环境,一堆Java工具和Java基础的类库。原创 2024-05-12 12:24:30 · 936 阅读 · 0 评论