- 博客(15)
- 收藏
- 关注
原创 Java中的多态的介绍
比如强制类型转换,转换分为向上转换和向下转换。向上转换就是将子类转换为父类,这中转换风险较小,因为父类可以兼容子类。那就是,在遇到需要更改代码的时候,可以提高效率。并且在定义方法时,对象可以接收父类的其他子类对象,提高了可延展性。关于成员方法,编译时先访问左边的成员方法,在访问右边的。多态是Java中非常重要的一个概念,那么多态是什么?上面就是 一个简单的多态。首先,多态可以理解为同一个对象,在不同的时候,有不同的状态。关于成员变量,编译时和运行时都先访问左边的。缺点就是,对象不能使用子类特有的方法。
2024-04-14 20:43:37
215
1
原创 Java中异常类的解析
首先,异常类也就是Exception类的父类是Throwable类,子类有Runtime Ecxeption类,这个类的子类属于运行时异常,其他异常类属于编译时异常。事实上,Java中报异常的机制就是创建一个异常类对象,通过Throw将其抛出,从而显示在屏幕上。于是sun公司的Java开发者设置一些异常类,在程序遇到问题时报错,提高写代码的效率。在Java中,会遇到各种各样的异常。主要有两种方法,第一种是通过Throws将异常抛给上一级解决,第二种是通过try...catch....等解决。
2024-04-11 19:04:05
273
原创 Java中的object类中toString的详解
哈希值是一种经过哈希算法得出的特定值,用来记录对象的地址.但与真正物理意义上的地址不同,哈希值只是逻辑上的地址.比如在c语言上每个变量的地址是固定的,但在Java中,哈希值可以被更改,使其相同,因为哈希值是jvm通过算法构造的地址.object类是所有类的父类,储存在java.lang包中.在类没有明确父类的时候,会默认继承object类.首先,可以同意一些常用的方法名,比如toString,wait等方法,使不同对象可以同意,互转.最常见的有两种,一种在编译的时间默认继承,何有就是由虚拟机添加,
2024-04-09 20:08:24
119
原创 JAVA中栈的组成部分
当方法A入栈后,帧数据区中的动态链接会持有对当前方法所属类的常量池的引用,当A中调用了方法B(符号引用),就可以通过常量池查找到具体的直接引用(方法地址)。首先是Java栈中的局部变量表,局部变量表包括函数的参数和局部变量,在函数范围内,这些书存在,函数运行完之后,gc堆会将变量删除,减轻内存负担。每个栈帧都包含一个对当前方法类型的运行时常量池的引用,以支持方法代码的动态链接。(是对常量池的引用)栈的任务执行顺序是先进后出,后进先出。栈的基本单位是栈帧,栈帧由局部变量表,操作数栈,动态链接和返回地址组成。
2024-04-02 20:12:09
150
1
原创 Java继承中的abs
但是,在一些物品的属性我们难以用具体的语言描述,只能用抽象的特征概括,而用抽象的特征也可以帮助我们对代码进行重写。我们首先创建一个动物类,其中类和方法都用abstract修饰,且没有方法体。1,抽象类和抽象方法必须用abstract修饰,且抽象方法必须在抽象类中;在Java的学习过程中,我们常常需要用到继承,可以帮助我们减少代码量。3,抽象方法不能被new创建,因为抽象方法没有方法体;最后我们运行程序,可得结果为:你好。2,抽象方法只有方法头,没有方法体;
2024-03-28 19:47:42
142
1
原创 java并发编程中的ExecutorService接口的shutdown方法和shutdownNow方法
而shutdownNow 方法中,正在执行的方法会被暂停,还未执行的方法会被退回,暂停任务的方法是通过Thread interrupt实现的。但这种方法的作用有限,如果线程中没有sleep 、wait、Condition、定时锁等应用, interrupt()方法是无法中断当前的线程的。上面的代码就是创建了一个容量为10的线程池,创建了二十个任务,最后在结束线程池。shutdownNow方法作用类似,不同的是该方法会停止正在运行的方法。shutdown方法用于停止线程池中的任务,但不会停止正在运行的任务;
2024-03-26 20:13:08
244
原创 Java并发编程中的ExceutorService接口的submit方法
Java的线程既是工作单元,也是执行机制。从JDK 5开始,把工作单元与执行机制分离开来。RunnableCallable,而Executor。Executor框架包括核心的executor接口和executorService接口。executorService接口包括ThreadPoolExecutor和ScheduledThreadPoolExecutor两个关键类。
2024-03-25 20:31:54
679
1
原创 Java中的thread类
每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。在一个线程中,start方法只能调用一次,如出现多次调用,会出现调用两次的话,会抛出 IllegalThreadStateException 这个异常。在Java的多线程中,thread类是一个重要的工具,我们要更理解thread类的用法,再能帮助我们深入了解Java并发。sleep方法可以让线程休眠,但与wait方法不同的是,sleep方法不会释放对象锁,释放cpu资源。
2024-03-21 20:03:13
166
1
原创 Java并发中thread类的几种方法
首先一句话描述Runnable:Runnalbe 只是一个接口,提供了唯一一个方法 run(),可用于多线程中任务的运行定义。在多线程的任务定义中,我们不能全都使用Thread对任务的内容进行定义,因为这样的话任务就与Thread类有了耦合,不符合类的设计理念。所以,为了更纯粹地表示任务,Java提供了这个接口仅表示任务本身,不包括多线程运行的任何信息。这样,我们可以将任务(即实现了Runnable的类)交给不同的多线程处理类来执行,如Thread,线程池等。我们可以用extends来连接。
2024-03-20 19:35:58
231
1
原创 Java中this用法的一点认识
的时候就会分配内存,可以通过类名直接去访问,非静态成员(非静态变量和非静态方法)属于类的对象,所以只有在类的对象创建(实例化)的时候才会分配内存,然后通过类的对象去访问。在一个类的静态成员中去访问非静态成员之所以会出错是因为在类的非静态成员不存在的时候静态成员就已经存在了,访问一个内存中不存在的东西当然会出错。这是因为Java的内存机制,当new一个对象的时候,并不是在堆区直接开辟一片空间,而是类中的静态方法先加载到方法区,然后再新建一个对象。如果我们想要在方法内访问当前对象的属性,便可以使用。
2024-03-19 20:18:19
205
1
原创 Java中的栈帧
描述一个方法调用了其他的方法的时候就是通过常量池中指向方法的符号引用来表示。在方法区里面有一个运行常量池,包含变量和方法,class文件所有的变量和引用作为符号引用,保存在class文件的常量池中。操作数栈是一个先进后出的栈结构,负责储存局部变量,并在方法被调用的时候新建一个帧,操作数栈的大小是提前确定的。操作数栈创建一个新帧的时候,原栈帧会产生一个地址,方法返回地址用栈帧的方式进行保存和回复。栈的取用原则是先存进去的方法最后取出,后取出的犯法先取出。当方法结束时,变量会被回收掉。以4byte为基本单位。
2024-03-18 23:48:46
488
原创 Java编写超市进出货的小系统
于是我在网上搜索mysql,但是我发现MySQL的版本较多,于是我在csdn上查询了相关攻略,选择最适合的版本。我发现我的data文件始终没有被创建,于是我觉得应该是我的my.ini没有创建好。我首先想到了数据库,虽然数据库构造对我来说较难,但我还是准备尝试一下。经过排查,我发现是我没有以管理员模式打开cmd,于是我开始改正。但是,我又遇到了问题,就是我不知道如何修改密码,我决定上网搜索。在遇到代码只能储存一个临时变量时,我开始思考如何储存大量数据。于是,我有了最初的数据库。于是我开始寻找问题。
2024-03-17 20:32:25
302
1
原创 【无标题】Java制作超市进货,售货的小系统
a:设定一个数据库information System,收集货物信息。解决问题后,有个问题我之前没发现,就是我现在只能储存一个物品。,这里报错,还有个;货物的属性包括进货日期,重量,价格,数量;然后在main函数编写函数询问需要的服务。首先,我把系统分为进货系统和售货系统。这个类用来设定物品信息。1思考进货,售货的需求。那如何储存多个物品呢?
2024-03-16 21:39:23
533
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人