Java开发
文章平均质量分 81
Java初级,中级,高级
无敌的黑星星
努力的去写代码
展开
-
Docker
Docker一、Docker的基本命令# docker启动 $ systemctl start docker $ service docker start# 重启docker服务$ systemctl restart docker$ sudo service docker restart# 关闭docker $ systemctl stop docker$ service docker stop# 查看是否启动成功$ docker ps -a原创 2022-02-11 13:13:51 · 133 阅读 · 0 评论 -
SQL优化总结 - MySQL
SQL优化最干货总结 - MySQL目录前言SELECT语句 - 语法顺序:SELECT语句 - 执行顺序:SQL优化策略一、避免不走索引的场景二、SELECT语句其他优化三、增删改 DML 语句优化四、查询条件优化五、建表优化好了我们言归正传,首先,对于MySQL层优化我一般遵从五个原则:减少数据访问: 设置合理的字段类型,启用压缩,通过索引访问等减少磁盘IO返回更少的数据: 只返回需要的字段和数据分页处理 减少磁盘io及网络io减少交互次数: 批量DML操作,函数存储等减少原创 2022-02-11 13:12:35 · 259 阅读 · 0 评论 -
ElasticSearch
ElasticSearch一、字段的类型Field type的详解下面就是所有的字段类型字符串类型 text,keyword整数类型 integer,long,short,byte浮点类型 double,float,half_float,scaled_float逻辑类型 boolean日期类型 date范围类型 range二进制类型 binary复合类型 数组类型 array对象类型 object嵌套类型 nested地理类型 地理坐标类型 geo_point地理地图 geo_s原创 2022-02-11 13:11:15 · 74001 阅读 · 0 评论 -
Docker
Docker一、Docker的基本命令# docker启动 $ systemctl start docker $ service docker start# 重启docker服务$ systemctl restart docker$ sudo service docker restart# 关闭docker $ systemctl stop docker$ service docker stop# 查看是否启动成功$ docker ps -a原创 2022-02-11 13:10:24 · 1021 阅读 · 0 评论 -
无锁、偏向锁、轻量级锁、重量级锁
无锁、偏向锁、轻量级锁、重量级锁1、偏向锁、轻量级锁、重量级锁适用于不同的并发场景偏向锁:无实际的锁竞争,且将来只有第一个申请锁的线程会使用锁。偏向锁只有初始化时需要一次CAS轻量级锁:无实际的锁竞争,多个线程交替使用锁,允许短时间的锁竞争。轻量级锁每次申请、释放锁都至少需要一次CAS重量级锁:有实际的锁竞争,且锁竞争时间长。2、锁升级、撤销的流程图3、内置锁和显示锁内置锁:也就是Synchronized锁由Synchronized实现的内置锁才能锁升级,从偏向锁-轻量级锁-重量级锁原创 2021-11-19 12:52:42 · 1012 阅读 · 0 评论 -
PageHelper.getTotal 获取不到总页数的问题
将全部数据的list,放到pageinfo就可以得到原创 2020-12-07 19:43:13 · 1281 阅读 · 0 评论 -
java~lombok里的Builder注解
lombok注解在java进行编译时进行代码的构建,对于Java的对象的创建工作他可以更优雅,不需要写重复的代码。创建对象通过builder方法。@Data@Builderpublic class TestBuilder { private String name; private String loc; public static void main(String[] args){ TestBuilder testBuilder = TestBuilde原创 2020-11-17 11:48:34 · 335 阅读 · 1 评论 -
springboot使用spring-boot-configuration-processor获取配置文件
springboot使用spring-boot-configuration-processor获取配置文件springboot中获取配置文件的方式,通常大家最常用的是@Value("${mail.username}")的形式,也可以用spring-boot-configuration-processor来更优雅得读取配置文件。下面讲下具体用法。引入pom文件 在使用idea创建springboot项目的时候,可以选择。 也可以直接引入pom文件<dependency> &原创 2020-11-16 19:21:28 · 7820 阅读 · 0 评论 -
定时任务框架Quartz-(一)Quartz入门与Demo搭建
一、什么是Quartz什么是Quartz?Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能:持久性作业 - 就是保持调度定时的状态; 作业管理 - 对调度作业进行有效的管理;大部分公司都会用到定时任务这个功能。拿火车票购票来说,当你下单后,后台就会插入一条待支付的task(job),一般是30分钟,超过30m原创 2020-11-16 19:05:55 · 275 阅读 · 0 评论 -
Java的自定义注解
Java的自定义注解一、Java的注解1、注解的作用1.生成文档这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等;2.跟踪代码依赖性实现替代配置文件功能。比较常见的是spring 2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量;3.在编译时进行格式检查如@Override放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出;2、元注解meta-annotation注解:负责注解其原创 2020-11-13 15:37:37 · 113 阅读 · 0 评论 -
(2020)Java后端开发----(面试题和笔试题)
2020Java后端开发面试一、2020/11/05 公司:1、初试(过了)1)、笔试题笔试题:给了5个SQL的查询语句的题(基本上都写出来,就是稍微有点问题,主要是SQL语句写的比较少,以后还需要加强)2)、面试题Spring(IOC,AOP)、SpringMVC(MVC的执行流程)、SpringBoot(主要的用途)他们是做什么的?JVM的组成部分?New一个新的对象,在堆区是如何存储的(考虑多种情况)机器学习算法中的线性回归和逻辑回归是怎么做的?3)、总结原创 2020-11-12 10:22:29 · 4903 阅读 · 6 评论 -
JAVA中的getBytes()方法(史上最能明白的总结)
在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不同情况下,返回的东西不一样! String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如:byte[] b_gbk = "大大".getBytes("GBK"); byte[] b_utf8 = "大大".getBytes("UTF-8"); byte[] b_iso8859...原创 2020-11-08 17:14:29 · 22945 阅读 · 3 评论 -
面试官 | JVM 为什么使用元空间替换了永久代?
在Java8和以后版本中JVM的内存结构慢慢发生了变化。作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试者,如果知晓这些变化,又将成为面试中的亮点。如果在网络上搜索JVM内存结构,90%的可能会搜到Java7及以前的内存图,本篇文章将会对JVM内存结构再次细化,深入理解Java8之后内部的变化。现在意识到关注公众号“程序新视界”的好处了吧。在这里可以不断的刷新你的知识和认知。JVM内存结构的细化再来看一下JVM内存结构图。为了更细化的讲解,我们将该图进行进一步的优化调整。原创 2020-11-04 20:53:38 · 255 阅读 · 0 评论 -
状态码的详细分析
(1)状态码既然Ajax涉及到前后端的数据交互,那么我们就先来简单的看一下几种类型的状态码,如下表:文章目录 一 4xx - 客户端错误 二 5xx - 服务器错误 三 3xx - 重定向 四 1xx - 临时响应 五 2xx - 成功 一 4xx - 客户端错误发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。 400 Bad Request:请求出现语法错误。 401 Unauthorized:客户试图未.原创 2020-11-03 20:25:24 · 406 阅读 · 0 评论 -
feign和ribbon区别
feign和ribbon是Spring Cloud的Netflix中提供的两个实现软负载均衡的组件,Ribbon和Feign都是用于调用其他服务的,方式不同。Feign则是在Ribbon的基础上进行了一次改进,采用接口的方式。feign和ribbon是Spring Cloud的Netflix中提供的两个实现软负载均衡的组件,Ribbon 和 Feign 都是用于调用其他服务的,方式不同。Feign 则是在 Ribbon 的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义...原创 2020-10-31 20:22:11 · 530 阅读 · 0 评论 -
(2020)Spring框架(基础和中级部分)
2020 Spring框架一、框架的概述1、spring是什么?为了解决什么提出的?Spring是一个轻量级Java开发框架,目的是为了解决企业级应用开发的业务逻辑和其它层的耦合问题(简化java开发)spring可以做很多东西,为企业级平台提供了丰富的功能,但是这些功能的都依赖与他的两个核心特性,控制反转和面向切面编程2、Spring的优点(减低耦合,增强服务,简化开发)减低程序之间的耦合简化开发流程通过切面编程以动态非侵入的方式增强服务声明式事务的支持方便测试方便集成各种优秀的框原创 2020-10-27 23:13:11 · 241 阅读 · 0 评论 -
Java 浅拷贝和深拷贝的理解和实现方式
总结:对象的拷贝,有浅拷贝和深拷贝之分,浅拷贝就是拷贝给另一个对象的是本对象存储的地址,而不是新开辟的存储区域去存放新的这个对象,这样不管是修改原对象还是新对象的内容,都会将原对象和新对象的内容修改掉。深拷贝就是新开辟一块存储区域去存储拷贝来的对象,这样修改原对象,也不会影响新对象的值。 浅拷贝的三种实现方式(除String类型外,他比较特殊,它是字符串常量,不能被修改,重新给他复制的话,他就会创建新的内存区域去存储新的值): 直接将引用对象赋值给另一个对象 通过拷贝构造方法实现浅拷贝 通过原创 2020-10-24 16:18:03 · 304 阅读 · 0 评论 -
浅谈java中类名.class, class.forName(), getClass()的区别
Class对象的生成方式如下:1、类名.class说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象2、Class.forName("类名字符串")(注:类名字符串是包名+类名)说明:装入类,并做类的静态初始化,返回Class的对象3、实例对象.getClass()说明:对类进行静态初始化、非静态初始化;返回引用o运行时真正所指的对象(因为:子对象的引用可能会赋给父对象的引用变量中)所属的类的Class的对...原创 2020-10-24 00:02:29 · 226 阅读 · 0 评论 -
Java中synchroized关键字的使用
在Java中我们经常使用同步,最多使用的就是synchroized关键字,下面我们就看看这个关键字的用法。因为synchroized涉及到锁的概念,我们先来了解一下锁的知识。java的内置锁:每个java对象都可以用作一个实现同步的锁,这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获取该锁,在退出同步代码块或者方法时会释放该锁。获得内置锁的唯一途径就是进入这个锁保护的代码块或者方法。java内置锁是互斥锁,这就意味着最多一个线程能获得该锁,当线程A尝试的去获得线程B持有的内置..原创 2020-10-23 23:01:38 · 197 阅读 · 0 评论 -
JAVA重写hashcode()和equals()方法
JAVA重写hashcode()和equals()方法一、Object类下的方法在Object类下的hashcode()方法生成的哈希值,大多数情况下都是不一样的,也有值不一样的,但是哈希值一样的。 在Object类下的equals()方法比较两个对象是否一样,默认是实现了“==”,也就是比较的是两个对象的地址是否一样,二、重写Object类下的方法 重写hashcode方法的原因是:要通过euqals方法比较两个对象是否一样,不能使用默认的方法,要重写equals方法。那怎么才能比较两个原创 2020-10-23 22:51:36 · 548 阅读 · 1 评论 -
Java中main方法启动的是一个进程还是一个线程
Java中main方法启动的是一个线程也是一个进程,一个java程序启动后它就是一个进程,进程相当于一个空盒,它只提供资源装载的空间,具体的调度并不是由进程来完成的,而是由线程来完成的。一个java程序从main开始之后,进程启动,为整个程序提供各种资源,而此时将启动一个线程,这个线程就是主线程,它将调度资源,进行具体的操作。Thread、Runnable的开启的线程是主线程下的子线程,是父子关系,此时该java程序即为多线程的,这些线程共同进行资源的调度和执行。...原创 2020-10-21 12:09:10 · 2062 阅读 · 2 评论 -
JAVA的序列化和反序列化的详解
一、基本概念1、序列化和反序列化的定义: (1)Java序列化就是指把Java对象转换为字节序列的过程 Java反序列化就是指把字节序列恢复为Java对象的过程。 (2)序列化最重要的作用:在传递和保存对象时.保证对象的完整性和可传递性。对象转换为有序字节流,以便在网络上传输或者保存在本地文件中。 反序列化的最重要的作用:根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。 总结:核心作用就是对象状态的保存和重建。(整个过程核心点就是字...原创 2020-10-21 00:51:19 · 408 阅读 · 0 评论 -
Java transient关键字使用小记
1. transient的作用及使用方法我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列...转载 2020-10-20 21:31:15 · 287 阅读 · 0 评论 -
解决IDEA自动重置Language Level和JavaCompiler版本的问题
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <!--<version></.原创 2020-10-16 15:24:57 · 223 阅读 · 0 评论 -
docker下修改mysql配置文件
由于需要修改mysql的sql_mode,在命令行修改每次重启都会失效,因为修改docker下mysql的配置文件。操作系统:centos7docker版本:Docker version 17.05.0-ce, build 89658bemysql版本:5.7.181.拉取镜像docker pull mysql:5.7.1812.列出镜像[root@zk01 ~]# docker imagesREPOSITORY转载 2020-10-14 19:41:38 · 1179 阅读 · 1 评论 -
Java的IO(一)
一./ // \ \\之间的区别/表示斜杆主要用在远程服务器上或者网络上\表示反斜杠,主要用在本地目录。是转义字符,\\的转义结果则是\。看个例子(注意看本路层级之间的符号)1.\\package day5;import java.io.File;public class IoTest {public static void main(String[] a...原创 2018-12-30 00:38:49 · 206 阅读 · 0 评论 -
Java中有5种创建对象的方式
作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象。然而这里有很多创建对象的方法,我们会在这篇文章中学到。Java中有5种创建对象的方式,下面给出它们的例子还有它们的字节码使用new关键字 } → 调用了构造函数 使用Class类的newInstance方法 } → 调用了构造函数 使用Constructor类的newIns...转载 2018-10-03 10:25:15 · 619 阅读 · 1 评论 -
Java面试(一)
1、&和&&的区别?答:&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。...原创 2019-03-03 20:49:57 · 113 阅读 · 0 评论 -
Java中的方法和数据继承问题
1.子类不能访问父类的私有函数,所以只能重新实现父类的私有函数,不会有冲突,这叫重载,不叫重写。只是一个子类的扩张方法。2.父类的静态方法可以被子类继承,但是不能重写。如果要调用父类的静态函数,可使用父类名.静态方法名。...原创 2018-10-06 10:27:30 · 267 阅读 · 0 评论 -
没有任何类型 test1 的外层实例可访问。必须用类型 test1 的外层实例(例如,x.new A(),其中 x 是 test1 的实例)来限定分配。
在main方法中创建类Person,视为内部类,可以直接new Person,在main方法外创建的类,需要先实例化一个外层的对象A,再通过A.new来实例类Person package new_start1; public class Test1 { class Person { public String name; pu...转载 2018-10-04 10:37:31 · 7081 阅读 · 0 评论 -
java后台技术栈
转载 2018-10-11 19:54:41 · 451 阅读 · 0 评论 -
Java后台学习路线
①一段摘自知乎的文档Java就业方向目前主要方向为Android和Java Web。就题主而言,估计是想深造Java Web方向。 首先我得佩服你选这个方向,这条道需要掌握的知识多如牛毛。我暂且假定题主拥有良好的Java SE基础了。 1.首先你需要学习的是Servlet/JSP方面。虽然这一块的知识不算太多,但比较重要,会为你以后的Web方向深入打好基础,特别是Servlet。这其中会包...转载 2018-10-11 19:52:18 · 195 阅读 · 0 评论 -
Java学习第一阶段计划
Java的流控制 数组 Java面向对象:面向对象思想,类与对象,构造方法 封装 继承 多态 抽象类接口 Java常用类:object stringbuffer string math date 异常处理:理解异常的基本概念,掌握异常捕获与处理的基本结构 掌握throws 和throw自定义异常 集合框架:掌握list,set map 掌握并应用泛型 Jav...原创 2018-10-11 19:45:24 · 172 阅读 · 0 评论 -
Java初级,中级,高级详细分析
学习一种自己喜欢的语言:“Java”原创 2018-10-11 19:26:05 · 3704 阅读 · 0 评论 -
Java的string类
Java String 类字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。创建字符串创建字符串最简单的方式如下:String greeting = "菜鸟教程";在代码中遇到字符串常量时,这里的值是 "菜鸟教程"",编译器会使用该值创建一个 String 对象。和其它对象一样,可以使用关键字和构造方法...转载 2018-10-03 10:01:47 · 91 阅读 · 0 评论 -
java学习01-为什么java程序会有多个主函数?
这周刚刚开始学习java语言,我已经遇到了很多让我这种新手困惑的问题,所以在这里记录下来,作为学习的开始。今天看学习视频,见到了一个在C/C++中从未见过的、很“怪”的现象:为什么一个java程序里会有两个主函数?譬如下面这个程序:class MainDemo { public static void main(String[] args) { Sy...转载 2018-10-03 09:30:13 · 2256 阅读 · 0 评论 -
Java中的String,StringBuilder,StringBuffer三者的区别
最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下,便于大家观看,也便于加深自己学习过程中对这些知识点的记忆,如果哪里有误,恳请指正。 这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。首先说运行速度,或者说是执行速度,在...原创 2018-10-02 23:32:02 · 116 阅读 · 0 评论 -
年薪40W的程序员必会的技术有哪些?
很多人在问我,程序员如何拿高薪,如何做到年薪40W+,其实总结出来还是一句话,你的技术决定你的能力已经薪资。那么什么样的技术人才才能拿到一份Java行业里面的高薪呢?下面是我的一个总结技术:最后、是我总结出的阿里面试必备知识点:掌握Java编程语言,包含io/nio/socket/multi threads/collection/concurrency等功能的使用;熟练掌握jvm(sun hots...转载 2018-07-04 00:57:14 · 3547 阅读 · 0 评论 -
史上最全的Java进阶书籍推荐
学习Java,书籍是必不可少的学习工具之一,尤其是对于自学者而言。废话不多说,下边就给大家推荐一些Java进阶的好书。第一部分:Java语言篇1.《Java编程规范》 适合对象:初级、中级介绍:这本书的作者是被誉为Java之父的James Gosling,入门者推荐阅读,对基础的讲解很不错。2.《Java编程思想》 适合对象:初级、中级介绍:豆瓣给出了9.1的评分,全球程序员广泛赞誉。有人说这本书...原创 2018-07-01 10:31:19 · 2968 阅读 · 0 评论 -
java丨事件驱动程序设计学习笔记(一)
一、事件和事件源事件:事件可以定义为程序发生了某些事情的信号源对象(源组件):能创建一个事件并触发该事件的组件成为源对象事件类的根类:java.util.EventObject可以使用EventObject类中的实例方法getSource()获得事件的源对象如果一个组件可以触发某个事件,那么这个事件的任意子类都可以触发同类型的事件,如因为GUI组件的父类Component可以触发Mou...原创 2018-10-09 13:13:08 · 1054 阅读 · 0 评论