![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java学习历程
文章平均质量分 56
lspshun
这个作者很懒,什么都没留下…
展开
-
抽象类定义?为什么要使用抽象类?
为什么要使用抽象类? 有什么好处?答案:1 现实中一些父类中的方法没必要写 各个子类中的方法会有所不同 所以没必要在父类中写2 看被人代码时候会注意这是抽象方法 会有个提示作用3 当看到一个类是抽象的,要关心他的抽象方法, 因为他的子类一定会重写他,然后去找抽象类的引用,,会有多态性的体现4 面向对象复杂但是是为了方便解决问题 5 含有抽象方法的类必须定义为抽象类...原创 2018-07-16 20:18:15 · 10519 阅读 · 1 评论 -
Java 多线程(单例设计模式)
单例设计模式:保证类在内存中只有一个对象怎么保证呢?1.使用private创建 不让其它类创建本类的对象2.在本类中定义一个本类的对象 Singleton3.提供公共的访问方法 public static Singleton getInstance(){return s}单例写法有两种:(1)饿汉式 开发用这种方式。 //饿汉式 ...原创 2018-07-21 21:26:19 · 1111 阅读 · 0 评论 -
遍历Map的几种方法
public class Test { public static void main(String[] args) { Map<Integer, Integer> map = new HashMap<>(); map.put(1, 2); map.put(2, 1); map.put(3, 3);// //1.遍历键值 Set<Entry...原创 2018-07-26 19:31:04 · 394 阅读 · 0 评论 -
Java基础知识总结
一、基础知识: 1、JVM、JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。 java语言是跨平台,jvm不是跨平台的。 JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库。 JDK(Java Development Kit):java的开发工具,包括jre+开发...原创 2018-07-15 18:43:29 · 221 阅读 · 0 评论 -
Java 多线程编程
1 Java给多线程提供了支持,一条线程指的是进程中一个单一顺序的控制流,一个进程可以并发多个线程,每个线程执行不同的任务2.多线程使用了更小的开销, 充分利用了cpu3.进程包括由操作系统分配的内存空间 ,包含一个或者多个线程,线程不能独立的存在,是进程的一部分 上图为线程的生命周期新建状态使用 new关键字和Thread类及其子类就绪状态:调用了start()方法之后的...原创 2018-07-20 20:10:01 · 561 阅读 · 0 评论 -
Java中构造方法的执行顺序
先执行 内部静态对象的构造方法 如果有多个按定义的先后顺序执行,静态对象在构造的时候也是先执行其内部的静态对象再调用父类的构造方法,如果父类还有父类的话,从最开始的基类进行调用,如果没有 编译器会调用自己默认的父类构造方法super();但是如果调用父类自定义的构造方法时候,要在子类的构造方法中明确指定按照生命顺序将成员变量引用对象变量初始化最后再调用自身的构造方法class Animal{ ...原创 2018-07-14 20:29:24 · 634 阅读 · 0 评论 -
构造方法和实例方法的区别
主要是三个方面的区别修饰符 返回值 命名1、和实例方法一样,构造器可以有任何访问的修饰符,public、private、protected或者没有修饰符 ,都可以对构造方法进行修饰。不同于实例方法的是构造方法不能有任何非访问性质的修饰符修饰,例如static、final、synchronized、abstract等都不能修饰构造方法。解释:构造方法用于初始化一个实例对象,所以static修饰是...原创 2018-07-14 20:17:01 · 8477 阅读 · 2 评论 -
Java String 类 两种实例化区别 不可变性
String 类表示的是字符串, 但是属于一个类,虽然可以像基本数据类型一样使用但是不是基本的数据类型存在两种实例化方法 String = "hello" string = new string{"hello"}package String;// string具有不可变性// string 两种实例化方法区别// string 直接赋值 不采用new的方法因为容...原创 2018-07-14 15:33:32 · 187 阅读 · 0 评论 -
Leetcode:移动0
问题描述:给定一个数组 nums, 编写一个函数将所有 0 移动到它的末尾,同时保持非零元素的相对顺序。例如, 定义 nums = [0, 1, 0, 3, 12],调用函数之后, nums 应为 [1, 3, 12, 0, 0]。注意事项:必须在原数组上操作,不要为一个新数组分配额外空间。尽量减少操作总数。算法基本思想:1.外层设置循环从后往前寻找0元素。2.找到0元素,就将其值赋给临时变量te...原创 2018-07-13 19:50:25 · 186 阅读 · 0 评论 -
Java中什么时候用static修饰方法?有什么好处或者坏处?
当一个变量需要初始化加载时候,或者是经常被调用的时候可以加上static用static 修饰的方法可以直接被调用, 不用static修饰的需要先实例化一个对象后才可以被调用比如 person这个类里面有一个方法public static add(){}那么可以直接用person类调用 person.add();当然也可以用下面的方法先出一个对象在调用也是可以如果这个方法前面没有static 比如 ...原创 2018-07-13 19:00:34 · 16503 阅读 · 6 评论 -
Java 堆和栈的区别
栈和堆的特点栈:函数中定义的基本类型变量,对象的引用变量都在函数的栈内存中分配。栈内存特点,数数据一执行完毕,变量会立即释放,节约内存空间。栈内存中的数据,没有默认初始化值,需要手动设置。堆:堆内存用来存放new创建的对象和数组。堆内存中所有的实体都有内存地址值。堆内存中的实体是用来封装数据的,这些数据都有默认初始化值。堆内存中的实体不再被指向时,JVM启动垃圾回收机制,自动清除,这也是JAVA优...原创 2018-07-13 17:33:41 · 152 阅读 · 0 评论 -
Java 对象池机制
1.为什么要创建对象池频繁创建删除大量对象时候,对象的删除和创建造成的开销很大,为了提高性能,需要实现一个对象池作为cache,使用对象时从池中提取,用完之后放回池中,减少创建对象的开销,对象池服务可以减少从头创建每个对象的系统开销。在激活对象时,它从池中提取。在停用对象时,它放回池中,等待下一个请求。对象池大多是需要支持多线程访问的,因此需要考虑线程安全问题。 ...原创 2018-07-18 20:37:05 · 285 阅读 · 0 评论 -
Java 中 tostring () 方法快速获取对象字符串的信息
如果类定义了tostring()方法 就能在测试时 echo打印对象体,对象就会自动调用它所属类定义的toString方法,格式化输出这个对象所包含的数据Java中输出一个类的对象的时候,会调用这个Object类的toString()方法。自己写的类没有覆盖这个方法的话就是继承Object类的这个方法,Object中toString()方法的实现是这样的:getClass().getName...原创 2018-07-17 21:32:55 · 2680 阅读 · 0 评论 -
Java String 字符串常量池和 jvm 运行时数据区的概念
什么是字符串常量池JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这段内存被成为字符串常量池或者字符串字面量池 工作原理当代码中出现字面量形式创建字符串对象时,JVM首先会对这个字面量进行检查,如果字符串常量池中存在相同内容的字符串对象的引用,则将这个引用返回,否则新的字符串对象被创建,然后将这个引用放入字符串常量池,并返回该引用。 实现前提字符串常量池实现...原创 2018-07-17 19:57:15 · 229 阅读 · 0 评论 -
Java设计模式 工厂设计模式
类与类之间是存在关系的 依赖关系造成耦合度很高 若想要实现降低耦合的方式可以使用工厂设计模式简单工厂实际不能算作一种设计模式 它引入了创建者的概念 将实例化的代码从应用代码中抽离 在创建者类的静态方法中只处理创建对象的细节 后续创建的实例如需改变 只需改造创建者类即可,...原创 2018-07-17 19:22:55 · 108 阅读 · 0 评论 -
抽象类和接口的区别
No 区别 抽象类 接口 1 定义 Abstract interface 2 组成 普通方法 抽象方法 构造方法 普通属性 抽象方法 全局常量 默认方法...原创 2018-07-17 19:14:08 · 153 阅读 · 0 评论 -
Java中的接口回调 向上转型 向下转型
接口回调 :可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调interface People { void peopleList(); } class Student implements Pe...原创 2018-07-16 20:42:40 · 3849 阅读 · 0 评论 -
Hadoop启动报Error: JAVA_HOME is not set and could not be found解决办法
Hadoop安装完后,启动时报Error: JAVA_HOME is not set and could not be found.解决办法: 修改/etc/hadoop/hadoop-env.sh中设JAVA_HOME。 应当使用绝对路径。 export JAVA_HOME=$JAVA_HOME //错误,不能这...原创 2018-08-07 20:20:29 · 8871 阅读 · 3 评论