Java学习
yangyong0717
这个作者很懒,什么都没留下…
展开
-
<2> UML类图符号以及各种关系
UML类图符号 各种关系说明以及举例UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;类属关转载 2016-11-09 22:09:33 · 363 阅读 · 0 评论 -
Java接口的名称冲突问题
对于方法重载的区分,主要通过下面三种方式:1. 参数个数2. 参数类型3. 参数顺序(较少使用,维护困难)至于方法的其他部分,如方法返回值类型、修饰符等,与方法重载则没有任何关系。、Java编程时,假设存在两个接口,但接口中存在相同名称的方法,但是其仅返回值不同。如下:interface interfac1{void method();}interfac原创 2017-11-01 17:25:30 · 3068 阅读 · 0 评论 -
Java的接口中是否可以使用静态方法
接口是极度抽象化的类,接口的所有方法都是抽象的,并没有具体的实现。而抽象方法是不能使用static进行修饰,有static的方法是不能override的,所以这样定义接口才有意义。但接口中的变量也都是static final类型的。从另外一个方面理解,静态的变量和方法在内存种分配了空间, 而接口只是类的表现形式,是没有分配空间的。但是需要注意的是Java8引入了一种新特性,为了使接口具有原创 2017-11-02 14:58:42 · 13443 阅读 · 0 评论 -
Eclipse关于创建子包,总是子包与父包是并列的关系?
使用Eclipse建立子包的时候,总是出现子包与父包出现在同一个级别中,按照建立子包的方法,重复操作了两次,发现相同的问题,最后发现一个比较小的问题,所以导致了建立子包没有出现预期的效果。假设我在包typeinfo下面创建了子包toys,创建完成后,总是出现的效果如下:想要出现的效果如下:通过项目文件查看,虽然两种呈现效果,其最终建立的子包位置都是一样的。但是如果想为了原创 2017-11-13 19:01:36 · 15066 阅读 · 7 评论 -
Java反射机制理解
Java中的反射提供了一种运行期获取对象元信息的手段。即正常方法是通过一个类创建对象,反射方法就是通过一个对象找到一个类的信息。Java的反射机制的实现要借助于4个类:class,Constructor,Field,Method;其中class代表的时类对 象,Constructor-类的构造器对象,Field-类的属性对象,Method-类的方法对象。通过这四个对象原创 2017-11-15 19:04:13 · 355 阅读 · 0 评论 -
Eclipse IDE中设置JVM启动参数
关于《深入理解Java虚拟机》里面测试OutOfMemoryError异常的部分,需要对虚拟机的启动参数进行设置,下面是一些设置的步骤:1. 右键选择项目,在弹出的菜单进行选择2. 在弹出的Debug Configurations面板,左侧的type filter text下面选择Java Application,找到自己的项目,例如我的项目HeapOOM.3. 在Debug原创 2017-12-08 14:27:11 · 5777 阅读 · 0 评论 -
Eclipse无法导入某些包的解决方案
今天在使用sun包的时候发现无法导入,在rt.jar压缩包下面明明看到sun的存在。使用时总是提示Access restriction错误提示,后来发现在eclipse中默认对sun包没有访问权限,如果想进行访问必须对环境进行一些修改,下面是具体的方法(以工程名MyExerciseProject为例,导入sun包)。1. 在工程名(注意不是文件名)上右键点击Properties,弹出Prope原创 2017-12-09 15:00:17 · 19144 阅读 · 1 评论 -
JVM堆内存中垃圾回收机制的原理
原文地址:http://ifeve.com/jvm-yong-generation/一、JVM垃圾回收机制具有以下的特点:1、 垃圾回收机制只负责回收堆内存,不会回收任何物理资源;2、 程序无法精确控制垃圾回收的进行,会在合适的时候进行;3、 在垃圾回收机制回收的任何对象之前,总会先调用它的finalize()方法。下面具体讲解一下堆内存的年轻代,如何进行垃圾回收的:转载 2017-12-13 09:51:51 · 985 阅读 · 0 评论 -
Java为什么匿名内部类参数引用需要用final进行修饰?
事实上,除了匿名内部类内部,方法和作用域内的内部类内部使用的外部变量也必须是 final 的。原因大致总结一下:简单解释就是:方法中的局部变量的生命周期很短,方法结束后变量就要被销毁,加上final是为了延长变量的生命周期。进一步解释: 内部类通常都含有回调,引用那个匿名内部类的函数执行完了就没了,所以内部类中引用外面的局部变量需要是final的,这样在回调的时候才能找到原创 2017-11-26 10:32:41 · 3790 阅读 · 1 评论 -
关于JAVA_HOME路径修改之后,JDK的版本依然不更改的问题
今天重新配置Java的时候出现了一点问题,下面主要讲一下自己的解决方案:原创 2017-12-31 18:29:12 · 9000 阅读 · 3 评论 -
为什么数组没有实现Iterable接口,但可以使用foreach语句遍历?
在Java中,对于数组为什么能够使用foreach语句一直感觉很困惑。对于能够使用foreach语句进行遍历的对象,只有两种情况,其中一种是遍历对象必须实现Iterable接口,实现ierator()方法,这是对象使用foreach语句的前提。另外一种情况就是特殊对象数组。那么对于数组可以使用foreach该如何去理解呢?首先需要说明的是,实现了java.lang.Iterable接口的对原创 2018-01-21 16:30:06 · 2628 阅读 · 2 评论 -
Java中关于子类覆盖父类的抛出异常问题
Java中子类覆盖父类方法抛出异常不能比父类多,这个表述不够准确。准确一点的描述为:子类抛出的异常类型不能比父类抛出的异常类型更宽泛。假设父类抛出异常ParentException,另外有两个子类继承自ParentException分别为ChildException1, ChildException2, 那么 子类可以同时抛出异常ChildException1,ChildException2.原创 2017-11-09 22:04:45 · 6553 阅读 · 0 评论 -
Java如何将处理完异常之后的程序能够从抛出异常的地点向下执行?
因为Java中的异常处理理论,支持的是终止模型,在这种模型中,抛出异常之后,程序无法返回到异常发生的地方向下继续执行。但是,如果我们现在想要Java实现类似恢复模型的行为,希望异常在处理之后继续往下进行执行,那么有什么解决的办法吗?思路:把try块放在while循环里,这样就能不断的进入try块,直到获得满意的结果结束。下来看下面的程序:package exceptions;cla原创 2017-11-09 20:09:12 · 4243 阅读 · 0 评论 -
Java中throws,throw抛出异常问题
Java中异常的分类,主要分为两大类型1. 系统自动抛出的异常所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行。2. 语句抛出的异常用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常。那么throws和thr原创 2017-11-08 15:35:39 · 3382 阅读 · 0 评论 -
<1>JAVA对异常的捕获机制
前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理? finally 体遇到 return 怎么办?finally 体里有 System.exit() 方法怎么处理?当 catch 和 finally 体里同时遇上 return 怎么办?相信你在处理异常的时候不是每次都把它 throws 掉就完事了,很多时候异常是需要我们自己来转载 2016-10-23 20:24:02 · 287 阅读 · 0 评论 -
关于Eclipse新建不同选项的作用
对于Eclipse软件,从File选项进行New不同类型选项时,可以进行很多不同的选择,如下原创 2017-10-27 12:45:59 · 1115 阅读 · 0 评论 -
Java解释器的运行过程解释
首先介绍一下Java解释器的概念,Java解释器:解释器是Java虚拟机非常重要的一部分,它的工作就是把字节码转化为机器码并在特定的平台进行运行。简单一点,java的解释器只是一个基于虚拟机JVM平台的程序 ,即jdk或jre目录下bin目录中的java.exe文件。 Java解释器相当于运行Java字节码的“CPU”,但该“CPU”不是通过硬件实现的,而是用软件实现的。步骤1:可以通原创 2017-10-28 11:24:14 · 12205 阅读 · 1 评论 -
《Java编程思想》中为什么可以直接用方法名调用静态方法?
《Thinking in Java》一书中,有很多地方作者直接使用静态方法名,直接调用其它包里面的方法,通常情况下我们访问一个静态方法,需要通过 类名.方法名 的途径。但是这里情况有所不同。在程序的包导入部分声明为:import static PackageName.Class.*; 表示的是静态导入PackageName.Class类的所有静态方法(注意只是静态方法),然后就可以直接调用Clas原创 2017-10-28 17:26:27 · 671 阅读 · 0 评论 -
Java的外部类为什么不能使用private、protected进行修饰
对于这个问题,一直没有仔细思考,今天整理一下:对于顶级类(外部类)来说,只有两种修饰符:public和默认(default)。因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置。因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:public和默认(default)。如果类使用了private修饰符,说明是个内部类。内部类的上一级是外部类,那原创 2017-10-28 21:49:08 · 16667 阅读 · 8 评论 -
Java为什么基本数据类型不需要进行创建对象?
Java是一门面向对象的语言,即一切皆是对象!那么为何数据类型中还分为:基本类型和对象? Java中有8种基本数据类型boolean、byte、short、char、int、flaot、long、double,基本数据类型作为Java语言的一部分,但基本数据类型不是对象,基本数据类型放在堆栈中,对象放在堆中。堆的读写速度远不及栈,如果使用基本数据类型相当于在栈上进行操作,对变量的原创 2017-10-29 13:58:59 · 3744 阅读 · 0 评论 -
Java中基类子对象的构建过程从“基类向外”扩散的如何理解?
《Java编程思想》复用类一章,提出基类的子对象的构建过程是从基类“向外”进行扩散的。下面通过实例进行讲解,首先看下面的代码:import static net.mindview.util.Print.*; //《java编程思想》提供的类库/** * @author Administrator * */public class Cat extends Animal { pu原创 2017-10-29 17:12:03 · 808 阅读 · 0 评论 -
Java 关于含有继承类的成员初始化过程讲解
参考资料《Java 编程思想》,关于含有基类的导出类,其成员的初始化过程是一个容易让人困惑的地方,下面通过具体的实例进行讲解,代码取自《Java 编程思想》,代码如下:import static net.mindview.util.Print.*;/** * All rights Reserved, Designed By www.tydic.com * * @project: M原创 2017-10-30 18:10:34 · 362 阅读 · 0 评论 -
关于Tomcat服务器无法打开tomcat7w.exe的解决办法
今天配置Tomcat服务器的时候遇到了一点问题,提供借鉴。关于配置教程网上很多自己参考,如果遇到问题可以查看下面这个链接基本说的比较详细:https://zhidao.baidu.com/question/874079261073744612.html主要是配置完之后打开tomcat7w.exe仍然打不开,当时以为没有配置好,尝试了很多办法,依然打不开。但是后来发现虽然这个文件打不开但是在cm原创 2017-12-29 22:10:59 · 9564 阅读 · 0 评论