java基础
文章平均质量分 63
捻玖
努力努力再努力
展开
-
Arraylist与 LinkedList
是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全;底层数据结构: Arraylist 底层使用的是Object数组;LinkedList 底层使用的是双向循环链表数据结构;原创 2024-05-21 21:49:24 · 690 阅读 · 0 评论 -
String,StringBuffer, StringBuilder
全局字符串常量池class文件常量池运行时常量池。我们现在所说的就是全局字符串常量池,对这个想弄明白的同学可以看这篇Java中几种常量池的区分。jvm为了提升性能和减少内存开销,避免字符的重复创建,其维护了一块特殊的内存空间,即字符串池,当需要使用字符串时,先去字符串池中查看该字符串是否已经存在,如果存在,则可以直接使用,如果不存在,初始化,并将该字符串放入字符串常量池中。字符串常量池的位置也是随着jdk版本的不同而位置不同。在jdk6中,常量池的位置在永久代(方法区)中,此时常量池中存储的是对象。原创 2024-05-04 16:19:36 · 702 阅读 · 0 评论 -
Java面向对象
面向对象:优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。缺点:性能比面向过程低。原创 2024-05-04 15:56:59 · 901 阅读 · 0 评论 -
IOC和AOP
IOC 是一种设计原则,它将控制权从程序代码中转移到外部容器或框架中。传统上,控制权由程序员在代码中硬编码,而使用 IOC,程序员通过配置文件或者其他方式描述组件之间的依赖关系,而不是在代码中直接创建这些依赖关系。这使得系统更加灵活、可扩展和易于维护。常见的 IOC 容器有 Spring Framework 中的 ApplicationContext 或者依赖注入(DI)容器。IOC基本代码案例和一些基础知识可以看一下之前的博客IOC是基于反射实现的,我们将创建对象交给spring来处理。原创 2024-04-24 13:37:56 · 919 阅读 · 0 评论 -
java:抽象类
1.什么是抽象我们将一些相同的信息都提取到一起我们把这个过程叫做----抽象2.抽象类程序员和产品经理他们都要工作但是他们的工作内容不同,也就是说我们只能抽取共性,但是他们的具体实现我们无法干预。----那我们用java代码实现。 //描述雇员。 abstract class Employee{ private String name ; private String id ; private double pay ; Em原创 2022-02-11 12:12:14 · 120 阅读 · 0 评论 -
java---抽象
一:抽象在分析事物时,会发现事物的共性,将共性抽取出。方法功能声明相同,但方法功能主体不同,这时,将方法声明抽取出,那么,此方法就是一个抽象方法。抽象类的特点1.由abstract修饰的类叫做抽象类,也可以修饰抽象方法2.abstract修饰的抽象方法可以不在抽象类当中实现,但一定要在子类当中重写,并实现3.只有抽象类当中才能有抽象方法,普通类当中不能有抽象方法4.抽象类当中不一定全是抽象方法,也可以使用普通方法,普通方法可以不用重写5.抽象类不能被实例化,但是可以使用多态6原创 2022-02-11 16:27:08 · 68 阅读 · 0 评论 -
java---内存指向(一)
一、类与对象的关系1.什么是对象我们来看一下代码:分析一下java的数据调用我们调用cat1的run()方法和cat2的run()方法,执行run()方法,然后在去操作我们的变量进行值得更改,最后我们输出每一个cat1和cat2的age值,我们会发现输出并不一致,那么这就说明了我们在内存当中至少有两个age变量,分别属于cat1和cat2,那么我们也可以以此推出cat3当中有一个age变量。那么我们在上边至少能说明在内存当中分别有一块属于cat1、cat2、cat3管理的有着数据和方原创 2022-02-12 13:47:23 · 356 阅读 · 0 评论 -
java---继承
继承的本质:复用已经存在的方法和域一.概念:继承是java面向对象编程的基石,继承就是子类继承父类的特征和行为,是的子类对象(实例)具有父类的实例和方法,或子类从父类继承方法,使得子类具有父类相同的行为。类似于咱们现实生活中的这种情况:父亲家里有坐姿板凳等物品,儿子可以继承父亲的东西,所以儿子也可以使用自己父亲的东西。public class Person { public void run() { System.out.println("任何人...原创 2022-02-11 15:55:39 · 192 阅读 · 0 评论 -
java---内存指向(二)
五、类的加载顺序先看下列代码,猜看输出结果提示(加载父类-----》子类-----》创建父类对象----》子类对象,有static先执行)public class Test extends Base{ // 扫描(受检异常)-----》加载父类-----》子类-----》创建父类对象----》子类对象 // 子类调用父类的方法 static{ System.out.println("test static"); } publi..原创 2022-02-12 14:39:50 · 303 阅读 · 0 评论 -
java异常体系
1、Error错误:(这种错误无法处理)描述了Java运行时系统的内部错误和资源耗尽错误。一般是指虚拟机(JVM)相关的问题,如系统崩溃,虚拟机出错误等,这种错误无法恢复或不可能捕获,将导致应用程序中断,通常不处理。因为如果出现这样的内部错误,除了通告用户,并尽力使程序安全地终止之外,再也无能为力了。2、Exception异常:Java的异常分为两种,checked Exception(编译时异常也叫非运行时异常)和 RuntimeException(运行时异常)。原创 2022-02-11 10:51:10 · 9661 阅读 · 2 评论 -
对象的访问定位
Java程序会通过栈上的reference数据来操作堆上的具体对象。主流的访问方式主要有使用句柄和直接指针两种。原创 2022-10-08 21:04:25 · 206 阅读 · 0 评论 -
对象的内存布局
象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。原创 2022-10-08 21:02:20 · 103 阅读 · 0 评论 -
jvm运行时数据区域
运行时常量池是方法区的一部分,方法区用于存储已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等数据。本地方法栈(Native Method Stacks)与虚拟机栈所发挥的作用是非常相似的,其区别只是虚拟机。栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用到的本地(Native)堆内存区域的唯一目的就是存放对象实例。方法区和堆,大家共有,像空气和水。计数器就像心脏,每个人共有。原创 2022-10-08 20:57:32 · 215 阅读 · 0 评论 -
java:接口的特征
1.为什么会用到接口有时候必须从几个类当中派生出一个子类,继承他们所有的属性和方法,但是java不支持多重继承于是就有了接口2.接口的特征接口用interface实现 接口中的所有成员都是由public static final修饰的 接口中的所有方法默认都是public abstract修饰的 接口没有构造方法,构造方法用于创建对象(接口没办法new对象),但是可以使用多态 实现接口的类中,必须实现接口中的所有方法,如果不实现接口中所有的方法,那么该类是抽象类 接口和接口之间可以互相原创 2022-02-11 11:40:09 · 381 阅读 · 0 评论 -
7.java三大特征之一:多态
重写重载与重写的区别多态对象的多态引入代码编译时类型和运行时类型Java的引用变量有两个类型,一个是编译时类型,一个是运行时类型,栈中存放的是一些引用和一些变量,而堆内存中存放的是对象。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。假如p的属性修饰符为public 访问属性时得到的是Person类的属性还是Women类的属性,方法调用又是哪个类?答案:会得到Person类的属性,调用Women类的方法。编译时类型。原创 2022-11-17 09:35:10 · 146 阅读 · 0 评论 -
6.java三大特征之一:继承,super与this
super与this①封装将属性和方法书写到类里面的操作就是封装封装可以为属性和方法添加私有权限②继承子类默认继承父类的所有属性和方法子类可以重写父类属性和方法③多态传入不同的对象,产生不同的结果。原创 2022-11-17 09:26:49 · 102 阅读 · 0 评论 -
5.java三大特征之一:封装
①封装将属性和方法书写到类里面的操作就是封装封装可以为属性和方法添加私有权限②继承子类默认继承父类的所有属性和方法子类可以重写父类属性和方法③多态传入不同的对象,产生不同的结果。原创 2022-11-17 09:15:34 · 104 阅读 · 0 评论 -
4.构造器,this,修饰符详解
JAVA中静态的东西都是属于类的,为类服务,构造函数是为了初始化对象,为对象服务。静态方法不允许访问类的非静态成员(包括成员的变量和方法),因此是通过类调用的,没有对象的概念,this->data不能用!主要作用:完成对象的初始化,创造对象时,自动调用构造器初始化对象。(1)静态方法通过“类名.方法名”,也可以通过对象名.方法名。(2) 但是实例方法只能通过对象名.方法名。对象. hashCode,显示“地址”原创 2022-11-16 17:25:29 · 603 阅读 · 0 评论 -
3.重载,作用域
局部变量:一般指成员方法里面的变量,没有默认值。全局变量:也就是属性,作用于整个主体。原创 2022-11-16 17:17:16 · 122 阅读 · 0 评论 -
2.java数组,类
String和8大基本类型的包装类”是不可变类型,即特殊的引用类型,所以每次修改操作都是新创建的对象,栈中的地址不断更换,所以出现了不能修改值的效果,让大家误以为是值传递了。由于栈中存的是地址(该地址指向堆内存中存储位置,即引用),所以传递的是“堆中的地址”的拷贝。由于栈中存的就是“实际值”(java基本类型的值存储在栈中,不在堆中),所以传递的是基本类型的“实际值”的拷贝。引用的地址“找到并修改掉”原来的值,所以达到了引用传递的效果。java中方法参数传递方式是本质上都是“值”传递。原创 2022-11-16 17:06:25 · 325 阅读 · 0 评论 -
1.jdk,数据类型,运算符
在JVM中并没有提供boolean专用的字节码指令,而boolean类型数据在经过编译后在JVM中会通过int类型来表示,此时boolean数据4字节32位,而boolean数组将会被编码成Java虚拟机的byte数组,此时每个boolean数据1字节占8bit.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。的跨平台的实现是通过在不同的操作系统上的不同的jvm差异来实现跨平台的。数据类型是 64 位,16字节。数据类型是单精度、32位,8字节。数据类型是 16 位,4字节。原创 2022-11-16 16:54:29 · 233 阅读 · 0 评论