随笔分类 -  java基础

摘要:前言 今天看群里小伙伴问了一个非常有意思的问题: 使用 Map<String,Object> 对象接收前端传递的参数,在后端取参时,因为接口文档中明确该字段类型为 Long ,所以对接收的参数进行了强转,即 (Long)参数 ,但是却发生了类型转换异常,报错信息如下: class java.lang 阅读全文
posted @ 2020-11-19 22:52 niceyoo 阅读(3548) 评论(0) 推荐(1) 编辑
摘要:前言部分 Set<T> 去重相信大家一定不陌生,尤其是在 Set<String>、Set<Integer> 等等,但是在使用 Set<实体> ,在不重写 equals()、hashCode() 方法情况下,直接使用貌似并不能生效。 所以想要 Set<实体> 实现去重,核心部分在实体中重写 equal 阅读全文
posted @ 2020-11-12 09:01 niceyoo 阅读(6902) 评论(0) 推荐(2) 编辑
摘要:执行内容: String a = "select * from j_question j where j.status = %s and j.title like '%java%'";String format = String.format(a, 1);System.out.println(for 阅读全文
posted @ 2020-11-10 22:23 niceyoo 阅读(3145) 评论(0) 推荐(0) 编辑
摘要:1. 前言 排序算是比较高频的面试题了,节前面试了的两家公司都有问到排序问题,整理后分享给大家(文末见总结)。 通常我们想到实现排序就是 Collections 工具类的 sort() 方法,而 sort() 方法有两种: 直接调用 Collections.sort(List list) 方法进行排 阅读全文
posted @ 2020-10-18 23:20 niceyoo 阅读(986) 评论(1) 推荐(1) 编辑
摘要:开始磨刀霍霍向多线程了,这期是 CountDownLatch 的一个小示例。 定义:CountDownLatch 允许一个或多个线程等待其他线程完成操作。 应用需求举例:假设有4个线程,A、B、C、D,线程 D 需要在 A、B、C 执行完之后再执行。 应用需求分析:如上描述,如果想让线程 D 最后执 阅读全文
posted @ 2020-09-18 11:30 niceyoo 阅读(431) 评论(0) 推荐(0) 编辑
摘要:一、前言 日期的转换与格式化在项目中应该是比较常用的了,最近同事小刚出去面试实在是没想到被 SimpleDateFormat 给摆了一道... 面试官:项目中的日期转换怎么用的?SimpleDateFormat 用过吗?能说一下 SimpleDateFormat 线程安全问题吗,以及如何解决? 同事 阅读全文
posted @ 2020-09-15 14:36 niceyoo 阅读(1672) 评论(0) 推荐(1) 编辑
摘要:前言 相信大家在面试的时候经常会遇到「线程池」相关的问题,比如: 什么是线程池?线程池的优点? 有哪几种创建线程池的方式? 四种创建线程池的使用场景? 线程池的底层原理? 线程池相关的参数,比如CorePoolSize、maximunPoolSize、keepAliveTime等等 为什么阿里巴巴不 阅读全文
posted @ 2020-09-12 16:46 niceyoo 阅读(1665) 评论(0) 推荐(1) 编辑
摘要:今天把小伙伴问懵了,小刚,你知道怎么停止一个线程吗? 这...,这...,stop? 原来平时小刚这小子只知道创建线程,不知道怎么暂停线程呀~[狗头] 停止线程是在多线程开发中很重要的技术点,比如在多线程持续处理业务代码时,由于处理逻辑中有第三方接口异常,我们就假设发送短信接口挂了吧,那么此时多线程 阅读全文
posted @ 2020-07-27 00:00 niceyoo 阅读(2697) 评论(0) 推荐(0) 编辑
摘要:今天我们来看一道面试题引发的思考 问: 创建线程都有哪些方式? 答: 我了解的有四种创建方式: 继承Thread类创建线程类 通过Runnable接口创建线程类 通过Callable和Future创建线程 通过线程池创建 相信大家回答这个问题没什么难度吧?通常问完创建方式,那么接下来就是问「1、2」 阅读全文
posted @ 2020-07-26 12:47 niceyoo 阅读(485) 评论(0) 推荐(0) 编辑
摘要:小伟刚毕业时面的第一家公司就被面试官给问住了,记忆尤深啊... 如何理解Java中的自动拆箱和自动装箱? 自动拆箱?自动装箱?什么鬼,听都没听过啊,这...这..知识盲区... 回到家后小伟赶紧查资料,我透,这不就是问基本类型跟封装类型吗,面试官整啥名词呢... 别问结果,问就是没过。 1、 什么是 阅读全文
posted @ 2020-05-27 23:45 niceyoo 阅读(7664) 评论(0) 推荐(2) 编辑
摘要:不逼自己一把,你永远不知道什么是绝望。 今天被初学java的朋友问到了String[]跟ArrayList是不是有关系呢? 猜测是名称之间的联想,记此篇解惑。 Array英语单词里是数组、阵列的意思,在java中数组是这样定义的:一组相关类型的变量集合。 格式:数据类型[] 数组名称 = new 数 阅读全文
posted @ 2019-11-16 00:13 niceyoo 阅读(1002) 评论(0) 推荐(0) 编辑
摘要:前言 我们在学习 java 基础的时候,从宏观上了解一个类到运行大致是:.java 文件通过 javac 编译器编译得到 .class 文件,在用到该类时,jvm 会加载该 class 文件,并创建对应的 class 对象,将 class 文件加载到 jvm 的内存当中,这个过程也被称之为类加载过程 阅读全文
posted @ 2019-07-24 23:54 niceyoo 阅读(668) 评论(0) 推荐(0) 编辑
摘要:1、什么是 Volatile? volatile 是一个类型修饰符,具有可见性,也就是说一旦某个线程修改了该被 volatile 修饰的变量,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,可以立即获取修改之后的值。 在 java 中为了加快程序的运行效率,对一些变量的操作通常是在该线程 阅读全文
posted @ 2019-07-11 22:32 niceyoo 阅读(445) 评论(0) 推荐(0) 编辑
摘要:1、为什么有线程安全问题? 当多个线程共享同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。 案例:现在有100张火车票,有两个窗口同时抢火车票,请使用多线程模拟抢票效果。 代码: public class NewThread1  阅读全文
posted @ 2019-07-09 21:01 niceyoo 阅读(391) 评论(0) 推荐(0) 编辑
摘要:1、线程与进程的区别 进程是所有线程的集合,每一个线程是进程中的一条执行路径。 比方:通过查看 windows 任务管理器中的列表,我们可以把运行在内存中的 exe 文件理解成进程,进程是受操作系统管理的基本运行单元。 2、为什么要使用多线程? 主要体现在多线程提高程序效率,但是需要注意,并不是使用 阅读全文
posted @ 2019-07-08 23:50 niceyoo 阅读(389) 评论(0) 推荐(0) 编辑
摘要:String 对象可谓再熟悉不过了,与此相关的面试题经常会引出内存性能优化的问题,本篇主要以 new String("123") 创建了几个对象为例记录。 一、你能回答正确吗 String a = "123"; 如上定义的为常量; String b = a +"456"; 如上 b 为变量,为啥? 阅读全文
posted @ 2019-06-27 22:40 niceyoo 阅读(8133) 评论(3) 推荐(6) 编辑
摘要:记录一次帮助小伙伴将java类打成jar包运行 1、创建java project项目 file > new > project > java project 随便起一个项目名称,finish 完成后项目结构如下: 2、植入java类 将准备好的java类,植入项目中,在 src 目录中,新建包名,例 阅读全文
posted @ 2019-06-23 20:29 niceyoo 阅读(2724) 评论(0) 推荐(0) 编辑
摘要:一、什么是序列化与反序列化? Java 序列化是指把 Java 对象转换为字节序列的过程;Java 反序列化是指把字节序列恢复为 Java 对象的过程; 二、为什么要用序列化与反序列化? 在 为什么要用序列化与反序列化 之前我们先了解一下对象序列化的两种用途: 把对象的字节序列永久地保存到硬盘上,通 阅读全文
posted @ 2019-03-25 21:04 niceyoo 阅读(36508) 评论(3) 推荐(9) 编辑
摘要:Java的反射机制相信大家在平时的业务开发过程中应该很少使用到,但是在一些基础框架的搭建上应用非常广泛,今天简单的总结学习一下。 1. 什么是反射机制? Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及 阅读全文
posted @ 2019-03-24 22:07 niceyoo 阅读(6098) 评论(1) 推荐(1) 编辑
摘要:一、概念 如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。 二、异常分类 Throwable 是 Java 阅读全文
posted @ 2019-03-23 20:37 niceyoo 阅读(16013) 评论(4) 推荐(4) 编辑