![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 74
兴浩
这个作者很懒,什么都没留下…
展开
-
Java面试题
1Java基础1.1什么是Java虚拟机Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件。1.2JDK 和 JRE 有什么区别?原创 2021-08-29 00:00:34 · 1525 阅读 · 3 评论 -
java8 stream 多字段排序
很多情况下sql不好解决的多表查询,临时表分组,排序,尽量用java8新特性stream进行处理使用java8新特性,下面先来点基础的List<类> list; 代表某集合 //返回 对象集合以类属性一升序排序list.stream().sorted(Comparator.comparing(类::属性一));//返回 对象集合以类属性一降序排序 注意两种写法list.stream().sorted(Comparator.comparing(类::属性一).reversed());原创 2021-06-26 17:31:37 · 368 阅读 · 0 评论 -
java8 stream list转map及问题解决
测试代码如下:public class StreamUtil { public static void main(String[] args) { //List集合 List<Test> list = new ArrayList(); list.add(new Test("01", "A")); list.add(new Test("02", "B")); list.add(new Test("02", "c"));原创 2021-06-26 17:18:49 · 491 阅读 · 0 评论 -
java8 Stream 常用使用方法
1.forEach循环list.forEach(item -> {});1.foreach的实现基于Iterator;2.不能使用foreach对数组或容器进行赋值;3.可以使用foreach修改数组或容器的对象的属性;4.赋值行为尽量使用for循环。2.java8 stream list转map及问题解决3.java8 stream 集合取交集、并集、差集、去重并集public static void main(String[] args) { List<St原创 2021-06-26 17:15:27 · 241 阅读 · 0 评论 -
3.计算机网络
1.TCP/IP五层协议的体系结构5应用层4运输层3网络层2数据链路层1物理层物理层:中继器、集线器、还有我们通常说的双绞线也工作在物理层数据链路层:网桥(现已很少使用)、以太网交换机(二层交换机)、网卡(其实网卡是一半工作在物理层、一半工作在数据链路层)网络层:路由器、三层交换机传输层:四层交换机、也有工作在四层的路由器2.OSI七层模型物理层:设备之间比特流的传输,物理接口,电气特性等等。常见的设备有网线,网卡等等。数据单位是比特数据链路层:成帧,用Mac地址访问媒介,错误检原创 2021-06-16 15:03:39 · 146 阅读 · 0 评论 -
2.计算机操作系统
1.进程与线程区别进程是系统资源分配的最小单位,线程是程序执行的最小单位;进程使用独立的数据空间,线程共享进程的数据空间。线程是进程的一个实体,是cpu调度和分配的基本单位,是最小的cpu执行单元。线程自己不拥有任何系统资源,但是它可以访问其隶属进程的全部资源,所以线程创建,撤销,切换的开销远小于进程,一个进程可以拥有多个线程。2 进程(或作业)的调度算法有哪些1优先级调度算法2 高响应比优先调度算法3 时间片的轮转调度算法4 先来先服务调度算法5 短作业优先调度算法(高响应比优先调度)翻译 2021-06-16 14:50:53 · 102 阅读 · 0 评论 -
Java中this和super()的用法
thisthis关键字指向的是当前对象的引用,可以理解为:指向对象本身的一个指针。this的用法在java中的用法:1.普通的直接引用2.形参与成员名字重名指的是访问类中的成员变量,用来区分成员变量和局部变量(重名问题)class Person { private int age = 10; public Person(){ System.out.println("初始化年龄:"+age);} public int GetAge(int age){翻译 2021-06-16 11:52:50 · 554 阅读 · 0 评论 -
谷粒商城 学习笔记 一、项目简介(p1-p5)
前言此文章是本人根据全网最强电商项目【谷粒商城】-基础篇-高级篇-集群篇视频课学习的总结,本视频课程一共400多集,完全看完的话需要很久。为了方便大家学习,我对其做了一些整理。希望大家多多支持。一、项目简介谷粒商城是尚硅谷推出的全栈视频,网上有视频课程,也有相关的代码文档,但是这些东西没有比较完整的。分布式基础概念项目架构图如下1、微服务微服务架构风格,就像是把一个单独的应用程序开发为一套小服务,每个小服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API。这些服务围绕业务能力原创 2021-06-06 13:17:18 · 1159 阅读 · 2 评论 -
SpringCloud (一)使用SpringBoot2+整合SpringCloud
开发工具JDK 1.8.0 及以上 maven 3.3 及以上 IDE Mysql(适用模式一) Redis(适用模式一)创建父Maven工程本次学习使用得SpringBoot版本为2.0.3.RELEASE,SpringCloud版本为Finchley.RELEASE新建maven项目(parent项目) 添加项目依赖 添加默认配置文件 修改pom文件,参考如下,版本...原创 2020-04-09 15:51:35 · 564 阅读 · 0 评论 -
JMeter 5.1.1性能测试,完整入门篇
Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。本文为JMeter性能测试完整入门篇,从Jmeter下载安装到编写一个完整性能测试脚本、最终执行性能测试并分析性能测试结果。运行环境为Windows 10系统,JDK版本为1.8,JM...原创 2019-08-13 14:26:54 · 6116 阅读 · 2 评论 -
Java 应用性能调优实践
Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据库频繁死锁等。尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的日益增加和代码的臃肿,各种性能问题开始纷至沓来。Java 应用性能的瓶颈点非常多,比如磁盘、内存、网络 I/O 等系统因素,Java 应用代码,JVM GC,数据库,缓存等。笔者根据个人经验,将 Java 性能...转载 2019-07-12 15:01:42 · 126 阅读 · 0 评论 -
Lock和synchronized的区别和使用
今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所有在网上找了很多文章看了一下,总体说的不够详细,重点和焦点问题没有谈到,但这篇文章相当不错,说的很全面,主要的重点都说到了,所有在这里转载了这篇文章。 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java5之后,在j...转载 2019-07-12 10:08:46 · 221 阅读 · 0 评论 -
Java 源码分析(二)线程池
线程池源码也是面试经常被提问到的点,我会将全局源码做一分析,然后告诉你面试考啥,怎么答。为什么要用线程池?简洁的答两点就行。 降低系统资源消耗。 提高线程可控性。 如何创建使用线程池?JDK8提供了五种创建线程池的方法:1.创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。public static ExecutorService n...转载 2019-07-01 11:32:04 · 112 阅读 · 0 评论 -
MySQL常见SQL错误用法
前言越来越多的客户将自己的应用建立在MySQL数据库之上,甚至是从Oracle迁移到MySQL上来。但也存在部分客户在使用MySQL数据库的过程中遇到一些比如响应时间慢,CPU打满等情况。阿里云RDS专家服务团队帮助云上客户解决过很多紧急问题。现将《ApsaraDB专家诊断报告》中出现的部分常见SQL问题总结如下,供大家参考。常见SQL错误用法1. LIMIT 语句分页查询是最常用...原创 2019-07-01 10:39:59 · 209 阅读 · 0 评论 -
Linux 系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路
处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路。对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出js...转载 2019-07-05 11:39:41 · 2354 阅读 · 0 评论 -
Java 反射
前言Java的反射特性是一项非常强大和有用的功能,它使得我们可以轻松的在运行时观察到类实例的内部状态,并且可以动态的操作实例,从而为Java语言提供更多更灵活的想象空间。随便举几个例子:使用反射可以动态的映射Java对象属性到Json文件属性的操作,这一点无论在FastJson,还是GSON或者是jackson上都体现的淋漓尽致。此外使用反射可以轻松的用在JDBC中完成Java Bean...原创 2019-07-04 10:39:01 · 96 阅读 · 0 评论 -
Java 定时器(Timer)
在开发中,我们经常需要一些周期性的操作,例如每隔几分钟就进行某一项操作。这时候我们就要去设置个定时器,Java中最方便、最高效的实现方式是用java.util.Timer工具类,再通过调度java.util.TimerTask任务。1、简介Timer是一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。实际上是个线程,定时调度所...转载 2019-07-08 14:23:30 · 193 阅读 · 0 评论 -
Java 源码分析(一)集合
Java 集合 包括 list,map,set集合集合与数组数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。注:数组我在前面的博客讲了大家可以看下集合中接口和类的关系Collection接口是集合类的根接口,Java中没有提供这个接口的直接的...原创 2019-05-21 16:59:54 · 122 阅读 · 0 评论 -
static关键字有5种用法
说到static,静态变量和静态方法大家随口就来,因为他们在实际开发中应用很广泛,但他们真正在使用的时候会存在很多问题,而且它的使用不只那两种:静态变量。 静态方法。 静态代码块。 静态内部类。 静态导入。接下来我们看一下这些用法。1.静态变量静态变量属于类,内存中只有一个实例,当类被加载,就会为该静态变量分配内存空间,跟 class 本身在一起存放在方法区中永远不会被回收,...原创 2019-03-25 11:32:04 · 464 阅读 · 0 评论 -
Linux 服务器 tomcat 响应缓慢的问题排查
目录1.查看 cpu2.查看带宽3.查看内存4.查看tomcat1.查看tomcat运行进程号2.查看进程连接数3.查看tomcat下消耗性能最多的线程1.查看 cputopcup显示正常,排除如果有异常请查看:Linux CPU 占用率较高问题排查2.查看带宽1、服务器内部安装iftop 流量监控工具:yum insta...原创 2019-03-29 17:01:34 · 2140 阅读 · 0 评论 -
Java字符串反转
1. 使用 + (String连接) 操作符package net.javaguides.corejava.string; /** * * @author Ramesh Fadatare * */ public class ReverseWithStringConcat { public static void main(String[] args) { ReverseWith...原创 2019-03-19 12:07:05 · 93 阅读 · 0 评论 -
优雅的处理空值
目录业务中的空值场景问题现场深入listUser研究深入研究get方法深入入参小结空对象模式场景优化修改使用Optional可以进行优化Optioanl的正确使用Optional不要作为参数Optional作为返回值当个实体的返回集合实体的返回使用Optional变量getter中的使用小结业务中的空值场景...转载 2019-04-01 17:22:41 · 144 阅读 · 0 评论 -
11 个简单的 Java 性能调优技巧
大多数开发人员理所当然地以为性能优化很复杂,需要大量的经验和知识。好吧,不能说这是完全错误的。优化应用程序以获得最佳性能不是一件容易的事情。但是,这并不意味着如果你不具备这些知识,就不能做任何事情。这里有11个易于遵循的建议和最佳实践可以帮助你创建一个性能良好的应用程序。大部分建议是针对Java的。但也有若干建议是与语言无关的,可以应用于所有应用程序和编程语言。在讨论专门针对Java的性能...转载 2019-03-28 12:03:24 · 85 阅读 · 0 评论 -
JdbcTemplate 使用报错 Incorrect result size: expected 1, actual 0
使用类:org.springframework.jdbc.core.JdbcTemplate报错:org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0 at org.springframework.dao.support.Dat...原创 2019-04-16 16:08:24 · 2480 阅读 · 0 评论 -
slf4j使用方式
使用slf4j使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。 实现方式统一使用:Logback框架打日志的正确方式什么时候应该打日志当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统,是可以通过日志进行问题定为的。 当你碰到if…else 或者 switch这样的分支时,要在分支的首行打印日志,用来确定进入了哪个分支 经常以功能...转载 2019-04-15 09:51:16 · 233 阅读 · 0 评论 -
tomcat 8.5 第一次启动正常,关闭后无法再次启动问题
问题描述:使用Linux系统: centos_7_06_64_20G_aliba... jdk1.8.0_172 apache-tomcat-8.5.35 开放端口:80;8080;3679....解压tomcat后第一次使用 ./startup.sh命令 启动tomcat ,使用 ip:8080 可以访问tomcat主页;此时使用./shutdown.sh 命令关闭tomcat可...原创 2019-04-26 23:35:37 · 1932 阅读 · 1 评论 -
分布式锁 redis
可靠性首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件: 互斥性。在任意时刻,只有一个客户端能持有锁。 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。 具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。 解铃还须系铃人。加锁和解锁必须是同一个客户端,客户端自己不能把别...原创 2019-04-28 11:42:22 · 130 阅读 · 0 评论 -
程序员如何精确评估开发时间?
一个程序员能否精确评估开发时间,是一件非常重要的事情。如果你掌握了这项技能,你在别人的眼里就会是这样:靠谱经验十足对需求很了解延期风险小合格的软件工程师正规军,不是野路子评估开发时间的重要性首先,在一个项目中,所有的环节都是承上启下的,上一个环节结束的时间节点正是下一个环节开始的节点。那么在一个项目或者一次迭代正式启动前,所有的环节都应该有个时间评估。以一次APP需...转载 2019-04-24 16:40:08 · 125 阅读 · 0 评论 -
Java spring 使用线程池以及@Async 注解用法
一 springboot 注解方法 使用线程池1.首先启动类上增加@EnableAsync注解package cc.mrbird;import cc.mrbird.common.config.NniuhaoProperies;import org.mybatis.spring.annotation.MapperScan;import org.slf4j.Logger;impor...原创 2019-04-22 10:53:23 · 1775 阅读 · 0 评论 -
Java实现科大讯飞语音转文字
1.首先我们注册账号申请语音听写功能,并下载SDK,注意保存好自己的appid,代码中会用到将下载文件里的四个文件放在项目根目录下,以及tomcat的lib中,这两个则放入项目的lib中作为外部引用jar包2.具体代码请自行下载https://download.csdn.net/download/qq_39526250/105199243.结果图...原创 2018-07-05 15:06:03 · 13903 阅读 · 0 评论 -
IDEA 配置 管理 连接 MySQL 数据库 工具
1.打开idea界面右侧的database,打开后选择MySQL2.进入配置页面驱动配置好显示状态如下3.配置连接参数4.连接成功原创 2019-04-30 16:38:16 · 1037 阅读 · 0 评论 -
Java Web架构知识整理——记一次面试经历
“你学习一门技术的最佳时机是三年前,其次是现在。”这话从来很灵验。经过这次面试,觉得需要整理下Java Web相关的资料,以便自己提高或者更快适应可能面临的新的工作。首先谈谈Java Web需要掌握哪些东西。这里是一些知识点的搜集,暂不做详细说明,欢迎各位博友补充指正。1.底层 Java语言相关的就不说了,首先是JVM的结构和工作原理。比较重要的是Java内存模型,各种GC算法,Cl...原创 2019-05-21 16:32:56 · 122 阅读 · 0 评论 -
Intellij IDEA 安装 lombok (本地安装/在线安装)及使用详解
一 本地安装lombok1.下载安装lombok zip包下载地址:https://github.com/mplushnikov/lombok-intellij-plugin/releases2.下载好后放在任意盘下3.进入 file->settings勾选4.进入 Plugins - >Install plugin from disk…选择下载的zi...原创 2019-03-25 11:25:23 · 6404 阅读 · 1 评论