Java基础
文章平均质量分 66
病入高黄了
这个作者很懒,什么都没留下…
展开
-
使用多线程(线程池ThreadPoolExecutor读取多个文件、计算多个文件总行数)小demo
包括 ThreadPoolExecutor、CountDownLatch、Callable、RandomAccessFile、Nio1.使用多线程读取多个文件。2.使用多线程获取多个文件的行数后计算几个文件的总行数。原创 2022-06-06 23:59:05 · 1018 阅读 · 2 评论 -
MySQL报Column 时间戳字段 cannot be null
报错信息大致如下java.sql.SQLIntegrityConstraintViolationException: Column ‘xxx’ cannot be null;其中xxx字段为个timestamp(6)我们自己的生产上是正常的,客户独立部署报了上面的错误。 执行insert语句时违反完整性约束。查看代码近期没有被修改过,最终锁定到数据库配置这里通过对比我们和客户的配置发现执行下面的语句时SHOW GLOBAL VARIABLES LIKE '%explicit_default原创 2022-02-15 10:41:52 · 2013 阅读 · 0 评论 -
Spring事务失效的总结
事务失效1. final/static修饰方法Spring事务使用AOP,通过CGLIB或JDK动态代理生成代理类,使用final/static修饰方法会导致无法动态代理,继而导致事务失效。2. 使用非public修饰符修饰事务方法定义了错误的访问权限(非public修饰)就会使事务失效。protected TransactionAttribute computeTransactionAttribute(Method method, @Nullable Class<?> targetC原创 2022-02-14 14:52:12 · 892 阅读 · 3 评论 -
Java集合中的一些细节
集合ListArrayListadd()方法可以添加null,而且可以添加多个nullArrayList底层结构和源码ArrayList中维护了一个Object类型的数组elementData。// transient瞬间的,短暂的 使用transient修饰表示该属性不会被序列化transient Object[] elementData;当创建ArrayList对象时,如果使用的是无参构造方法,则初始elementData容量为0,第一次添加数据,则扩容elementDat原创 2021-06-01 09:53:56 · 85 阅读 · 0 评论 -
Java反射小总结
反射相关Class类分析Class也是类,因此也继承Object类Class类对象不是new出来的,而是系统创建的对于某个类的Class对象,在内存中只有一份,因为类只加载一次每个类的实例都会记得自己是由哪个Class实例所生成通过Class可以完整地得到一个类的完整结构Class对象是放在堆内存中的类的字节码二进制数据,是放在方法区的,有的地方也称为类的元数据Class类常用方法String classpath = "com.xxx.Person";// 获取Person类对应的原创 2021-05-27 09:41:14 · 130 阅读 · 2 评论 -
synchronized小总结
synchronized关键字:互斥锁互斥锁:Java语言中,引入了对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为"互斥锁"的标记,这个标记用来保证在任一时刻,只有一个线程访问该对象。关键字synchronized来与对象的互斥锁联系,当某个对象用synchronized修饰时,表明该对象在任一时刻只能由一个线程访问。同步的局限性:导致程序的执行效率要降低。同步方法(非静态的)的锁可以是this,也可以是其他对象(要求是同一个对象)。同步方法(静态的)的锁为当前类本原创 2021-05-27 09:33:11 · 73 阅读 · 0 评论 -
Java虚拟机-JVM高级特性 读书学习总结 持续更新
目录第二部分 自动内存管理第二章 Java内存区域与内存溢出异常1.运行时数据区域1.1程序计数器1.2Java虚拟机栈1.3本地方法栈1.4Java堆1.5方法区1.6运行时常量池1.7直接内存2.HotSpot虚拟机对象探秘2.1对象的创建第二部分 自动内存管理第二章 Java内存区域与内存溢出异常1.运行时数据区域1.1程序计数器每条线程都需要有一个独立的程序计数器,各条线程之间的计数器互不影响,独立存储,这类内存区域被称为**“线程私有”的内存**特点:线程私有1.2Java虚拟机原创 2021-05-24 10:31:34 · 138 阅读 · 2 评论 -
在Windows下使用Zookeeper
1.下载点击这里下载。在跳转后的下载页面点击红框处下载下载后解压,目录结构如下图所示。在bin目录有个zkServer.cmd,首次运行会报错解决错误1:一般我们的JAVA_HOME路径不会出错,所以我们不考虑自己配置的问题。右键使用vs code或者记事本打开目录中的zkEnv.cmd找到第42行修改为set JAVA_HOME="D:\Program Files\Java\jdk1.8.0_231"修改之后别忘了ctrl+s保存解决错误2:我们返回到上一级,进入原创 2020-07-01 13:13:15 · 613 阅读 · 1 评论 -
在IDEA中设置 live template实现自定义代码补全触发词
ctrl+alt+s打开设置,然后进行如下操作 展开Editor–选择Live Template–点击右侧“+”号–选择“2 Template Group”然后可以按照自己的想法起名,比如我起名为“Java”选中刚刚新建的Group ,“Java”-- 右侧点击“+”号–选“1 Live Template”1.预定义变量使用然后编辑$ start $ 和 $ end $为预定义变量我们还可以自定义点击最下方的 “Define” 定义在什么代码模板中使用你定义的这个触发关键字。勾选Ja原创 2020-06-21 16:44:18 · 770 阅读 · 0 评论 -
某科技笔试程序题
第一题小明的女朋友最喜欢在网上买买买了,可是钱包里钞票有限,不能想买啥就买啥。面对琳琅满目的物品,她想买尽可能多的种类,每种只买一件,同时总价格还不能超过预算上限。于是她请小明写程序帮她找出应该买哪些物品,并算出这些物品的总价格。输入规范:每个输入包含两行。第一行是预算上限。第二行是用空格分隔的一组数字,代表每种物品的价格。所有数字都为正整数并且不会超过10000。输出规范:对每个输入,输出应买物品的总价格。输入示例1:10050 50输出示例1:100输入示例2:18850 4原创 2020-05-28 13:00:58 · 566 阅读 · 0 评论 -
解决SpringBoot整合Mybatis时yml配置文件中 com.mysql.jdbc.Driver报错爆红的问题
打开pom文件,找到mysql依赖,找到<scope>runtime</scope>把它注释掉就好了,原因:他是指定了运行时才会用到,而我们是在编译过程中找不到mysql相关依赖所以会报错,把他注销,他就默认编译时也可以用了好了!...原创 2019-10-16 15:59:31 · 2821 阅读 · 1 评论 -
idea配置tomcat并部署项目
如果你没有tomcat请移步至官网自行下载或者百度云链接https://pan.baidu.com/s/1RONU2YJ50w0uFV4P_Y0C9g提取码:1ktu下载好解压到D:\Program Files\Apache打开idea 新建Java项目–右侧JavaEE菜单下勾选Web Application,记得下面的Create web.xml如果没打勾一定要勾上然后N...原创 2019-09-30 10:44:27 · 1910 阅读 · 0 评论 -
maven的安装配置 for Windows
本篇文章主要介绍如何下载并配置maven1.下载打开浏览器,在搜索栏输入maven,找到官网的链接,点进去。找到Download,单击找到apache-maven-3.6.2-bin.zip 点击,进行下载下载完成后把它解压到一个地方,比如解压到D:\Program Files\Apache2.添加环境变量回到桌面,在此电脑右键-属性进去之后 点高级系统设置点击环...原创 2019-09-09 23:52:20 · 254 阅读 · 0 评论 -
Java,jdk的安装与配置 for Windows
初学Java,如何搞定各种环境的配置,看了这篇文章轻松搞定。本文以JDK8为例演示配置过程。1首先去下载和安装JDK如果你比较懒,直接百度网盘下载我压缩好的。下载后解压放到D盘(只要不是C盘就好)链接:https://pan.baidu.com/s/1BjdQKBBsqpkjvQNnzLFC3g提取码:ts1v或者通过官网下载JDK并安装,官网地址下载地址如下https://ww...原创 2019-09-02 17:43:07 · 223 阅读 · 1 评论 -
IntelliJ IDEA 2018.2安装 for Windows
1、下载不多说,直接甩链接,下载里面的ideaIU-2018.2.3.exe链接:https://pan.baidu.com/s/1ojVJ3JHkVHdIivVvgdUZLg提取码:6sin2、安装双击ideaIU-2018.2.3.exe安装idea这一步选择你的安装路径,建议选择C盘之外的盘,避免占用系统盘空间。我选择安装在D盘,不需要点击Browser,只需要用鼠标选中C...原创 2019-09-23 14:06:45 · 1499 阅读 · 2 评论