搜索内容

包含标签:Java 的文章
  • MultipartFile流读取问题
    其他

    MultipartFile流读取问题

    MultipartFile支持可重复读 跟进源码: 跟进getInputStream()方法实现类StandardMultipartFile(其为StandardMultipartHttpServletRequest类的静态内部类) 跟进part类以及其实现类的方法 跟进fileItem类的方法 继续跟进 如上图,先判断该流是否在内存中,如果不是则在本地(可调试看文件位置),然后新建文件流返回,如果在内存,则新建字节流,其cachedContent参数为原流转成的byte[]数组,因此可重复读。 深入探究其判断是否在内存中方法isInMemory(),跟进发现 对比阈值threshold与当前读位置written,这里理解不是很全,需进一步探究。 注:1.System.arraycopy()为浅复制。 2.ByteArrayInputStream的读是线程安全的(synchronized)。
    admin 今天
  • Java官方文档居然挂羊头,卖狗肉,我的错?
    其他

    Java官方文档居然挂羊头,卖狗肉,我的错?

    今天闲来无事,研究了一下java线程的状态切换,发现一个匪夷所思的事情。 简单来说,就是Java官方文档描述与现实不符。 Java官方文档说,调用Thread.wait(timeout)方法时,线程会进入TIME_WAITING状态。         然而我写了一个测试例子,发现现实并非如此: public class ThreadTest { private final static Object object = new Object(); public static void main(String[] args) { Thread thread = new Thread(new Task(), "thread-1"); thread.start(); } private static class Task implements Runnable { @Override public void run() {
    admin 今天
  • " alt="面试老失败,多半是没准备,这套笔记能拿下 90% 以上面试">
    其他

    面试老失败,多半是没准备,这套笔记能拿下 90% 以上面试

    Github是一个非常棒的资源库,富含大量的数据资源和代码。本次将为大家分享一下Github上面的一些学习资源。 该文档曾在 Github 上线 6 天,共收获 55K+star 的 Java 面试神技(这赞数,质量多高就不用我多说了吧)非常全面,包涵 Java 基础、Java 集合、JavaWeb、Java 异常、OOP、IO 与 NIO、反射、注解、多线程、JVM、MySQL、MongoDB、Spring 全家桶、计算机网络、分布式架构、Redis、Linux、git、前端、算法与数据结构、MyBatis、RocketMQ、Netty、Dubbo。内容非常丰富,已经帮很多人拿下互联网一线公司的 offer。 《Java 面试神技》整理了从业到现在看到的、经历过的一些 Java 面试题,这些面试题的主要来源是一些网站还有 github 上的内容,话不多说,直接上图(文末有获取方式): Linux 专题 Kafka 专题 Kafka 是什么 消费者设计 如何获取 topic 主题的列表 生产者和消费者的命令行
    admin 今天
  • Java剑指 Offer II 090. 环形房屋偷盗(击败100%用户)
    其他

    Java剑指 Offer II 090. 环形房屋偷盗(击败100%用户)

    题目: 一个专业的小偷,计划偷窃一个环形街道上沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。 给定一个代表每个房屋存放金额的非负整数数组 nums ,请计算 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。 示例 : 输入:nums = [2,3,2] 输出:3 解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。 思路: 跟上一题偷钱区别在于上一题的房子排布是线性结构,隔着偷可以从头到尾 这一次是环形结构,也就是上一次的结构但是在结尾时如果你从第一个房子起偷,你就不能偷最后一个房子。如果你从第二个房子起偷,那么可以偷最后一个房子。判断一下就可以。 复杂度: 时间:循环O(n)。 空间:用了Arrays.copyOfRange,O(n)。 代码: //先处理特殊情况
    admin 今天
  • 使用jdbc向数据库插入数据时preparedStatement.executeBatch()报错
    其他

    使用jdbc向数据库插入数据时preparedStatement.executeBatch()报错

    参考
    admin 今天
  • Java程序出现oom如何解决?什么场景下会出现oom?
    其他

    Java程序出现oom如何解决?什么场景下会出现oom?

    Java程序出现oom如何解决?什么场景下会出现oom? 1. Java heap space2. GC overhead limit exceeded3. Permgen space4. Metaspace5. Unable to create new native thread6. Out of swap space7. Kill process or sacrifice child8. Requested array size exceeds VM limit9.Direct buffer memory 1. Java heap space 当堆内存(Heap Space)没有足够空间存放新创建的对象时,就会抛出java.lang.OutOfMemoryError:Javaheap space 错误(根据实际生产经验,可以对程序日志中的 OutOfMemoryError 配置关键字告警,一经
    admin 今天
  • Docker(K8S)环境下开启JMX远程监控
    其他

    Docker(K8S)环境下开启JMX远程监控

    问题引入 JMX(即Java Management Extensions),如果你在网上搜索如何配置JMX,你就会看到这样的一堆配置 -Djava.rmi.server.hostname= -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.rmi.port= -Dcom.sun.management.jmxremote.port= -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 然后你就会发现在docker下,怎么弄都不对。 JMX分析 JMX其实需要注册三个端口,其作用为: 端口1: 接收注册请求,JMX客户端(如jvisualvm)在连接时,需要填写的端口号端口2: 用于远程连接,可以与端口
    admin 今天
  • " alt="川土微带隔离电源的四通道数字隔离器CA-IS3643LW">
    其他

    川土微带隔离电源的四通道数字隔离器CA-IS3643LW

    CA-IS3643LW 带隔离电源的四通道数字隔离器   概述 CA-IS36XX是一款具有集成式高效电源转换器的高性能多通道增强型数字隔离器。集成式DC-DC转换器高效运行,提供最高500mW的隔离式电源,节省空间,可满足各种输入和输出电压配置。该隔离芯片采用电容式耐压隔离,具有更好的隔离电压(VRMS),更高的传输速率(DC-150Mbps),和更强抗干扰能力(CMTI)。该系列产品广泛应用于工业自动化、电机控制、医疗设备、汽车电子、测试设备等各行业,详细参数可参考规格书和选型表。 应用 • 工业自动化 • 电机控制 • 医疗设备 • 汽车电子 • 仪器仪表 特性 • 隔离等级:5000VRMS; • CMTI:±150kV/μs; • 浪涌等级:10KVpk; • ESD等级:8000V(单双边); • 速率:DC-150Mbps; • 工作电压范围:3V~5.5V; • 每通道工作电流:     • 1.5mA/通道@1Mbps,5.0V;     • 5.5mA/通道@100Mbps
    admin 今天
  • SpringBoot——统一 接口返回值和全局异常处理
    其他

    SpringBoot——统一 接口返回值和全局异常处理

    统一接口返回值 1、定义通用的数据返回对象 @Data @Accessors(chain = true) public class GlobalResponse implements Serializable { private Integer code; private String message; private T data; private final String timeStamp = DateUtils.localDateTimeToString(LocalDateTime.now()); public static final String SUCCESS = "成功"; public static final String FAILURE = "失败"; public GlobalResponse(int code, St
    admin 今天
  • swagger应用
    其他

    swagger应用

    创建项目 创建springboot项目 引入依赖 io.springfox springfox-swagger2 2.8.0 io.springfox springfox-swagger-ui 2.8.0  配置swagger2 创建config文件夹,并在其下创建 Swagger2Config,在类上添加注解 @Configuration和 @EnableSwagger2,具体配置如下   @Configuration @EnableSwagger2 public class Swagger2Config {
    admin 今天
  • Java加密与解密的艺术~AES实现
    其他

    Java加密与解密的艺术~AES实现

    AES算法成为DES算法的替代者,其实现也成为其他对称加密算法实现的参考模型。  AES 实现 /** * 2009-10-5 */ package org.zlex.chapter07_3; import java.security.Key; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; /** * AES安全编码组件 * * @author 梁栋 * @version 1.0 */ public abstract class AESCoder { /** * 密钥算法 */ public static final String KEY_ALGORITHM = "AES"; /** * 加密/解密算法 / 工作模式 / 填充方式 * Java 6支持PKCS5Paddi
    admin 今天
  • " alt="启明星辰集团DT总部落地杭州 数据绿洲版图驱动未来发展">
    其他

    启明星辰集团DT总部落地杭州 数据绿洲版图驱动未来发展

    12月1日,启明星辰集团DT(数据时代)总部正式落地于杭州高新区(滨江),与北京IT总部形成南北两个总部基地新格局,并发布数据安全新版图--数据绿洲,将结合杭州领先的数字应用的场景,整合浙江的人才、高校和科研的资源,不断的丰富完善,成为集团面向未来重要的驱动力。杭州市委常委、副市长胥伟华、启明星辰集团董事长严望佳致辞并见签,区委常委丁昌钰致辞并与启明星辰集团高级合伙人、高级副总裁张晓东代表双方签约。 浙江省作为中国数字经济的桥头堡,在数字经济中取得了令人瞩目的成绩,杭州坚决贯彻落实党中央、国务院和省委、省政府关于加快发展数字经济决策部署,一直深入实施数字经济“一号工程”,数字赛道已经成为高新区(滨江)经济发展的最强劲动力源。在面临百年未有之大变局的时刻,在浙江新经济领域、数字经济领域取得重要成绩的时刻,在战略升级的时刻,启明星辰集团将更坚定不移的在杭州建立DT总部,与北京作为集团IT总部遥相呼应,形成南北两个总部基地的新格局。同时,DT时代安全新版图--数据绿洲将结合杭州领先的数字应用场景,整合浙江人才、高校和科研的资源,不断的丰富完
    admin 今天
  • java 正则表达式基础练习
    其他

    java 正则表达式基础练习

    java 正则表达式基础练习 package com.reviewquestions.review_questions.javaBase; /** * asus 2021/12/2 8:59 **/ /* ^ 匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与"\n"或"\r"之后的位置匹配。 $ 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与"\n"或"\r"之前的位置匹配。 * 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配"z"和"zoo"。* 等效于 {0,}。 + 一次或多次匹配前面的字符或子表达式。例如,"zo+"与"zo"和"zoo"匹配,但与"z"不匹配。+ 等效于 {1,}。 ? 零次或一次匹配前面的字符或子表达式。例如,"do(es)?"匹配"do"或"does"中的"do"。? 等
    admin 今天
  • Java 关键字this
    其他

    Java 关键字this

              this关键字只能出现在没有被static修饰的方法中         作用:this关键字表示对当前类某个对象的引用                   (哪个对象调用这个方法,this就指向谁)         1.当方法中的局部变量和全局变量完全一致时,以局部变量为主(Java就近原则)                 调用全局变量通过this关键字(this.属性名)                         示例: public class Demo{ String name; int age; public void display(String name,int age){ this.name=name; this.age=age; } }         2.当this以[this (参数列表) ]的形式出现在构造方法的第一句代码时,表示当前构造方法调用了该类的其他构造方法,通过this的参数列表来匹配          
    admin 今天
  • Java 异常处理
    其他

    Java 异常处理

    Java 实例 - 异常处理方法 以下实例演示了使用 System 类的 System.err.println() 来展示异常的处理方法: class ExceptionDemo { public static void main(String[] args) { try { throw new Exception("My Exception"); } catch (Exception e) { System.err.println("Caught Exception"); System.err.println("getMessage():" + e.getMessage()); System.err.println("getLocalizedMessage():" + e.
    admin 今天
  • swift5基本语法-Self 与self
    其他

    swift5基本语法-Self 与self

    在swift 开发过程中,尤其是第三方库中,我们经常可以看到Self,但是Self与self,它们两个是不一样的,下面我们通过示例来对比下两者的区别。 相信大家都知道self这个关键字的具体作用,它跟OC里的self基本一样,但是Self关键字只能用在类里, 作为函数返回值类型, 表示当前类,限定返回值跟方法调用者必须是同一类型,在定义协议的时候Self用的频率很高,而且当你用错Self的时候编译器会这样提示'Self' is only available in a protocol or as the result of a method in a class 例1:Self关键字用在类里, 作为函数返回值类型, 表示当前类。 class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let objA = TestClass(a: 1, b: 2)
    admin 今天
  • 利用Java反射机制比较两个对象各属性是否一致,对不一致的进行处理
    其他

    利用Java反射机制比较两个对象各属性是否一致,对不一致的进行处理

    这两天有个需求需要对两个对象的内容进行比较,不同的数据进行记录。思考再三,我觉得使用反射机制进行处理更加方便。 这里封装了两个方法。 1.一个是参考网上的信息,获取类中属性的值 /** * * 获取某个类中属性的值 * * @作者: zktian * @创建日期: 2021-12-1 16:42 * @参数: fieldName 属性名 * @参数: o 对象 * @返回值:Object * */ public static Object getFieldValueByName(String fieldName, Object o) { try { String firstLetter = fieldName.substring(0, 1).t
    admin 今天
  • Android中Crash的记录和防护
    其他

    Android中Crash的记录和防护

    Android中Crash的记录和防护 1、崩溃的记录: 创建自定义UncaughtExceptionHandler处理异常 01.定义并设置DefaultUncaughtExceptionHandler 02.存在Throwable时记录异常信息saveCrashInfoToFile 03.异常情况killProcess进程,App强制退出 /** * 异常处理捕获类 */ @SuppressLint("StaticFieldLeak") object CrashHandler : Thread.UncaughtExceptionHandler { private val mLogFormat = SimpleDateFormat("yyyy-MM-dd_HH-mm-ss", Locale.getDefault()) var path = "/sdcard/corelog/C
    admin 今天
  • JUC学习小记
    其他

    JUC学习小记

    admin 今天
  • Java泛型方法
    其他

    Java泛型方法

    Java泛型方法 在学习Java泛型方法之前,我希望你们针对于Java泛型类有一定的了解并且可以熟练的使用。若了解并不是很详细。可以观看我写的另一篇文章 (也是我写的) Java泛型类 来了解一下。 呢么我们速度过一下泛型方法。其实泛型方法并不难理解。 我们直接上代码来演示一下。 首先我们有两个Java类,一个是存在泛型方法的类,一个是Test测试类。名称随便给都可以。 public class Param { public static T param(T t) { return t; } } public class Test { public static void main(String[] args) { String aaa = Param.param("aaa"); Integer
    admin 今天
  • " alt="九脉雾晶华草本雾化器深刻解读">
    其他

    九脉雾晶华草本雾化器深刻解读

    什么是九脉雾晶华草本雾化器? 九脉雾晶华草本雾化棒作为国内首家将雾化技术应用到大健康领域的本草雾化产品,雾化液为甄选纯正草本植物,它参考了《本草纲目》相关配方,运用药食同源相关理论,精心萃取草本原液和相关专家教授合作,成立各种实验室并获得相关实验数据,结合利用现代生物科学技术开发出这款健康轻养产品。 九脉雾晶华草本雾化棒,0尼古丁,0焦油,0成瘾成分,运用超冻干技术、分子破壁分离技术,保留纯粹草本原液,逐步转化为小分子更易被人体吸收。自有草本植物种植基地,让您的每一次雾化都吸的舒,关爱肺,我们是认真的。 九脉雾晶华本草雾化器对比传统雾化器优点 传统医用雾化器体积太大,机器工作受动作限制,吸收相关药物也只有60%,而且出雾量较大,出雾量大极易发生咳嗽,每分钟的雾化及雾的浓度越大,进入呼吸道的时候对人体呼吸道刺激更大。 九脉雾晶华草本雾化棒则是通过提取草本中的相关成分,采用相关技术保留天然草本活性,利用超频振动分子破壁留存小分子溶入雾化液,在你“吸气→呼气”间就吸收草本植物的有益成分。方便随身携带,随时随地就可体验,已经得到市场一
    admin 今天
  • 上传文件至服务器
    其他

    上传文件至服务器

    直接贴代码 public class UploadFileToService { public static String upload(MultipartFile file, String savePath) { // 新文件名长度 int newFilenameLength = 16; // 新文件名组合类型 int newFilenameType = RandomStringUtil.FIGURE_LOWER_CASE_POWER_CASE; // 新文件名 String newFilename = RandomStringUtil.create(newFilenameLength, newFilenameType); try { File parentFile = new File(savePath); // 保存文件夹不存在则创建 if
    admin 今天
  • " alt="川土微带隔离电源的四通道数字隔离器CA-IS3643LW">
    其他

    川土微带隔离电源的四通道数字隔离器CA-IS3643LW

    CA-IS3643LW 带隔离电源的四通道数字隔离器   概述 CA-IS36XX是一款具有集成式高效电源转换器的高性能多通道增强型数字隔离器。集成式DC-DC转换器高效运行,提供最高500mW的隔离式电源,节省空间,可满足各种输入和输出电压配置。该隔离芯片采用电容式耐压隔离,具有更好的隔离电压(VRMS),更高的传输速率(DC-150Mbps),和更强抗干扰能力(CMTI)。该系列产品广泛应用于工业自动化、电机控制、医疗设备、汽车电子、测试设备等各行业,详细参数可参考规格书和选型表。 应用 • 工业自动化 • 电机控制 • 医疗设备 • 汽车电子 • 仪器仪表 特性 • 隔离等级:5000VRMS; • CMTI:±150kV/μs; • 浪涌等级:10KVpk; • ESD等级:8000V(单双边); • 速率:DC-150Mbps; • 工作电压范围:3V~5.5V; • 每通道工作电流:     • 1.5mA/通道@1Mbps,5.0V;     • 5.5mA/通道@100Mbps
    admin 今天
  • 【Java-Set转List】
    其他

    【Java-Set转List】

    Java-Set转List //构造Map数据 Map map = new HashMap(); map.put("ele1", "小樱"); map.put("ele2", "若曦"); map.put("ele3", "晴川"); Set set = map.keySet(); //Set转List,方法一 : ArrayList(Collection c) List list1 = new ArrayList(set); for(int i = 0; i < list1.size(); i++){ System.out.println("list1(" + i
    admin 今天
  • IDEA 执行jni加载dll文件报错Process finished with exit code -1073741819 (0xC0000005)
    其他

    IDEA 执行jni加载dll文件报错Process finished with exit code -1073741819 (0xC0000005)

    如果您使用 Cygwin 的 GCC,目标可能是本机 Windows 或 Cygwin。如果目标是本机Windows,则可以在Windows 下分发和运行代码。如果目标是 Cygwin,则需要分发 Cygwin 运行时环境 ( cygwin1.dll)。这是因为 Cygwin 是 Windows 下的 Unix 模拟器。 所以如果你使用Cygwin编译处理的文件,在执行命令时会出现内存报错: 对于 64 位 JDK,您需要找到生成 64 位本机 Windows 目标的编译器。这是由 MinGW-W64 提供的。您可以在 Cygwin 下安装 MinGW-W64,也可以直接下载MinGW-W64; 通过选择包“ mingw64-x86_64-gcc-core”(C 编译器)和“ mingw64-x86_64-gcc-g++”(C++ 编译器)。可执行文件分别是"x86_64-w64-mingw32-gcc“(
    admin 今天
  • " alt="Java 内存区域和GC机制(下)">
    其他

    Java 内存区域和GC机制(下)

    年老代(Old Generation):对象如果在年轻代存活了足够长的时间而没有被清理掉(即在几次 Young GC后存活了下来),则会被复制到年老代,年老代的空间一般比年轻代大,能存放更多的对象,在年老代上发生的GC次数也比年轻代少。当年老代内存不足时, 将执行Major GC,也叫 Full GC。      可以使用-XX:+UseAdaptiveSizePolicy开关来控制是否采用动态控制策略,如果动态控制,则动态调整Java堆中各个区域的大小以及进入老年代的年龄。   如果对象比较大(比如长字符串或大数组),Young空间不足,则大对象会直接分配到老年代上(大对象可能触发提前GC,应少用,更应避免使用短命的大对象)。用-XX:PretenureSizeThreshold来控制直接升入老年代的对象大小,大于这个值的对象会直接分配在老年代上。   可能存在年老代对象引用新生代对象的情况,如果需要执行Young GC,则可能需要查询整个老年代以确定是否可以清理回收,这显然是低效的。解决的方法是,年老代中维护一个512 byte的块—
    admin 今天
  • Command line is too long. Shorten command line for ServiceStarter or also for Application
    其他

    Command line is too long. Shorten command line for ServiceStarter or also for Application

    idea解决Command line is too long. Shorten command line for ServiceStarter or also for Application报错 找到 .idea\workspace.xml; 找到,在里面添加即可
    admin 今天
  • JDBC访问Mysql数据库,实现增删改查
    其他

    JDBC访问Mysql数据库,实现增删改查

    一、下载驱动 下载MySQL的驱动包,然后将包导入到集成开发环境中 二、加载驱动 导入包之后,通过语句加载驱动 Class.forName("com.mysql.jdbc.Driver"); 三、建立连接 DriverManger类提供了两种用于建立连接的类方法(static方法) Connection getConnection(java.lang.String,java.lang.String,java.lang.String); Connection getConnection(java.lang.String); 这两个方法都可能抛出SQL Exception异常,都返回一个Connection对象 如下: String url="jdbc:mysql://localhost:3306/student?useSSL=false&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowPub
    admin 今天
  • Spark – 大规模数据去重
    其他

    Spark – 大规模数据去重

    一.引言 场景 : 商品 product 每日总销售记录量级 亿 级别起,去重 product 量大概 万 级别。每个商品有一个 state 标识其状态,该状态共3个值,分别为 "A", "B","C"。 统计: (1) 三个 state 下 product 的总量 (2) 对应 state 下 product 去重后的量 第一个统计很简单,构造 sc.longAccumulator 遍历统计数量即可,第二个统计每个 state 下有亿级别的 value ,去重时有严重的数据倾斜且数据去重规模很大,亿级别去重至万级别,不断优化代码最终达到快速大数据去重。 二. 尝试 1.GroupBy + ToSet 第一版按最基本的去重写法实现,构造 (state, product)  的 pairRDD,随后按 state groupBy 分组,将得到的全部 product toSet 达到去重的效果,最终获取 state + set.size 达到统计目的: val re = sc.textFile(input).map(l
    admin 今天
  • 算法练习(三)
    其他

    算法练习(三)

    1.二分查找 /** * 二分查找 * * @param arr 数组 * @param target 目标值 * @return int 返回index * @author huikf * @since 2021/12/2 11:01 */ private static int binSearch(int[] arr, int target) { Arrays.sort(arr); int end = arr.length - 1; int start = 0; int mid; while (start < end) { mid = (start + end) >> 1; if (ta
    admin 今天
  • java中JSON转含泛型对象(Controller的@RequestBody)
    其他

    java中JSON转含泛型对象(Controller的@RequestBody)

    参数请求中没有使用框架直接转对象,目的是需要将接受到的请求进行打印,避免框架转对象时属性信息丢失,导致接收数据不完整,或者查找类型转换错误原因时的特殊处理。 String request(@RequestBody String strParam) {     System.out.println(strParam);     APIRequest request= JSON.parseObject(strParam,new TypeReference>(){});     UserInfo userInfo = request.getData("data"); } 这里第一个参数使用字符串类型。 第二个参数构造了一个对象需要以new开头,TypeReference<>的括号里面是呆泛型的数据类型, 以(){}结尾。
    admin 今天
  • 池化思想 连接池、线程池
    其他

    池化思想 连接池、线程池

    对对象的池化 在池中创建一些对象,使用时获取,用完放回。 池子是数组、集合等。 字符串常量池、数据库连接池、线程池 文章目录 数据库连接池jdbcjdbcUtils 工具类数据库连接池spring jdbc:jdbcTemplate 数据库连接池 jdbc 目的:使用java操作数据库 定义了一套操作所有关系型数据库的规范(接口) 对应每种数据库,会有不同的实现类。这个实现类就是数据库驱动。 jdbc:接口 数据库驱动:接口的实现类 jdbcUtils 工具类 数据库连接池 getConnection():从连接池中获取连接对象 close():归还连接对象 两种技术: C3P0、druid(阿里的) spring jdbc:jdbcTemplate 执行sql、获取结果、把结果封装为对象 升级 获取结果、把结果封装为对象,被spring封装了,程序员只用写出sq
    admin 今天
  • Java剑指 Offer II 089. 房屋偷盗(击败100%用户)
    其他

    Java剑指 Offer II 089. 房屋偷盗(击败100%用户)

    题目: 一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响小偷偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组 nums ,请计算 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例 : 输入:nums = [1,2,3,1] 输出:4 解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。      偷窃到的最高金额 = 1 + 3 = 4 。 思路: 和上一题基本相同。动态规划 用dp[n]来表示前n座房子能偷得最多的钱 前n座房子最多偷的钱要么就是偷到了n-1座房子,这个时候就不能偷n的钱了 此时dp[n] = dp[n-1]; 还有一种可能性,就是当前房子的钱加上前n-2间房子钱要大于这个前n-1房子钱 此时dp[n] = dp[n-2]+nums[n] 两者取大就可以了 可以从第一间或者第二间房子起偷。 可以优化一下空间复杂度
    admin 今天
  • Java基础知识-Java程序初始化的顺序
    其他

    Java基础知识-Java程序初始化的顺序

    Java程序的初始化一般遵循以下三个原则(优先级依次递减): 1)静态对象优先于非静态对象初始化,其中,静态对象只初始化一次,而非静态对象可能会初始化多次。 2)父类优先于子类进行初始化。 3)按照成员变量定义顺序进行初始化。 具体执行顺序: 父类静态变量→父类静态代码块→子类静态变量→子类静态代码块→父类非静态变量→父类非静态代码块→父类构造方法→子类非静态变量→子类非静态代码块→子类构造方法。
    admin 今天
  • IDEA GitHub Push failed unable to access解决办法
    其他

    IDEA GitHub Push failed unable to access解决办法

    问题 今天往github push代码的时候报了以下错误: 问题相关 我们连接github代码仓库的时候,一般会用到下边俩种连接方式,一个是HTTPS,一个是SSH。但是国内用HTTPS的话经常会连接失败,所以一般推荐使用SSH这个连接 解决方法 我们先看一下idea push代码的页面,这种情况大概率是因为使用了默认的HTTPS连接方式。 接下来,我们添加一个SSH连接方式。 点击上图红框中间的单词,我的是origin,也可能是别的其他单词 点击Define remote 填连接的Name和URL,URL就填SSH链接地址,Name名字随便(如ssh-git) 更改push方式,点origin,选择ssh-git,然后点Push即可 成功
    admin 今天
  • VUEX的应用
    其他

    VUEX的应用

    安装VUEX npm install vuex --save 模块化打包时候使用以下语句 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) 浏览器并没有实现 Promise 时候 npm install es6-promise
    admin 今天
  • vue Excel文件上传
    其他

    vue Excel文件上传

    使用element组件el-upload 上传文件
    文件判断 beforeUpload(file){ console.log(file,'文件'); this.files = file; const extension = file.name.split('.')[1] === 'xls'
    admin 今天
  • JDK1.8源码学习–lang包(Cloneable)
    其他

    JDK1.8源码学习–lang包(Cloneable)

    前言 月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂) 央是一片海洋,海乃百川,代表着一块海绵(吸纳万物) 泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出) 月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容 希望大家一起坚持这个过程,也同样希望大家最终都能从零到零,把知识从薄变厚,再由厚变薄!   一.Cloneable的作用:    直接看源码注释(我的翻译可能不太准,如果道友们有更棒的理解,可以留言或者私信) /** * A class implements the Cloneable interface to * indicate to the {@link java.lang.Object#clone()} method that it * is legal for that method to make a * field-for-field copy of instances of that class. * 1.一个类实现了Cloneable接口
    admin 今天
  • 太难了,让程序员崩溃的 8 个瞬间
    其他

    太难了,让程序员崩溃的 8 个瞬间

    大家好,我是业余码农。程序员真是一个看起来挺牛逼,实际上很悲催的职业。 虽然说用代码创造世界是一件很爽的事情,但很多时候可能某个瞬间就会被整破防,情绪一激动一上头来那可是啥是都干得出来! 最近做需求比较烦躁,时常让我感觉到崩溃。有时候不仅app crash了,人也崩溃了。于是乎总结了一下让程序员 crash 的 8 个瞬间。 一、当产品变更需求时 作为开发的死对头,产品经理的存在一定是为了不让程序员好过才被设立出来的吧。 就像是为了防止物种入侵一样,产品的存在就是制约程序员过度繁殖,从而导致生态毁灭。 而产品的有效武器大概就是通过不断的修改需求,来达到控制程序员数量的目的。 当产品经理在需求群里at某个程序员的时候,大概率准是没好事的。所以在产品经理开始at你,让你修改需求时,大概是想打人的心都有了吧。 然而最可怕的是,当你辛辛苦苦百度谷歌了几天,用了一系列非常极客的技术来实现了某个功能。
    admin 今天
  • 【无标题】java开发步骤
    其他

    【无标题】java开发步骤

    1.public class Hello  表示Hello是一个类,是public公有的类 2.Hello{  }表示一个类的开始和结束 3.public static void main(String[ ] args)  表示一个主方法,即我们程序的入口 4.main( ) { } 表示方法的开始和结束 5.System.out.println("hello world~");表示输出"hello world~"到屏幕 6.;表示语句结束 public class Hello{ //编写一个main方法 public static void main(String[] args){ System.out.println("hello,world~"); } }
    admin 今天
  • java leetcode之[简单]844. 比较含退格的字符串
    其他

    java leetcode之[简单]844. 比较含退格的字符串

    题目的链接在这里:https://leetcode-cn.com/problems/backspace-string-compare/ 目录 题目大意一、示意图二、解题思路StringBuffer 题目大意 给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,请你判断二者是否相等。# 代表退格字符。 如果相等,返回 true ;否则,返回 false 。 注意:如果对空文本输入退格字符,文本继续为空。 一、示意图 二、解题思路 StringBuffer StringBuffer 代码如下: class Solution { public boolean backspaceCompare(String s, String t) { StringBuffer sb1=new StringBuffer();
    admin 今天
  • " alt="26岁师妹面试不下8家大厂,最终入职阿里,面试复盘">
    其他

    26岁师妹面试不下8家大厂,最终入职阿里,面试复盘

    喜讯,师妹进阿里了! 面试了不下8家大厂,2天前接到阿里Offer,便火速给我发了这份热乎的面试笔记,果然干货满满,下面是3轮面经供大家参考。 基本情况 普本 / 软工 / 3年经验 11月份通过前同事的内推阿里淘特,简历评估大概有一个星期,就接到了电话面试,通过。25号请假飞到杭州参加专场面试,次日收到了通过通知。30号进行HR面。昨天收到邮件,上岸了! 阿里淘特Java开发面试复盘(P6) 一面 字符串底层的数据结构? 数组有什么特点? 数组拷贝有哪些方面考虑? 如果数组很大没有连续空间怎么处理? 常用集合用过哪些?说下 linkedlist 底层结构? 双向链表和单向链表区别? 什么情况下需要重写 equals 和 hashcode? 冲突怎么解决,几种方案? concurrentHashMap 中 1.7 和 1.8 区别? 线程的几种状态以及他们是如何切换的? 二面 讲下代表项目?目前的并发量怎么样? 数组怎么存储的?数组拷贝需要考虑什么?新数组容量+数组大小 ArrayL
    admin 今天
  • JDBC数据库连接
    其他

    JDBC数据库连接

    properies配置文件 java的配置文件通常的扩展名为.properties的文件,文件以“键=值”的形式储存,为数据库添加的配置文件会被命名为datebase.properties。 创建步骤: 1.在src下新建一个File文件命名为datebase.properties 2.编辑文件(一般情况下除了数据库名外,其他东西都是固定的)。可以有多个url连不同的库,但url名要不同 driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/hospital?serverTimezone=GMT-8&useUnicode=true&characterEncoding=utf-8 username=root password=123456 DAO 模式编程 采取面向接口编程,降低代码间的耦合性,提高代码的可扩展性,比如上面配置
    admin 今天
  • CDK Deploy
    其他

    CDK Deploy

    sns-streaming-cn-stack This project is developed with CDK in TypeScript. 1. Prerequisites for CDK deploy from local Install and configure CDK 2. AWS service deployed 2.1 ApiGateWay Post API with IP white list, which will only allow AWS SNS IP range and target VPC NAT Gateway to access # 1. run the below steps, you will get two files: ip-ranges.json, ip-ranges-list.txt cd sns-streaming-cn-stack/ node up
    admin 今天
  • " alt="川土微带隔离电源的四通道数字隔离器CA-IS3642LW">
    其他

    川土微带隔离电源的四通道数字隔离器CA-IS3642LW

    CA-IS3642LW 带隔离电源的四通道数字隔离器   概述 CA-IS36XX是一款具有集成式高效电源转换器的高性能多通道增强型数字隔离器。集成式DC-DC转换器高效运行,提供最高500mW的隔离式电源,节省空间,可满足各种输入和输出电压配置。该隔离芯片采用电容式耐压隔离,具有更好的隔离电压(VRMS),更高的传输速率(DC-150Mbps),和更强抗干扰能力(CMTI)。该系列产品广泛应用于工业自动化、电机控制、医疗设备、汽车电子、测试设备等各行业,详细参数可参考规格书和选型表。 应用 • 工业自动化 • 电机控制 • 医疗设备 • 汽车电子 • 仪器仪表 特性 • 隔离等级:5000VRMS; • CMTI:±150kV/μs; • 浪涌等级:10KVpk; • ESD等级:8000V(单双边); • 速率:DC-150Mbps; • 工作电压范围:3V~5.5V; • 每通道工作电流:     • 1.5mA/通道@1Mbps,5.0V;     • 5.5mA/通道@100Mbps
    admin 今天
  • Java Platform Standard Edition 8 Documentation
    其他

    Java Platform Standard Edition 8 Documentation

    JDKJava Language Java LanguageTools &Tool APIs javajavacjavadocjarjavapjdepsScriptingSecurityMonitoringJConsoleVisualVMJMCJFRJPDAJVM TIIDLRMIJava DBDeploymentInternationalizationWeb ServicesTroubleshootingJREDeployment Java Web StartApplet / Java Plug-inUser InterfaceToolkits JavaFX SwingJava 2DAWTAccessibilityDrag and DropInput MethodsImage I/OPrint ServiceSoundJava SEAPIIntegrationLibraries IDLJDBCJNDIRMIRMI-IIOPScriptingCompactProfilesOther B
    admin 今天
  • JEECG低代码平台
    其他

    JEECG低代码平台

    推荐个低代码平台 https://gitee.com/jeecg
    admin 今天
  • docker构建jdk基础镜像
    其他

    docker构建jdk基础镜像

    下载jdk 点击跳转下载界面在/opt目录下新建baseImage目录,并上传tar.gz包到该目录下 新建Dockerfile文件 在该目录下新建Dockerfile文件 /** 基于centos:7基础镜像构建 **/ FROM centos:7 /** 作者 **/ MAINTAINER zfl /** 创建目录 **/ RUN mkdir /usr/local/docker /** 进入该目录下 **/ RUN cd /usr/local/docker /** 将jar包添加到/usr/local/docker目录下并解压 **/ ADD jdk-8u271-linux-x64.tar.gz /usr/local/docker /** 环境变量配置 **/ ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_271 ENV CLASSPATH=.:$JAVA_HOM
    admin 今天
  • 安装tomcat并将其配配置到IDEA当中
    其他

    安装tomcat并将其配配置到IDEA当中

    文章目录 前言安装tomcat启动tomcat测试tomcat是否启动成功IDEA配置tomcat 前言 网上有很多安装和配置的教程,但是好多都比较杂乱,刚好今天需要去部署一个java web项目,需要配置tomcat服务器。 这是我自己部署时的步骤,保姆级教学,希望能对你有所帮助 安装tomcat 打开tomcat官网:https://tomcat.apache.org/ 将tomcat压缩包解压,tomcat解压即为安装成功 启动tomcat Tomcat服务器要想运行,需要先有jre,所以要先安装JDK,配置java运行环境。 ​ 配置环境变量 JAVA_HOME=JDK的根路径(JAVA_HOME=C:\Program Files\Java\jdk1.8.0_221) CATALINA_HOME=Tomcat服务器的根路径(CATALINA
    admin 今天
  • java实现Http(get、Post)请求
    其他

    java实现Http(get、Post)请求

    java实现Http(get、Post)请求 1.工具类创建 package com.ipc.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.util.List;import java.util.Map; public class SendHttp { /** * 向指定URL发送GET方法的请求 * * @param url 发送请求的URL * @param param 请求参数,请求参数应该是 name1=value1&na
    admin 今天