Java
文章平均质量分 58
深海呐
实名: 赵星海,山西人,目前在北京。
展开
-
Java 后端 - 腾讯云短信报错:AuthFailure.SecretIdNotFound message:The SecretId is not found, please ensure that
错误码:AuthFailure.SecretIdNotFound。原创 2022-08-17 17:28:40 · 4004 阅读 · 0 评论 -
Flutter与Kotlin和Java的等义对比(简单函数&变/常量)
以上可以看出函数的表达,Dart比Kotlin更加简洁,Kotlin比Java更加简洁!原创 2022-07-25 15:32:57 · 855 阅读 · 1 评论 -
接口测试-简单的接口自动化测试Demo
点击这里两个绿色三角图标的其中一个即可成功运行。好了,文章到这里就结束了,如果您有不同的见解或者有疑问的话欢迎到评论区留言。如果您感觉深海写的不错的话,请给文章点个赞吧,感谢各位的支持!......原创 2022-07-18 11:42:52 · 954 阅读 · 2 评论 -
Java 虚拟调研问答写入文件
最终产出文件内容举例:代码如下:import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.Random;public class Test2 { public static ..原创 2022-05-09 11:01:29 · 170 阅读 · 0 评论 -
SpringBoot/SpringCloud项目常用注解释义_Controller篇
Controller层常用注解:一、修饰类的注解:@RestController :是@controller和@ResponseBody 的结合@Controller:将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。 @ResponseBody:该类中所有的API接口返回的数据,无论对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端@Validated:参数合法性分组校验 具体使用...原创 2022-04-24 16:54:25 · 901 阅读 · 1 评论 -
Java 不区分大小写比较字符串
比较字符串时使用:equalsIgnoreCase()String.equals()对大小写敏感,而String.equalsIgnoreCase()忽略大小写例如:"ABC".equals("abc")是false"ABC".equalsIgnoreCase("abc")为ture源码: public boolean equalsIgnoreCase(String anotherString) { final int len = length();原创 2022-04-24 11:06:56 · 6707 阅读 · 0 评论 -
SpringBoot配置文件的加载位置与优先级
一、加载位置与加载顺序SpringBoot项目启动时,会依次从四个地方扫描加载配置文件分别是这四个地方: file:/config/ file:/ classPath:/config/ classPath:/ 二、优先级当四个地方出现重复的配置时,以最先扫描到的为准也就是说以上四个位置,优先级是从高到低排列file:/config/ 最高 classPath:/最低这时候,同样的配置,高优先级生效...原创 2022-04-18 16:21:47 · 709 阅读 · 1 评论 -
Java 定时任务-最简单的3种实现方法
一、TimerTimer是JAVA自带的定时任务类,实现如下:publicclassMyTimerTask{ publicstaticvoidmain(String[]args){ //定义一个任务 TimerTasktimerTask=newTimerTask(){ @Override publicv...原创 2022-03-07 16:58:38 · 56581 阅读 · 7 评论 -
算法探索_二叉查找树/二叉搜索树/二叉排序树的特点,创建,转换,数据插入和查找
本篇博客所用图片均由 penjee 官博制作,这里只做分享二叉搜索树的特点不知道各位有没有听过轻重树,搜索树或者说查找树也可以说是轻重树。该类的树有两个核心特点:所有左子节点均小于父节点 所有右子节点均大于父节点同时这类树必须满足一个条件:不可有键值相等的节点二叉搜索树的创建首先讲数据排序,使得数据成为有序数列,然后取数列的中间节点作为根节点。然后从中间向两边延申,分别将延伸到的节点作为自己的左右节点。二叉搜索树的转换 (转换成有序队列)两种方式。如果转Li原创 2022-02-11 10:19:41 · 264 阅读 · 2 评论 -
程序设计六大原则-概况与举例
总结设计原则其实很早以前就在想了,但是起初我认为固定的原则会局限人的创新思维,陈旧的定律不一定是最好的。实际上随着代码量的沉积,你会发现无形之中你的程序设计会和这六大原则不谋而合。大道至简,前人走过的路,可能也是你将要走的路。原则一:单一职责这一块不管你写前端还是后端的项目,你会明白,所谓的设计模式(如MVC,MCP)就是帮助你实现部分代码的单一职责,就像是流水线上工作流程拆分,很多简单的步骤实现庞大的逻辑。当职责变得单一时,复用性提高,个体业务逻辑难度降低。这个原则算是应用最广,也最显而易见的。原创 2022-01-26 18:01:58 · 1718 阅读 · 4 评论 -
SpringBoot项目创建到基本运行
SpringBoot项目创建:SpringBoot 的基本使用过程 - 简书Spring Boot 简化了Spring 应用的初始搭建、开发过程,开发人员可使用Spring提供的特定的方式来进行配置,不再需要重复自定义样板化的配置。其实,Spring...https://www.jianshu.com/p/c2593ac15fa7SpringBoot基本运行:springboot基本使用 - 程序员大本营https://www.pianshen.com/article/6095121原创 2022-01-22 15:25:03 · 477 阅读 · 0 评论 -
Java equals()与==在不同情况下的不同解释
1.相对于八大基本类型: == 比较的是具体内容,例如 int a = 0; int b= 0; 那么 a == b equase(), 八大类型无法使用该方法.2.相对于八大基本类型包装类:== 比较的是内存地址, 例如Integer a= new Integer(0); Integer b = new Integer(0); 那么 a == b 返回false Integer a= new...原创 2021-09-16 15:15:42 · 196 阅读 · 0 评论 -
Android (画板/模拟鼠标) 自定义View&轨迹传输定义
画板/鼠标垫 自定义view代码:import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.util.AttributeSet;import android.view.MotionEvent;import androi原创 2021-08-25 15:50:37 · 237 阅读 · 1 评论 -
Java各个类型与byte[]的转换
short 转byte[] int temp = val;byte[] bt=new byte[2];for (int i = 0; i < 2; i++){ bt[i]=new Integer(temp & 0xff).byteValue();// 将最低位保存在最低位 temp = temp >> 8; // 向右移8位}int转byte[] int temp = v;byte[] bt = new byte...原创 2021-08-06 15:34:23 · 715 阅读 · 1 评论 -
有关项目架构/规范改进的一些想法和总结
深海原创,如有异议欢迎评论区指出,谢过各位同行。前言:代码的质量,不是你用了多新鲜花哨的技术方案,而是是否能在满足需求的前提下更简洁易懂,更加高效快速,更加小巧轻盈。为什么要用kotlin,还不是因为代码量相比java更加少,同样基于JVM,难道能提升多少性能吗?为什么有新框架不断出现,你会发现越新的框架使用起来越简单,因为它帮你做了更多,另一角度也是减少了你的代码量。为什么很多公司愿意话更多的钱招更贵的开发,假如你经历了,项目因为人的离职而遗弃而重构或者重启的时候,你就明白了。话不原创 2021-08-03 18:44:02 · 607 阅读 · 0 评论 -
Java 垃圾回收算法
(1).标记-清除算法:最基础的垃圾收集算法,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成之后统一回收掉所有被标记的对象。标记-清除算法的缺点有两个:1.效率问题,标记和清除效率都不高。2.标记清除之后会产生大量的不连续的内存碎片,会导致当程序需要为较大对象分配内存时无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。(2).复制算法:将可用内存按容量分成大小相等的两块,每次只使用其中一块,当这块内存使用完了,就将还存活的对象复制到另一块内存原创 2021-07-17 11:08:11 · 1159 阅读 · 3 评论 -
Java 类加载机制&双亲委派模型
1.类加载是什么?将 “.Java” 的类文件 转换成 “.class” 的字节码文件 。然后JVM负责执行 “.class” 文件。2.类加载过程?5 个阶段:载入、验证、准备、解析和初始化这 5 个阶段一般是顺序发生的,但在动态绑定的情况下,解析阶段发生在初始化阶段之后。(1)Loading(载入)JVM 在该阶段的主要目的是将字节码,从不同的数据源,转化为二进制字节流,加载到内存中,并生成一个代表该类的java.lang.Class对象。(2)Verificat..原创 2020-12-16 16:52:53 · 190 阅读 · 2 评论 -
Java HashMap结构和原理
结构:数组+链表 +(>=1.8)红黑树插入过程,根据拿到key得hash值(并非直接拿hashCode,而是拿它的高位和低位进行重新计算得出全新的hash值,目的是为了减少hash碰撞),拿hash值根据数组长度-1(默认16)去得到数组索引。当hashMap的元素数量 >= 数组长度*0.75),那么进行扩容原长度2倍(红黑树转链表是在扩容中进行的,并非在删除中,只判断长度<=6转链表,不判断64)。当他拿到索引后会判断当前位置是否为空,为空则放入,不为空则找next,next原创 2020-11-28 15:27:46 · 2281 阅读 · 4 评论 -
在java或kotlin中 如何解决 Double 大数自动转科学计数的问题
Double类型的值 大小超过一定量时,会自动转科学计数法展示。如何让Double大数也能正常展示呢?java: double CSDN深海呐 = 100000000.00; NumberFormat instance = NumberFormat.getInstance(); instance.setGroupingUsed(false);//设置不使用科学计数器 instance.setMaximumFractionDigits(2原创 2020-09-17 15:56:58 · 2229 阅读 · 1 评论 -
Java 线程池 简化汇总
线程核心类 ThreadPoolExecutor构造方法如下 public ThreadPoolExecutor( int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFac原创 2020-08-12 16:02:43 · 146 阅读 · 1 评论 -
Java Redis
最近深海会逐步整理一些后端的知识和大家一起讨论Redis 本质:使用C语言编写的,基于内存且支持持久化的、高性能的key-value的NoSQL数据库。主要储存访问量较大、更改频繁、安全要求不高的数据。NoSQL:非关系型数据库。通俗的说就是 数据之间无关系,这样就非常容易扩展。基本使用:1.在项目的pom.xml文件中引入Jedis依赖,假设最新版本是x.x.x,<dependency> <groupId>redis.clients</gro原创 2020-07-30 11:22:22 · 278 阅读 · 1 评论 -
Java “+=”与“=+”的区别
区别甚大!例://------------------------------------------------------------------------------int x = 0;x += 1;x += 3;x += 2;那么x = 6;//------------------------------------------------------------------------------int x = 0;x =+ 1;x =+ 3;x原创 2020-07-16 15:16:45 · 2232 阅读 · 4 评论 -
Java 静态代码块与构造方法的执行顺序(子类与父类)
最新整理代码的时候,发现好几年前的一个小测试单元,一起看一下吧public class Text { public static void main(String[] args) { new AA(); } static class AA extends BB { static { System.out.println("1"); } public AA() { System.out.println("2"); } } static class BB {原创 2020-05-31 17:20:47 · 522 阅读 · 1 评论 -
Java 8新标识符“::”的用法,Android中的用法
text.setOnClickListener(this::onClickText);private void onClickText(View view) { text.setText(""); }以上代码等同于:text.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { .原创 2020-05-20 14:12:36 · 1218 阅读 · 1 评论 -
Java 线程的创建方式和启动方式有什么区别?为什么?怎么样合理封装线程?
因为疫情与工作等关系,深海已经三个月没有更新博客了,这次深海给大家分享一下线程的小知识吧线程的创建方式有哪些区别?为什么?1.new Thread().start();2.newMyThread(new MyThreadRunnable()).start();privateclassMyThreadRunnableimplementsRunnable{ @Ov...原创 2020-04-16 14:36:53 · 313 阅读 · 1 评论 -
Java 前后端一起开发需要同时启动哪些软件
如果你想自己开发后台接口,然后自己写页面,那么你的工作环境是这样的:怎么样 惊不惊喜 意不意外原创 2019-08-23 16:50:50 · 924 阅读 · 1 评论 -
Java 四种引用类型(强、弱、软、虚)
以下是深海个人的理解,如有高见欢迎评论区指正,感谢强引用最常见引用类型,就算虚拟机炸裂,GC也不会去动的引用类型.软引用可有可无的引用,只有在内存不足的情况下,GC才会回收它,平时就算GC路过,也不予理会软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中弱引用无论内...原创 2019-06-28 11:44:55 · 343 阅读 · 2 评论 -
Java 建造者模式/链式调用 简单Demo
最近,公司同事要求我给他们讲一下RxJava,为了更清晰的说明其架构,.简单写了一个链式调用的小Demo,分享给大家/* *作者:赵星海 (CSDN-深海呐) *时间:2019年3月19日16:56:32 *用途:链式调用Demo */public class Test_RxJava_Chained { private static Test_RxJava_Chain...原创 2019-03-20 14:43:22 · 693 阅读 · 1 评论 -
Java 反射获取私有属性和方法
Java 反射获取私有属性和方法马上过年了,深海祝看到这篇博客的码农朋友新年快乐!今天下午公司没什么事情,所以写了点小东西,算是给各位的新年小礼物.../* *作者:赵星海 (CSDN-深海呐) *时间:2019/1/31 17:17 *用途:反射私有属性方法Demo */public class Test { p...原创 2019-01-31 17:40:14 · 3810 阅读 · 5 评论 -
Java 一行代码判断String字符串是否为纯符号
一行代码判断String字符串是否为纯符号最近项目中新加的需求我感觉我的构思很好,分享给大家原理:1.将String去除前后空格2.将String中所有符号替换为空3.判断String长度(如全被替换,则长度为0)举例:判断该字符串是否为纯符号组成String string = "@*&&&...原创 2018-12-21 11:44:11 · 3103 阅读 · 10 评论 -
Java 关于单例模式(懒汉式与饿汉式的区别)
Java 关于单例模式(懒汉式与饿汉式的区别)简单说下两个单例模式的不同点懒汉式:1.内部对象非final类型2.线程安全3.用到特定方法的时候才会实例化对象饿汉式:1.内部对象为final类型2.在调用get方法之前,对象就已经实例化完毕// 懒汉式public class Singleton {// 延迟加载保证多线程...原创 2018-10-09 13:41:48 · 2716 阅读 · 2 评论 -
Java 判断String字符串是否是中文
判断String字符串是否是中文String string; //需要判断的内容if(string.matches("[\u4E00-\u9FA5]+")){ ToastUtils.Toast(Activity_authentication.this, "内容是中文");}else{ ToastUtils.Toast(Activity_authentication.thi...原创 2018-09-10 11:22:15 · 9425 阅读 · 8 评论 -
Java 自定义提取字符串中的某一段字符
自定义String过滤举例 :String s = "dsadsada<@#$@#$>啦啦啦123123<&*&*&*>"要去除所有尖括号里的内容 得到结果 "dsadsada啦啦啦123123"第一次执行String s1 = setText(s); 得到结...原创 2018-08-08 14:22:31 · 11665 阅读 · 11 评论