- 博客(24)
- 收藏
- 关注
原创 深刻理解Java中方法调用的参数传递
使用new 在内存中创建了一个新Test对象,后续的修改基于这个新对象,原有的对象没有任何变化,仍旧由main方法中的test引用指向着。如果没有这么做,那么方法内部对test引用的任何修改都会在老对象生效,那么main方法中再去打印该老对象的信息自然就发生变化了。理解的关键就是看方法中有没有调用new方法创建新的对象,并且将test引用指向新的对象。如果这样做了,那么在方法内部对test引用的任何修改都将在新对象上生效。步骤2,调用setS(“2”,test),将test实例的属性s修改为2;
2023-09-13 15:29:13
252
原创 Java面试题:如何实现主线程等待子线程的执行
AQS的各个子类实现,比如可重入锁,可重入读写锁、CountDownLatch等,都是通过LockSuppoort.park()实现线程阻塞,然后把线程加入到阻塞队列中去。然后再通过LockSupport.unpark()实现线程的唤醒;而主线程main中,我们先启动子线程son,并将main作为参数传入其中,最后再阻塞自己;而方式2其实底层实现是基于方式4的,我们看源码就可以看的出来;我们创建一个了子线程son,子线程会将传入其中的线程唤醒;这样,就可以依靠子线程son,唤醒主线程main。
2023-08-13 15:22:40
311
原创 Kafka遇到报错:The group member‘s supported protocols are incompatible with those of existing members
he group member's supported protocols are incompatible with those of existing members
2022-10-27 20:23:30
2838
1
原创 基于Easy-poi实现多Sheet页以及动态表头的excel表格的导出
需求描述生成包含多个Sheet页的Excel表格,并且每个Sheet的表头是动态的。设计方案一个workBook可以分为多个Sheet页,每一个Sheet页面又可以分为title,entity,data 3个部分。详解title:是一个ExportParams类实例,可以用于设置sheet页名和表格名ExportParams userExportParams = new ExportParams("明细","方案1");结果:方案1为Sheet页名,明细为表格最上面一行的题目。enti
2022-05-26 17:06:12
1105
原创 0-1去重面试题中认识java中ListArray.remove()和python中的List.remove方法
0-1去重面试题假定存在一个数组:List={0,0,1,1,0,1,0,0},我们现在需要将所有相邻且重复的0和1去除掉,比如去重后的List为{0,1,0,1,0},那么该如何实现呢?这个面试题是同事在面试社招员工的时候的出的一个简单的算法题,但是在实现算法的过程中发现同样使用remove方法,在java中可以输出正确的结果,但是在python中输出的结果却不正确,下面我就来分析其中的原因。python的错误实现str1 = [0, 0, 1, 1, 0, 1, 0, 0]count = 0
2021-08-18 11:01:05
242
原创 /usr/sbin/mysqld: Can‘t find file: ‘./mysql/plugin.frm‘ (errno: 13)
问题描述年前因为搬迁,公司服务器断电然后服务器关机重启以后,启动mysql失败,出现报错。在/var/log/mysqld.log下查看报错日志,日志截图如下:但是在我本机的mysql数据库的路径下发现,存在plugin.frm文件。但是后续报错信息有一句话:The error means mysqld does not have the access rights to the directory。含义是说mysqld命令没有对 /ibdata1的权限。解决方案既然问题原因知道了,是没有操作权
2021-02-25 16:18:38
822
原创 JDK自动安装及java环境变量自动配置
因为安装jdk和配置环境变量对于初学者往往会比较繁琐,所以我用Inno setup制作了一个自动能够安装jdk和配置环境变量的安装程序。点击安装以后安装显示步骤一步一步进行即可完成安装jdk是1.8.0版本的,安装在C:/Program Files/ java 目录下。环境变量会自动进行配置。百度云提取:链接:https://pan.baidu.com/s/1qOysGLgLEQSL9DQESpFgyw提取码:1234...
2020-12-23 12:42:30
838
1
原创 JAVA_HOME nor the JRE_HOME environment variable is defined
报错情景在Ubutun系统下,安装Tomcat以后进入bin文件夹下,运行./startup.sh,目的是为了启动tomcat,结果出现报错。解决方法首先tomcat运行在jdk环境配置正确的基础上,先查看系统中jdk环境变量的值。$ sudo vim /etc/profile将JAVA_HOME和JRE_HOME所在两行全部复制。进入tomcat/bin文件夹下,运行命令$ sudo vim catalina.sh将上面复制的内容插入到文件中,如下图然后运行$ sudo ./
2020-12-18 18:33:08
274
1
原创 docker安装报错“Package ‘docker-ce‘ has no installation candidate”
问题发现我在公司的Ubutun数据服务器中安装docker时,出现上面的报错。之前在另外一台机器上也安装过docker,照着官网教程来没有一点问题。为什么今天换了台机器就不行了呢?看了网上很多说要换源,然后又是版本什么之类的,繁杂的很,却也没什么用。如果你也遇到了同样的情形,希望我的方法能帮助到你。问题解决docker目前只针对64位的机器,所以你的机器是32位的就无法下载docker-ce。那么我们要查看一下自己的机器是多少位的,使用如下命令:$ sudo arch还有$ uname -
2020-12-17 14:24:40
5898
原创 Linux32位系统下安装及启动Mysql(Ubuntu16.04系统为例)
安装32位mysql因为是在Ubutun系统下,所以直接使用命令:直接使用命令的好处在于系统会自动下载版本适配的mysql,不用再担心版本不兼容的问题$ sudo apt-get install下载过程中会弹出蓝色界面要求输入数据库密码,自己设定即可。启动mysql服务使用下面的命令$ sudo /etc/init.d/mysql start也可以试一下 mysqld start进入mysql数据库中使用下面的命令$ sudo mysql -u root -p然后会弹出下一行让
2020-12-17 14:01:36
2047
4
原创 Docker下安装Tomcat8并实现挂载 详细教程
拉取Tomcat8镜像$ sudo docker pull tomcat:8.5.55-jdk8-openjdk创建Tomcat容器$ sudo docker run -d -p 8080:8080 tomcat:8.5.55-jdk8-openjdk查看运行中的容器,验证容器是否创建成功2.挂载目录在选定路径下创建需要进行挂载的目录,比如创建/home/prod/tomcat目录以后,我们进入该目录,创建挂载目录logs。$ sudo mkdir logs而目录webapps和co
2020-12-03 11:07:08
2184
1
原创 字符数组中 *p[N]与(*p)[N]的区别
首先我写出两个正确的赋值语句:1.char *p[2]={“aaa”,“bbb”};2.char (*p)[2]={ { ‘a’,‘b’} , {‘a’,‘c’} };然后我再写出一个错误的赋值语句和一个正确的赋值语句:错误:char (*p)[2]={ {‘a’,‘b’,‘c’} ,{‘c’,‘d’,‘e’} };正确:char (*p)[2]={ {‘a’,‘b’} , {‘c’,‘d’} , {‘e’,‘f’} };经过比较,可以发现下面的一些规律:*p[2]是一个指针数组,就是一个数组
2020-10-14 21:19:12
708
1
原创 python中对同一文件同时使用read()和readline()/readlines()函数出现冲突
在桌面上新建一个txt文本,文本中随意填写内容。如下图之后使用read()函数和readline()/readlines()函数同时对该文件进行读取,如下图:运行结果如下:可以明显发现read()函数的结果未能打印出来。如果我们将f.read()语句放在f.readline()和f.readlines()之前,运行结果如下:很明显使用了read()函数以后,文件流f像是被占用,所以f.readline()和f.readlines()函数读出的结果均为空。所以在编程中如果同时用到这些函数,则有可能
2020-05-28 10:10:50
1458
原创 Tensorflow安装报错“not a supported wheel on this platform”
1.前言安装tensorflow要考虑很多方面的问题,涉及到你的系统,Anconda以及python和tensorflow的兼容性,版本等方面,所以很难一次性安装成功。我就是在安装的过程中出现林林总总的问题,总是安装不上。也尝试了各种各样的方法,终于在坚持了数天以后完成了安装。因此办法总是有的,不要气馁。2.我的问题我的平台为:Window10(64位系统)+Anconda(清华镜像网站最新...
2020-03-25 08:25:46
1655
1
原创 使用MVC程序完整的实现简单的Student_Servlet
环境配置首先需要的软件有:eclipse,tomcat环境:java环境问题是你要确保这些软件的版本都是兼容的,如果在安装eclipse或者是配置Tomcat Server的时候就出错了,那就要考虑版本兼容的问题了,这些在我的其他博客里有涉及到。MVC程序基本思路以根据兴趣爱好查询Student的姓名学号等完整信息为例,需要的核心文件有下面几个:Student.java(学生类,下面有...
2019-11-02 10:57:15
593
原创 报错信息:Could not load the Tomcat server configuration....详细解决办法,带截图
首先说一下我的问题,我因为Tomcat Server版本是5.0的,导致运行程序出错,所以更换更高版本的Server(8.0),但是更换以后出现上面的错误,解决方法其实不难。第一步:删除你原有的Server,那具体怎么删除呢,看下面的图。![在这里看到最下面的那一栏了吗,依次有标记、属性、server的那一栏,然后点击进入servers->选取你的旧的server->右击之后选...
2019-11-01 20:05:53
6830
原创 eclipse启动失败,提示“发生了错误,请参阅日志文件.log
eclipse启动失败,提示“发生了错误,请参阅日志文件.log因为我的IntelliJ IDEA Community Edition安装的时候没有注意版本,导致很多问题无法处理,所以只能再安装Eclipse,本来以为很简单,但是却出现了一个小问题。话不多说,直接说我的解决方法。网上说的是要删除一些文件,而我发现这个问题在于我的jdk版本和eclipse版本不匹配的缘故(有可能是我的jdk版本...
2019-10-30 21:38:55
16307
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人