
Java学习
Juliussss
这个作者很懒,什么都没留下…
展开
-
关于Scanner的一些问题
1、使用while(sc.hasnext())来读输入的时候,程序会无限读取。需要在while中添加一个判断,如果满足这个条件就使用sc.close()关闭输入流并使用break跳出while循环。2、在使用sc.nextInt()的时候,如果第一个输入的数是0,第二个输入的数是非零数字,比如输入01,系统会将输入当成0。如图所示,输入是01,结束标志是10,系统会将01当成1输出...原创 2019-04-23 14:48:40 · 211 阅读 · 0 评论 -
Java特性
转载自https://www.cnblogs.com/Dream2hc/p/java0002.html一、抽象父类为子类提供一些属性和行为,子类根据业务需求实现具体的行为。抽象类使用abstract进行修饰,子类要实现所有的父类抽象方法否则子类也是抽象类。二、封装把对象的属性和行为(方法)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节;在java中,对于对象的内部属性...转载 2019-06-12 10:22:48 · 146 阅读 · 0 评论 -
lambda表达式
目录1、为什么引入lambda表达式2、lambda表达式形式3、lambda表达式优缺点4、lambda的应用示例1、为什引入lambda表达式: lambda是一个可以传递的代码块,可以在以后执行一次或多次。lambda表达式允许把函数作为一个方法的参数(函数作为参数传递进方法中)2、lambda表达式形式 一般形式为:参数,箭头(->)以及一...原创 2019-06-12 10:16:53 · 698 阅读 · 0 评论 -
Java静态变量和非静态变量
内存分配:静态方法和静态变量创建之后一直使用同一块内存,是连续的。非静态方法会存在于内存的多个地方,是离散的。生命周期:静态变量的生存周期是应用的生存周期。非静态变量的存在周期取决于实例化的类的存在周期。调用方式:静态变量只能是“Class.静态变量”来调用,类的实例不能调用。非静态变量在变量所在的类实例化后才可以通过实例化的类名访问。共享方式:静态变量时全局变量,线程安全。非静态变量...原创 2019-06-11 14:55:47 · 853 阅读 · 0 评论 -
Java线程同步
线程同步:Java中多线程并发控制如果多个线程同时对一个共享变量增删改查,那么会发生冲突,所以要加入同步锁来保证一个变量只能被一个线程锁定,从而保证了变量的唯一性和准确性。同步方法用synchronized关键字修饰方法。当用此关键字修饰方法,内置锁会保护整个方法。如果用synchronized修饰static方法,那么调用这个方法时会锁住整个类。 2.同步代码块用sync...原创 2019-06-10 23:18:26 · 160 阅读 · 0 评论 -
Spring框架的七个模块
组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 Spring 上下文:Spring 上下文是一...转载 2019-06-04 16:04:03 · 1030 阅读 · 0 评论 -
Java8的新特性
Lambda表达式——允许把函数作为一个方法的参数传递到方法中,可以执行一次或者多次。lambda表达式的形式一般为:参数,箭头(->),和一个表达式。 方法引用——方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言结构更紧凑简洁,减少冗余代码。 默认方法——默认方法就是在一个接口里面有了一个实现的方法 新工...原创 2019-06-10 16:19:14 · 187 阅读 · 0 评论 -
Executor框架以及线程池的分类
一、Executor框架Executor是一个接口,提供了一种标准方法将任务的提交过程与执行过程解耦开来。Executor的各种实现类,还提供了对生命周期的支持。Executor基于生产-消费者模式,提交任务的操作相当于生产者,而执行任务的线程相当于消费者。Executor的两级调度模型:在上层,Java多线程程序通常把应用分解为若干个任务,然后使用用户级的调度器(Executor框架)...原创 2019-06-09 21:53:51 · 337 阅读 · 0 评论 -
哈希冲突
问题一、什么是哈希冲突由于哈希算法被计算的数据是无限的,而计算后的结果范围有限,因此总会存在不同的数据经过计算后得到的值相同,这就是哈希冲突。(两个不同的数据计算后的结果一样)问题二、如何解决哈希冲突1、开放地址法(再散列法) 线性探查法 平方探查法 双散列函数探查法2、链地址法(拉链法)3、再哈希法4、创建公共溢出区详细解释:1、开放地...原创 2019-06-09 21:12:41 · 19222 阅读 · 0 评论 -
Java抽象类和抽象方法
首先,为什么需要定义抽象类:如上图所示,Employee和Student拥有相同的属性-姓名。所以可以将getName方法放在位于继承关系较高层次的通用超类中。但是有的Employee和Student共同属性中不方便在Persion中实现,比如要实现一个getDescription方法,需要在Employee和Student中单独实现,这时,Person可以只定义getDescriptio...原创 2019-06-09 17:38:09 · 568 阅读 · 0 评论 -
GC Roots可达性分析以及GC Roots的对象
可达性分析算法的基本思路就是通过一系列称为“GC Roots”的对象作为起点,从这些结点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连(就是从GC Roots到这个对象不可达)时,则证明此对象是不可用的,为可回收对象。图中,右边部分都是不可达的对象,都是可回收对象。在Java语言中,可以作为GC Roots的对象...原创 2019-06-09 16:57:49 · 3220 阅读 · 1 评论 -
依赖注入的三种方式
Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入(Construct注入),setter注入,基于注解的注入(接口注入)。(参考https://blog.youkuaiyun.com/jinchaoh/article/details/80246577)构造方法注入如果只有一个有参数的构造方法并且参数类型与注入的bean的类型匹配,那就会注入到该构造方法中。...原创 2019-06-03 14:33:44 · 38687 阅读 · 3 评论 -
Java中的接口
Java 接口接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。接口无法被实例化,但是可以被...转载 2019-06-09 14:55:25 · 140 阅读 · 0 评论 -
autowired和resource区别
共同点:两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。不同点:1、@Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired;只按照byType注入。@Autowired注解是按照类型(byType)装配依赖对象,默认情况下它要求依...原创 2019-06-03 11:10:01 · 567 阅读 · 0 评论 -
Java中将ArrayList<String>转换成String的方法
import java.util.*;public class test { public static void main(String[] args) { ArrayList<String> lst=new ArrayList<>(); lst.add("1"); lst.add("2"); ...原创 2019-05-30 14:04:18 · 3682 阅读 · 0 评论 -
IDEA(IntelliJ)中使用debug,文章地址
https://mp.weixin.qq.com/s/uRVIbkOz9j_edZA_W4-S-A原创 2019-05-09 13:30:08 · 93 阅读 · 0 评论 -
一些Java方面的疑问
为什么使用接口?答:在一个项目中,有很多功能并不是一个类去实现,而是由很多类去实现,这时就需要一个规范,而接口就是提供了统一的规范。...原创 2019-06-28 10:31:04 · 262 阅读 · 0 评论