
Java基础
Soinice
还记得99 年的那个春天,我把握住了机会,赶上了互联网的开头,我就是那只会飞的猪~
展开
-
Java 关键字之abstract用法
本篇文章主要分析abstract修饰符的用法,abstract和接口的比较以及常见的面试题。abstract 简介字面意思抽象,原创 2020-06-09 18:47:13 · 1235 阅读 · 0 评论 -
Java基础之构造方法(函数)何时被调用
看到这个题,你肯定要不就是在面试的路上,要不就是在刚学习的路上,要不就是连题目也没明白;构造方法何时被调用 ( )A.类定义时B.创建对象时C.调用对象方法时D.使用对象的变量时正确答案B答案解析其是应该说是实例化对象时被调用,一个类的创建会默认有一个无参构造方法,当你实例化的时候(new Object())会被调用。构造方法有哪些特点构造方法是类中比较特殊的方法,有如下几个特点:方法名与类名相同; 方法没有返回值; 构造方法可以重载(不限于参数个数以及参数类.原创 2020-05-19 15:53:31 · 12486 阅读 · 2 评论 -
Java多线程面试题整理(实时更新)
目录1) 什么是线程?2) 线程和进程有什么区别?3) 如何在Java中实现线程?4) 用Runnable还是Thread?6) Thread 类中的start() 和 run() 方法有什么区别?7) Java中Runnable和Callable有什么不同?8) Java中CyclicBarrier 和 CountDownLatch有什么不同?9) Java内存模...原创 2019-05-30 14:36:30 · 1268 阅读 · 0 评论 -
Java基础之Map的clear和new的区别
void clear();从此映射中删除所有映射。 此调用返回后,Map将为空。new HashMap<>();使用默认初始容量(16)和默认加载因子(0.75)构造一个空的HashMap。Map<K,V>的clear和new的区别// 将Map放入List看一下效果,下面是代码演示方案一: public static void ma...原创 2019-05-27 15:03:35 · 3982 阅读 · 0 评论 -
Java 多线程 之常见练习题整理
题是从网上搜的,便于整理,长期更新。问题一:如何同时处理多条日志打印现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志,请在程序中增加4个线程去调用parseLog()方法来分头打印这16个日志对象,程序只需要运行4秒即可打印完这些日志对象。原始代码如下:交给四个线程,打印16个日志对象信息,启动四个线程容易,但是怎样将这16个日志对象交给4个线程,这...原创 2019-05-24 21:14:36 · 6890 阅读 · 0 评论 -
数据结构与算法(线性结构):Java面向对象数组的基本使用
本文主要介绍用java数组来理解数据结构中的线性结构,对于数组的深入理解不做过多探讨,毕竟每门语言都有数组,同样数组也是最基础的,最典型的数据结构之一。主要以Java代码形式展示说明。目录Java 数组数组的基本使用数组元素的添加数组元素的删除面向对象的数组总结数组的特殊性数组为什么特殊数组是第一级对象数组的初始化Java 数组数组是最常...原创 2019-04-16 22:53:18 · 590 阅读 · 0 评论 -
数据结构与算法(目录):Java版数据结构与算法目录整理
为了方便大家能够更加快速地找到自己需要参考的那部分,对已经写好的文章做了相应目录,希望能够有所帮助。以后会将 这一系列放到 个人博主专栏,希望支持,如有不足欢迎留言。此专栏所有资源均来自网络或自己整理,如有侵权,请留言。未经许可,请勿转载;概述数据结构与算法(概述):数据结构概述数据结构与算法(概述):算法概述线性结构数据结构与算法(线性结构):Java面向对象数组...原创 2019-04-16 16:47:55 · 657 阅读 · 0 评论 -
Java工具类之StringUtils中isEmpty()、isNotEmpty()、isBlank()、isNotBlank()方法详解
说在前面这里要介绍的是 commons-lang3-3.1.jar包中:org.apache.commons.lang3.StringUtils。org.apache.commons.lang.StringUtils类提供了String的常用操作,最为常用的判空有如下两种:isEmpty(CharSequence cs)和isBlank(CharSequence cs) 。isEm...原创 2018-12-24 00:57:39 · 21224 阅读 · 0 评论 -
Java基础之ArrayList源码分析
ArrayList是Java开发中使用比较频繁的一个类,通过对源码的解读,可以了解ArrayList的内部结构以及实现方法,清楚它的优缺点,以便我们在编程时灵活运用。原创 2019-05-28 16:07:28 · 324 阅读 · 0 评论 -
Java基础之一个 ArrayList 就能让你面试到哭!
一个 ArrayList 就能让你面试到哭!我觉得这句话一点也不夸张。阅读本文让你彻底了解ArrayList 吧!在开始之前,我们先来简单的回顾一下ArrayList 吧!Java基础之ArrayList源码分析ArrayList 中 elementData 为什么使用 transient 修饰? /** * The array buffer into whi...原创 2019-05-28 18:20:31 · 1259 阅读 · 0 评论 -
Java基础之List、Set、Map的区别
Interface Collection<E>里面有什么子类list和set是实现了collection接口的。Interface List<E> 可以允许重复的对象。 可以插入多个null元素。 是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。 常用的实现类有ArrayList、LinkedList...原创 2019-06-11 20:34:54 · 306 阅读 · 0 评论 -
Java基础之equals和==的区别(源码分析)
简单说,==比较的是栈中的内容,即两个对象的地址是否为同一个。equals比较的是堆中内容是否相等,即两个对象的内容是否相同。目录equalsObject.equals()Objects.equals()String.equals()equals()方法HashMap.equals()equals()方法规则equals()方法使用Float.equal...原创 2019-06-18 01:27:21 · 341 阅读 · 0 评论 -
Java 基础之String常见面试题整理
本篇主要整理关于 特殊的封装数据类型String 一些常见的面试题,大多数都是本人亲身经历过,回来总结出来的,用于学习交流,基本比较偏基础。有更好的解决方式,欢迎留言~1)String 是基本数据类型吗?不是。具体可以点击:Java是特殊的包装类数据(String)2)String 是不是可变的?String是final类型的,不可变。具体可以点击:不可变的数据类型...原创 2019-06-30 18:37:53 · 384 阅读 · 0 评论 -
Java基础之String 与 int两者之间如何相互转换?
在某一次面试中,面试官问了我一个问题,他说,String str = “1234”;如何在不使用 JDK自带方法的情况下,转换成 int i = “123”。当时想法思路都有了,但是没写出来......本篇将讲述一下 String 与 int 两者之间是如何相互转换的,推荐用时:2小时。原创 2019-06-30 18:37:29 · 492 阅读 · 0 评论 -
Java基础之System.out.println("打印个七彩颜色字符串吧!")
上代码class Hello{ public static void main(String[] args){ System.out.println("Hello,Akina!"); System.out.println("\033[30;4m" + "Hello,Akina!" + "\033[0m"); System.out.println("\03...原创 2019-07-24 00:09:03 · 15425 阅读 · 8 评论 -
Java语法糖之不了解这 12 个语法糖,别说你会 Java!
本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学会如何使用 Java 语法糖的同时,了解这些语法糖背后的原理。原创 2019-07-17 13:18:36 · 299 阅读 · 0 评论 -
Java 关键字之native关键字的作用
刚开始还想用Native,后来因为他是个关键字,所以该成了小写。所谓关键字的话,java中保留的并不多,native是一个本地关键字,看完这篇文章,就知道它主要用来做什么的了。初次见面有人初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法: public native int hashCode();也可能是: /...原创 2019-08-07 00:09:43 · 1618 阅读 · 3 评论 -
Java工具类之StringUtils中trim()、trimToNull()、trimToEmpty()方法详解
目录说在前面trim()trim()方法去掉了哪些空格?trim()方法 源码trimToNull()trimToNull()方法去掉了哪些空格?trimToNull()方法 源码trimToEmpty()trimToEmpty()方法去掉了哪些空格?trimToEmpty()方法 源码总结说在前面以前我总结过一篇,Java基础之 String....原创 2018-12-23 23:30:17 · 10145 阅读 · 0 评论 -
Java基础之基本数据类型到底是几种?
如果连基本数据类型都不知道,恐怕是还没入门。当然,有些人不去记,肯定不知道。就知道常用的有 int。其他,没了。此文只是说明 基本数据类型有几种?具体 区别 另行查看其它文章。基本数据类型到底有几种?7种?在我的脑海中,好多人还以为常用的基本类型有7种,当然,如果这么说出去,别人会笑话死。好多人还都会问String是不是基本数据类型。恩,加上String 应该是8种吧。...原创 2018-11-29 20:50:31 · 492 阅读 · 0 评论 -
Java基础之 String.trim() 究竟去掉了什么?
目录说在前面trim()trim()方法去掉了哪些空格?trim()方法 源码trim() 究竟去掉了什么?trim()/substring()怎样返回字符串对象?总结说在前面某一天,有人问我,String.tirm()是做什么的?我的回答是:去除两边空格字符串。“确定吗?中的能能去吗?”……trim()trim()方法去掉了哪些空格?为...原创 2018-11-29 20:11:38 · 7240 阅读 · 0 评论 -
Java基础之对List集合的常用操作
1.list中添加,获取,删除元素; 添加方法是:.add(e); 获取方法是:.get(index); 删除方法是:.remove(index); 按照索引删除; .remove(Object o); 按照元素内容删除; 1 2 3 4 5 6 7 8 9 10 11 12 13...原创 2018-05-24 16:54:25 · 783 阅读 · 0 评论 -
java基础之compareTo比较两个日期的大小
处于对compareTo(BigDecimal val)的理解,以前我一直以为,如果大于的话compareTo的返回值应该是1,等于的话是0,小于的话是-1,最后打出来,看了一下,如果大于的话返回的是正整数,等于是0,小于的话就是负整数,而不仅仅局限于1,0和-1。日期格式进行比较源码:栗子:日志打印:分析:类似于:compareTo(BigDecimal val)日期String格式进行比较源码...原创 2018-06-12 11:54:01 · 11420 阅读 · 0 评论 -
Java 递归操作实现邀请关系
单独抽出,递归查询:原创 2018-06-07 15:47:59 · 1550 阅读 · 0 评论 -
IntelliJ IDEA(编码篇):集成Junit4插件,快速生成测试类
目录安装JUnitGenerator V2.0修改JUnitGenerator V2.0的配置生成JUnit4测试用例注意安装JUnitGenerator V2.0 1、通过网络安装。如下 2、手动下载插件安装。插件下载:https://plugins.jetbrains.com/idea/plugin/3064-junitgenerator-...转载 2018-06-14 16:47:56 · 2692 阅读 · 0 评论 -
定时任务Quartz 之 cron表达式(时间表达式)
Cron表达式简介 Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: (1) Seconds Minutes Hours DayofMonth Month DayofWeek Year (2)Seconds Minutes Hours DayofMonth Month DayofWeek结构 corn...原创 2018-07-18 10:49:46 · 14490 阅读 · 0 评论 -
Java基础之String 是否包含该字符串,使用 contains 和 indexOf 的区别
判断该字符串是否包含某个字符串:1、一般会用到String的contains,如果包含则返回true,否则返回false。@Testpublic void contains_Test() { String one = "a"; String two = "abc"; System.out.println(one.contains(two));// false System.ou...原创 2018-08-03 12:38:31 · 12733 阅读 · 1 评论 -
Liunx(环境篇):安装java开发环境JDK
说在前面开发java必备之jdk下载JDK使用wget下载https://blog.youkuaiyun.com/Soinice/article/details/83145746安装JDK解压jdk解压jdk到当前文件夹新建java文件夹用来存放jdk添加环境变量添加如下内容:JAVA_HOME根据实际目录来JAVA_HOME=/home/prog...原创 2018-10-18 17:54:57 · 234 阅读 · 0 评论 -
Java基础之集合List<map>进行排序
现有以下集合List<Map<String,String>>,集合中元素Map中主要包含“code”,“name”等属性,要求按code升序,name降序的顺序对集合进行重新排序;实现Collections接口进行排序1,先根据需求封装List<Map<String,String>> public static void mai...原创 2018-11-06 19:58:31 · 4269 阅读 · 0 评论 -
Java基础之方法重载(Overload)
同一个类中的多个方法可以有相同的方法名称,但是有不同的参数列表,这就称为方法重载(method overloading)。重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。最常用的地方就是构造器的重载。参数列表又叫参数签名,包括参数的类型、参数的个数、参数的顺序,只...原创 2018-11-07 18:45:54 · 521 阅读 · 0 评论 -
Java基础之字符串数组Array进行去重
写出一段算法,用于对字符串数组进行去重,要求尽量简洁举例:* 输入:* {"cc","dd","aa","cc","gg","dd","ee"}* 输出:* {"cc","dd","aa","gg","ee"}ArrayList去重通过list.c原创 2018-11-05 15:14:13 · 1936 阅读 · 0 评论 -
Java工具类之Arrays数组工具类的常用操作
Arrays类是JDK提供的专门用于操作数组的工具类,位于java.util包中。用Arrays类的方法操作数组,无需自己编码。Arrays类的常用方法:1、boolean equals(array1,array2):比较两个数组是否相等。 /** * 数组比较 */ public static void arrayEquals() { ...原创 2018-11-06 10:20:50 · 521 阅读 · 0 评论 -
设计模式:Java常用23种设计模式及六大原则简介
目录简介设计模式的分类各分类中模式的关键点创建型模式结构型模式行为型模式设计模式的六大原则简介设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式的分类创建型模...原创 2018-11-08 16:45:41 · 355 阅读 · 0 评论 -
设计模式(创建型):Java常用23种设计模式之工厂方法模式详解以及Java代码实现
工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主...原创 2018-11-08 18:52:50 · 281 阅读 · 0 评论 -
Java 关键字之Static用法
目录static 简介static 用法修饰成员变量修饰成员方法静态块静态导包总结Q&A为什么main方法是静态的(static)static 简介 在《Java编程思想》P86页有这样一段话: “static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过...原创 2018-11-14 15:11:20 · 240 阅读 · 0 评论 -
Java 关键字之Static用法常见面试题整理
1)写出 main 函数执行后输出的结果结果:原创 2018-11-25 23:14:26 · 406 阅读 · 0 评论 -
Java 多线程之Thread.setName() 设置线程名字
1)写出main 函数执行后的结果结果:原创 2018-11-25 23:28:19 · 3955 阅读 · 0 评论 -
Java基础之String,StringBuilder,StringBuffer三者的区别
这个问题也是面试中很多人都会去问的。这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。String,StringBuilder,StringBuffer 运行速度首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String为什么 String 最慢 String最慢的原因:...原创 2018-12-04 11:14:51 · 212 阅读 · 0 评论 -
Java基础之Integer和int的区别
1 int与Integer的基本使用对比1、Integer是int提供的封装类,而int是Java的基本数据类型;2、Integer默认值是null,而int默认值是0;3、声明为Integer的变量需要实例化,而声明为int的变量不需要实例化;4、Integer是对象,用一个引用指向这个对象,而int是基本类型,直接存储数值。2 int与Integer的深入对比(1)由于Integer变量实际上...原创 2018-05-23 19:41:40 · 340 阅读 · 0 评论