- 博客(31)
- 资源 (11)
- 收藏
- 关注
原创 ThreadLocal的使用原理及内存泄漏原因
ThreadLocal的使用原理及内存泄漏原因 ThreadLocal类,字面意思是本地变量,ThreadLocal可以为在每个线程中都创建一个副本,每个线程可以访问自己内部的副本变量。 1.API使用 简单看看如何使用这个类: public class ThreadLocalTest { public static void main(String[] args) { ThreadLocal<String> name = new ThreadLocal<>(
2021-08-06 09:28:57
369
原创 read tcp 172.17.0.12:48092->34.195.201.174:443: read: connection reset by peer Docker错误
服务器安全组没加报错的端口48092,我碰到的有两次不同的端口报错,58218和48092,加上就好了
2021-07-22 13:38:20
5537
2
原创 volatile关键字是如何禁止重排序的
Volatile关键字是如何禁止重排序的? 先说结论:由于对volatile变量的复制操作之后会加上一句“addl$0x0,(%esp)”指令操作,而这个额外添加上的指令和后续对volatile操作的其他指令没什么关系,根本没有必要把这两个指令放在一起,没有优化的空间。 有个朋友在阅读周志明老师的《深入理解Java虚拟机》时,发现书中是这么解释Volatile关键字可以禁止重排序的: 那为何说它(volatile)禁止指令重排序呢?从硬件架构上讲,指令重排序是指处理器采用了允许将多条指令 不按程序规
2021-04-24 16:03:22
1151
原创 SpringBoot配置文件无效,有标识却报错。
今天写项目的时候发现自己的 YAML 文件的内容没法生效,但IDEA中是能看到文件变成了配置文件的标识。 仔细检查发现这个文件与其他文件有所区别: 就是它没有后缀。究其原因是在创建文件的时候,没有先确定文件格式,而是像下面一样选择的: 而这样的文件竟然是没有后缀的,真是坑爹了。从文件属性里也能看出来,确实没有后缀。 猜测可能是IDEA的锅。 ...
2021-04-12 14:00:23
655
原创 Nginx反向代理、负载均衡
Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。 1.功能特点 反向代理 负载均衡 动静分离 并且Nginx能够支持高达 50,000 个并发连接数的响应,Nginx选择了 **epoll **和 **kqueue**作为开发模型。 2.反向代理 2.1正向代理 在客户端没办法直接访问的前提下,找一个服务器帮忙访问再将数据传回来,比如玩游戏的加速器VPN等。 可以看出来,正向代理是对客户端的代理,对服务端隐藏了访
2021-04-10 15:31:02
148
原创 Volatile关键字可见性
Volatile关键字可见性 Java中volatile关键字用来修饰需要在多个线程之间保证修改可见性,但它不仅仅只用来保证被volatile修饰的变量,也可以保证同类实例中其他变量的可见性。 class MyTest{ static class MyClass{ public int years; private int months; private volatile int days; public void update()
2021-04-06 19:40:06
171
原创 ReentrantLock是怎么保证线程安全中的可见性的?
ReentrantLock是怎么保证线程安全中的可见性的? 众所周知,可重入锁ReentrantLock可以用来实现线程安全(可见性,有序性,原子性),其中有序性和原子性都能理解,那么可见性是如何保证的呢? 1.锁中更改volatile变量 class MyTest{ static class MyClass{ public volatile int a = 0; public int b = 0; } public static void main(
2021-04-06 19:05:38
1119
1
原创 Java内部类与接口回调
Java内部类与接口回调 1.内部类 内部类顾名思义就是定义在一个类中的类。内部类可以分为:普通内部类、静态内部类、局部内部类、匿名内部类。 2.普通内部类 1.定义方式 将内部类定义在一个类的方法外,且非static修饰的就是普通内部类。内部类限定词可以为public、private、protected。 当为private时,只有在外部类的方法中可以构造它。 当为protected时,需要写限定词为public的内部类构造函数才能在子类中调用构造函数。 class Outer{ private
2021-02-21 09:02:13
424
原创 细说为什么重写equals必须要重写hashCode
为什么重写equals必须要重写hashCode 1.一些误区 重写了equals不重写hashcode并不会报错,只是逻辑上会出错。 并不是每次重写equals都需要重写hashcode,但推荐都写上。 2.为什么要重写equals 要理解重写hashcode的必要性,我们先来讲讲为什么要重写equals。原因也很简单,默认的equals方法不够看了,需要给它升 级一下。 先看看所有类的祖宗Object类中equals方法的代码,这可以让我们理解为什么要重写equals。 public boolean
2021-02-16 15:34:57
1832
2
原创 Java向上转型
Java向上转型 1.向上转型 1.1 无重载情况 在平常的学习中,我们都知道继承是"is-a"关系,即子类属于超类的一,比如学生是人。我们一般都把学生和人两个类分别使用。如果我们把学生当作人来使用,就是向上转型。 public class FatherNewSon { public static void main(String[] args) { People people = new Student(); people.display(); Sy
2021-02-15 12:55:51
1057
2
原创 Java继承总结
Java继承总结 1. 继承的结果 1.1 继承的限定词 在Java中只有公有继承,而不像C++那般复杂。可以简单的理解为子类所继承到的内容都被超类属性和方法的限定词所限定,只受其影响。 范围 public protected default private 同类 √ √ √ √ 同包子类 √ √ √ 非同包子类 √ √ 非同包非子类 √ tips1:注意protected和default的区别 tips2:private子类能不能继承到超类的属性将在下面详细介绍
2021-02-15 09:39:58
360
2
原创 实体类中的类属性找不到nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘data‘ not foun
今天在写Mybatis业务时发现一个问题,网上也没找到解答,所以把解决方法发出来供大家参考一下。 1.问题 在Mybatis的parameterType里,我传入了如下的参数: public class PageModel<T> { private int beginIndex; private int currentPageNo; private int pageSize = 20; private T data; } 就是在实体类里有一个类变量da.
2021-01-28 10:59:05
610
原创 IDEA中log文件显示问号且双击无法打开
在MyBatis项目的xml配置文件里,不要使用package来指定要用的包,不然就会在log文件里产生乱码,从而打不开! 解决方法:typeAliases里使用typeAlias,mapper里使用class或者resource来导包。
2021-01-01 14:00:43
1964
原创 Java图形界面文字乱码
用Java的GUI画的图里,中文字变成了口口口。 解决方法: 在IDEA中,按如下路径:RUN -> Edit Configuration -> VM options,加上 -Dfile.encoding=GB18030 ,然后应用就可以了。 就可以了。
2020-11-21 22:34:25
1876
原创 Java和matlab混合编程时Java代码参数不一致的问题
先说结论:源码是可变参数,可以传递多个参数给它,第一个参数是要返回的值的个数。 问题描述: 在Matlab中,我写了如下的代码: 可以看到,这个函数需要传递两个参数。 在IDEA里导入jar包,试图调用函数的时候,报错。 调用代码如下: 报错如下: 提示输入参数太多。点进去源码: public void lagrange(List var1, List var2) throws MWException { this.fMCR.invoke(var1, var2, sLagrange
2020-11-21 22:13:19
617
原创 浏览器响应了css文件,但不显示
写网页的时候发现css文件没起作用,在浏览器里查看源代码发现这样的问题。 响应里也确实出现了css文件 后来发现是在过滤器在设置页面编码格式的时候,把这个页面也过滤了,去掉过滤这个页面就好了。 ...
2020-11-14 23:22:51
483
原创 什么是JDBC?一文看懂
JDBC 什么是JDBC : Java连接数据库!(Java DataBase Connect) 以前如果公司更换了数据库,就需要重写关于数据库的代码,为了解决这样的问题,就在各自厂家数据库上再增加一层,就是JDBC。 需要jar包的支持: java.sql javax.sql mysql-connetor-java… 连接驱动(必须要导入) 实验环境搭建 CREATE TABLE users( id INT PRIMARY KEY, `name` VARCHAR(40),
2020-11-14 17:43:24
606
原创 Filter实现权限拦截
权限拦截 用户登录之后才能进入主页! 在登录页面用户登录之后,向Sesison中放入用户的数据 进入主页的时候要判断用户是否已经登录; 没有用户不能进入主页! 1.servlet+jsp 分为3个页面:登录首页,密码正确页,密码错误页。在登录首页输入正确的信息后,进入密码正确页,密码错误进入密码错误页,无法直接访问密码正确页。 success.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <h
2020-11-13 21:24:14
336
原创 JavaWeb监听器
12、监听器 实现一个监听器的接口;(有n种监听器) 编写一个监听器 实现监听器的接口… package com.bin.linstener; import javax.servlet.ServletContext; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; //统计网站在线人数:统计Session public class onlineCountListene
2020-11-12 22:27:10
139
原创 骂人变成**是怎么做到的——过滤器Filter
11 、Filter Shiro安全框架技术就是用Filter来实现的 Filter:过滤器 ,用来过滤网站的数据,符合条件放行,不符合条件不放行; 处理中文乱码 登录验证…. (比如用来过滤网上骂人的话,我***我自己 0-0) 过滤器就是Servlet。 Filter开发步骤: 导包 编写过滤器 导包不要错 (注意) 实现Filter接口,重写对应的方法即可 重写Filter的方法 package com.bin.filter; import javax.servlet.*;
2020-11-12 20:55:42
1237
1
原创 JavaWeb之MVC三层架构
10、MVC三层架构 什么是MVC: Model view Controller 模型、视图、控制器 10.1、以前的架构 用户直接访问控制层,控制层就可以直接操作数据库; servlet--CRUD-->数据库 弊端:程序十分臃肿,不利于维护 servlet的代码中:处理请求、响应、视图跳转、处理JDBC、处理业务代码、处理逻辑代码 架构:没有什么是加一层解决不了的! 程序猿调用 ↑ JDBC (实现该接口) ↑ Mysql Oracle SqlServer ....(不同厂商) 10
2020-11-12 20:52:50
167
原创 什么是JavaBean?
JavaBean 实体类 JavaBean有特定的写法: 必须要有一个无参构造 属性必须私有化 必须有对应的get/set方法; 一般用来和数据库的字段做映射 ORM(Object Relational Mapping); ORM :对象关系映射 表—>类 字段–>属性 行记录---->对象 people表 id name age address 1 秦疆1号 3 西安 2 秦疆2号 18 西安 3 秦疆3号 100 西安 class People{
2020-11-12 10:35:39
153
1
原创 一文看懂JSP
8、JSP 8.1 什么是JSP Java Server Pages:java服务器端页面,也和Servlet一样,用于动态Web技术! 最大的特点: 写JSP就像是在写HTML 区别: HTML只给用户提供静态的数据; JSP页面中可以嵌入JAVA代码,为用户提供动态数据; 8.2 JSP原理 思路:JSP到底怎么执行的! 代码层面没有任何问题 服务器内部工作 tomcat中有一个work目录; IDEA中使用Tomcat的会在IDEA的tomcat中生产一个work目录 我电
2020-11-11 18:55:43
1275
2
原创 JavaWeb之Session、Cookie
本博客基于B站狂神老师的JavaWeb课程,地址:https://space.bilibili.com/95256449,记录自己的代码和老师的笔记,同时也会有自己关于这些知识的理解,如果有错误请评论告诉我。 7、Cookie、Session 7.1 会话 会话:用户打开一个浏览器,点击了很多超链接,访问多个web资源,这个过程可以称之为会话。 有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾经来过,称之为有状态会话; 你怎么证明你是西开的学生? 你 → 西开 发票 西开.
2020-11-07 15:45:46
194
原创 B站狂神 JavaWeb 1-6
Java Web 学习(上) 本博客基于B站狂神老师的JavaWeb课程,地址:https://space.bilibili.com/95256449,记录自己的代码和老师的 笔记,同时也会有自己关于这些知识的理解,如果有错误请评论告诉我。 1.基本概念 1.1前言 web开发: web,网页的意思 ,比如百度: www.baidu.com 静态web 提供给所有人看的数据始终不会发生变化! html,css 动态web 淘宝,几乎是所有的网站; 提供给所有人看的数据始终会发生变化,每个人在不
2020-11-04 18:42:33
687
原创 官网JDK的安装与环境变量配置
1.下载 先去官网下载需要的JDK版本 JDK下载 现在拿JDK15来举例: 点击之后,会选择要下载的格式,这里我选择Windows: 2.安装 因为我选择安装在默认位置,所以无脑下一步。 可以更改安装的位置 3.环境变量配置 计算机→属性→高级系统设置→高级→环境变量 如果在计算机属性里能找到到高级系统设置,可以跳过1-3,直接在桌面右键计算机。 右击桌面计算机图标 2.找到“此电脑”图标,右击打开属性 3.点击高级系统设置 4.点击环境变量 4.配置环境变量 系统变量→新建
2020-11-04 16:00:23
179
原创 力扣-简单-977.有序数组的平方
力扣-简单-977.有序数组的平方 题目描述: 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例 1: 输入:[-4,-1,0,3,10] 输出:[0,1,9,16,100] 示例 2: 输入:[-7,-3,2,3,11] 输出:[4,9,9,49,121] 提示: 1 <= A.length <= 10000 -10000 <= A[i] <= 10000 A 已按非递减顺序排序。 来源:力扣(LeetCode) 链接:htt
2020-10-18 16:24:27
223
原创 sizeof运算符
sizeof运算符 sizeof 运算符返回一条表达式或一个类型名字所占的字节数。 sizeof (type) sizeof expr 1. sizeof运算符并不实际计算其运算对象的实际大小 Sales_data *p; sizeof p; //指针所占的空间大小 sizeof *p; //即sizeof Sales_data /* 在sizeof的运算对象中解引用一个无效的指针仍然是一种安全的行为。 */ void* pp; sizeof pp; //虽然pp指针并未初始化,但仍可以对它求字节数。结
2020-09-25 23:21:03
485
原创 python函数参数改不改变的问题
python函数参数改不改变的问题 **结论:**python有可变对象和不可变对象之分。如果传入的参数是不可变对象,则在函数体内对形参的修改不会导致实参被修改,而如果传入的是可变对象,实参有可能会变,也有可能不变,这取决于进行改变的操作。 不可变对象 : Number,String,Tuple,bool 可变对象 : List,Set,Dictionary 1.不可变对象 def test(str1): str1 = "inside" print("this is function "
2020-07-19 17:11:12
2908
原创 二维数组对象名加一问题
对于一个二维数组 a 来说,a和*a的值相同(地址相同),但意义不同。 a +1表示的是第一行的首地址,亦即a[1],而*a+1表示第一行的第一个元素,即a[0][1]。 证明如下: /* Dev-C++ 5.11 */ #include<iostream> using namespace std; int main() { int a[][2]={{1,2},{3,4},{5...
2020-04-30 12:49:43
4321
1
原创 C++中的指针传递,传递给形参的指针仍是实参的一个拷贝。
1.起因 今天在看CPlusPlusThings时看到的关于const使用的一个代码: void func(const int var); // 传递过来的参数不可变 void func(int *const var); // 指针本身不可变 传递过来的参数及指针本身在函数内不可变,无意义! 表明参数在函数体内不能被修改,但此处没有任何意义,var本身就是形参,在函数内不会改变。包括传入的形...
2020-04-23 15:50:57
2492
学生档案的建立和查询.md
2020-06-14
数据库系统概论实验.txt
2020-12-10
数据结构程序设计.docx
2020-06-14
数字电子技术课程设计报告.docx
2020-06-20
使用VHDL实现数字钟.zip
2020-06-20
c++实验报告.docx
2020-06-14
软件工程黑盒白盒实验.docx
2021-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅