Java
文章平均质量分 61
天上飞的云传奇
一个年轻人
展开
-
Java枚举类的原理
学设计模式的时候,看到了单例模式,之前一直都是懒汉模式,饿汉模式,静态嵌套类。没想到还有一个枚举实现的单例。枚举类的原理package ThreeYue;enum Day { MONDAY,TUESDAY,WEDNESDAY}public class Study310 { public static void main(String[] args) { Day day = Day.MONDAY; }}1.对于枚举类 Day 编译器会自动生成一个fina原创 2022-03-10 10:25:00 · 320 阅读 · 0 评论 -
Java基础之String类
字符串String 可以说是最常用的类一般问题:String类的不可变怎么做到的?为什么?首先String类是由final修饰的,不可被继承。其次String类的char[]数组 是被私有化的,被private修饰,且未提供get()/set()方法。原因:1. String类使用太频繁,所有为了搭配字符串常量池使用。2. 为了线程安全,在多线程环境下 final 可以保证安全3. 为了同一个String类的hashcode唯一,只需要计算一次就缓存了hashcode,方便做为map的ke原创 2022-02-28 15:42:03 · 192 阅读 · 0 评论 -
Java中的各种锁和数据库中的锁
Java中的锁公平和非公平锁: 公平锁是指多个线程按照申请锁的顺序来获取锁 非公平锁即打破这个顺序,后来的线程也可以提前获取锁。在ReentrantLock中可以通过改变构造方法参数,变化锁。但是在synchronized,则默认是非公平锁,无法更改。可重入锁和不可重入锁 可重入锁:同一个线程在持有锁的前提下,可以多次获取成功锁。reentrantLock:通过重写AQS的tryacquire方法实现。首先,判断当前是否可以获取锁,不可以再判断当前线程是不是获取了锁的线程。原创 2022-02-18 23:15:18 · 1735 阅读 · 0 评论 -
Spring基本知识
重要的Spring模块Spring Core:核心模块,主要提供IOC依赖注入功能Spring AOP:面向切面的编程实现Spring JDBC : 连接数据库Spring Web:创建Web程序Spring Test:Junit和TestNG的测试功能Spring WebSocket:很方便实现即使聊天的组件@RestController和@Controller前者:放到一个类上面,代表此类的所有接口返回的是JSON类型的数据。后者:返回一个页面,如果想要某个接口返回JSON数据,原创 2022-02-07 18:39:37 · 248 阅读 · 0 评论 -
Java网络之Netty学习(2)
Netty执行流程Server启动之后,Netty会从BossEventGroup选出一个NioEventLoop对指定的端口进行监听Client启动后,Netty从NioEventLoopGroup选一个NioEventLoop连接server,连接端口创建Channel服务端从WorkerEventGroup中选择一个NioEventLoop与该channel绑定,之后操作所有与这个通道的操作服务端处理客户端的数据,通过Pipeline中的处理器一次对数据进行处理。Netty重要组件c原创 2022-02-06 20:14:57 · 713 阅读 · 0 评论 -
Java网络之Netty学习(1)
是什么?是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。基于Nio的特点?高并发,基于Nio的传输快,使用零拷贝,减少不必要的内存拷贝封装好,简化了Nio的API高性能体现:IO线程模型,内存零拷贝,内存池设计,申请的内存可以重复使用,指直接内存,高性能序列化协议。TCP粘包/拆包问题和解决是什么:TCP是基于流进行传输数据,可能把数据拆成几个包。也可能把几个小的数据封装成一个大的包发送粘包就是,小的数据合并一个大的包。拆包就是:大的数据,超过了T原创 2022-02-02 10:28:58 · 920 阅读 · 0 评论 -
Reactor模式
什么是Reactor模式?一个线程来接收所有请求,然后派发给相应的工作线程中。为什么使用Reactor模式?在Java中,没有NIo之前,都是使用Socket编程。一个线程对应一个请求。这样随着请求过多,线程也会过多。也就限制了高并发。三种Reactor模式三个重要角色:Reactor:负责响应事件,将事件分发到对应的处理器,如果是连接事件则分发到Acceptor。Handler:事件处理器。具体执行程序逻辑Acceptor:处理连接事件,将注册事件进行处理。单Reactor单线程一原创 2022-02-02 09:51:04 · 523 阅读 · 0 评论 -
Java之NIO基础介绍(二)
三大组件之buffer和selector2. buffer缓存区NIO核心在于通道channel和缓存区buffer。就是channel是用于连接IO设备的,而buffer则是存储数据,缺一不可。channel用来传输,buffer则是存储。buffer是由java.nio定义好的,有不同的实现类。常用的子类都是基本类型出去Boolean类型之外的。xxxBuffer。获取方式都是ByteBuffer bytebuffer = ByteBuffer.allocate(1024);ByteBuff原创 2022-01-26 15:25:34 · 306 阅读 · 0 评论 -
Java之NIO基础介绍(一)
概念NIO中非阻塞IO采用了基于Reactor的模式。会在Selector中注册某个事件,然后监听通道Channel,当有事件到达才对该事件进行处理。也就是延迟IO核心Selectors、channel、buffers1. channel类比InputStream、OutputStream。是一个层面,面对流的,只不过后者channel是双向的,即可写又可读,所以才是通道。并且双向的前提是,基于随机访问文件RandomAccessFile可读可写访问指针。在Java中Channel的实现pac原创 2022-01-26 09:38:52 · 96 阅读 · 0 评论 -
模拟登陆新版正方教务管理系统【可以获取学生基本/课表信息】
写在前面博主登陆现在还可以正常使用,但是后面登陆成功,获取信息啥的有问题登陆还是按照学长的来,模拟登陆新版正方教务管理系统开始学校教务系统改版,我直接copy博主代码获取学籍那里一直是获取到的是登陆页测试是用postman直接拿登陆之后的cookie测试,发现可以正常获取数据发现登陆之前的cookie和登陆之后的cookie发生了变化 public boolean beginLogin() throws Exception{ connection = Jsoup.connec原创 2021-09-13 20:10:07 · 2017 阅读 · 4 评论 -
Java并发机制底层实现原理(volatile原理,synchronized原理,原子操作实现原理) --java并发编程的艺术
volatile的功能定义: 是一个轻量级的synchronized,在多处理器开发中保证了共享变量的“可见性”可见性:当一个线程修改一个共享变量时,另外一个线程能够读到这个修改的值java内存模型确保所有线程看到这个值的内容是一致的。问题:volatile是如何保证可见性的?(原理)在当是volatile变量时生成的汇编代码 会多出第二行被Lock修饰的指令。该指令在多核处理器下会功能:将当前处理器缓存行的数据写回到系统内存。这个写回内存的操作会让其他处理器缓存的值无效。为什么要这原创 2021-09-02 14:53:55 · 81 阅读 · 0 评论 -
tomcat发布直接gitee clone下来的前端项目,修改默认项目访问路径
操作步骤:修改/conf/server.xml配置文件<Host name="localhost" appBase="webapps"> 添加这一行 <Context path="" docBase="/你的项目名" reloadable="true"/> </Host>path="" 是指域名后面不需要加项目名docBase="" path路径映射的项目reloadable 对于只是展示纯页面无影响如果你的htnml文件在深一级目录原创 2021-08-22 09:38:04 · 182 阅读 · 2 评论 -
初始化Linux虚拟机网络
linux系统为centos7在虚拟机设置选择网络为:桥接模式(最简单)sudo rootdhclient 动态分配ip将动态获取ip配置为静态的vim /etc/sysconfig/network-scripts/ifcfg-ens33初始为更改为重启网卡ping www.baidu.com本机 ping 虚拟机ipping 你本机ip 这里可能有问题,本地防火墙拦截去搜 虚拟机网络ping不通本机 有防火墙的文章按照他的配...原创 2021-08-20 11:17:07 · 163 阅读 · 1 评论 -
JUC学习笔记
目录线程池ThreadLocalLockCAS 比较并交换Atomicfinal 不可变性并发容器并发队列控制并发流程----工具类AQSFuture和Callable 治理线程线程池参数corePoolSize 核心线程数maxPoolSize 最大线程数keepAliveTime 最大存活时间 线程数多余corePoolSize 且多出来的线程数空闲时间超过keepAliveTime 则会被回收workQueue 任务存储队列\\常见三种\\SynchronousQueue 直接交换原创 2021-08-15 20:15:43 · 160 阅读 · 0 评论 -
[只是我问题的伪解决]执行Springboot程序连接数据库被拒绝
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.java.net.ConnectException: Connection refused原创 2021-08-14 21:24:37 · 1304 阅读 · 1 评论 -
六个小时的苦逼--SpringBoot项目通过idea发布到阿里云Docker
简介在这之前接触过项目发布到服务器,所有阿里云端口问题,数据库拒绝访问权限问题,一些常用的Linux命令都是接触过。netstat -nlp |grep :13145 查看某端口占用的线程的pidfirewall-cmd --zone=public --add-port=8080/tcp --permanent 开启8080端口: 出现success表明添加成功systemctl restart firewalld.service 重启防火墙firewall-cmd --zone=public -原创 2021-08-10 21:49:03 · 306 阅读 · 1 评论 -
SpringBoot配置Https请求运行tomcat启动失败,ssl keystore password was incorrect
【SSL】如何使用SpringBoot内置的tomcat配置SSL,从而实现HTTPS访问(基于阿里云云服务器)下载完成需要配置之后,一样的yml格式报错 ssl keystore password was incorrect密钥读取错误。解决:换成application.properties格式的就可以了server.port=443server.ssl.key-store=6046692_www.wdetian0918.icu.pfxserver.ssl.key-password=dz7Qu原创 2021-08-01 14:44:58 · 5160 阅读 · 7 评论 -
阿里云Linux系统 Kafak启动 zk连接不到 Will not attempt to authenticate using SASL (unknown error)
我的解决方法直接看最后面首先遇到的问题,之前也没遇到过!!!正常启动了两天,今天晚上重新启动的时候遇到的问题。在kafka根目录输入bin/kafka-server-start.sh config/server.properties & 启动就下面这张图的错误我的2181端口也经开放了,应该就和防火墙没啥关系了查看通过防火墙的端口:firewall-cmd --zone=public --list-ports开启2181端口: firewall-cmd --zone=public --原创 2021-07-31 21:49:32 · 717 阅读 · 2 评论 -
erlang安装问题(rabbitmq依赖)
linux 安装rpm包时遇到error:Failed dependencies解法方法我遇到的是下面这个问题,就是我本机下载好了的erlang.rpm上传到阿里云上面,环境是centos 7.6 一开始直接用yum install erlang 下载下来一个并成功执行了erl -v但是版本低了,所以我就在官网下载了一个最新的,因为我rabbitmq也是最新的,就是这俩我看版本对比是一致的。之后就一直这个问题,我一开始以为是我删除低版本的erlang时候误删了什么直到我准备放弃这个环境,用本机原创 2021-05-08 13:50:42 · 6925 阅读 · 7 评论 -
使用mapstructs并没有生成实现类
Lombok和mapstructs版本冲突问题原创 2021-03-31 19:30:08 · 11921 阅读 · 1 评论 -
微信小程序和springboot后台交互,小程序如何传递参数后台如何接收,和一些报错问题
Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported]Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'o原创 2021-03-09 21:08:52 · 6242 阅读 · 2 评论 -
Java 访问控制符详细--private,默认,protected,public
同类:就是当前类自身。 同包子类:同一个目录下的子类 同包类:同一个目录下的同级类 同包子包子类:同一个目录下的目录的子类 同包子包类:同一个目录下的目录的类 不同包类:不在一个目录下的类 不同包子类:不在一个目录下的子类原创 2021-02-10 11:22:45 · 237 阅读 · 0 评论 -
springBoot项目部署到服务器----全,多图
springBoot项目部署到服务器文章目录springBoot项目部署到服务器1. 首先得有个服务器2. 有了服务器后就得配置Java环境。3. 打jar包部署spring boot项目到服务器4.执行springboot jar包5. 关于数据库6. 如果想打war包7. 结束1. 首先得有个服务器 1. 随便买一个,我买的阿里云的单核2G一年86.看了华为云,腾讯云,百度云,阿里云,能找到的最便宜的就是86一年了。阿里云小站如果买单核的买完之后可以在<轻量级应用服务器管理平台>原创 2021-01-27 15:17:17 · 757 阅读 · 0 评论 -
关于MobaXterm的使用
关于MobaXterm的使用使用服务器首先得下载拥有SSH连接功能的软件(xshell)和FTP(FileZilla)上传文件的软件,这两个软件的功能都可以使用MobaXterm来使用百度搜MobaXterm去官网下载有免费版使用下载好了之后界面如下点击这个位置然后点击这里前面的host是你的服务器的IP地址,后面是你以什么身份登录。我使用的是root。点击OK,完了进去之后输入密码,然后保存密码之后就不需要再次输入了。你后面的username不输入也没关系就是后面每次进入都会原创 2021-01-27 14:14:05 · 722 阅读 · 1 评论 -
springBoot--web开发
springBoot–web开发重要 : 你导入了这个才能在通过controller转发到templates下的html页面。如果不通过controller转发是访问不到html页面的。但是放到static下的HTML页面可以直接访问到通过网页url地址。更改:只要是通过控制器controller的转发的页面,不论在哪里如果浏览器直接访问都会访问不到。只能发请求让控制器去处理转发页面,必须经过控制器。<dependency> <groupId>org.s原创 2021-01-27 11:35:45 · 106 阅读 · 0 评论 -
拦截器在ssm和springboot中的使用
拦截器在ssm和springboot中的使用ssm拦截器的使用在spring-mvc引入 <!-- 配置拦截器 --> <mvc:interceptors> <mvc:interceptor> <!-- /**代表拦截所有mvc控制器 --> <mvc:mapping path="/**"/> <!-- mvc:exclude-mappi原创 2021-01-27 11:33:33 · 212 阅读 · 0 评论 -
使用maven创建ssm项目
使用maven创建ssm项目解决webapp目录下无法新建jsp问题:在File下打开Project Settings–>Modules–>点击第二列+号打开web–>在点击第三列第二行的+号选中需要创建jsp的目录–>查看webapp是否目录图形中有一个点,有的话就好了。导入依赖包,使用maven管理,spring5.2.6.RELEASE<?xml version="1.0" encoding="UTF-8"?><project xmlns原创 2021-01-23 11:09:47 · 208 阅读 · 0 评论 -
springBoot入门特点+LomBok+Developer Tools 热更新+Spring Initailizr(项目初始化向导)
springBoot特点依赖管理—maven的父项目,控制版本<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.2</version></parent>自动配置原创 2021-01-23 11:06:52 · 142 阅读 · 0 评论 -
springBoot开启入门HelloWorld步骤
springBoot开启入门HelloWorld步骤去官网spring.io查看官方文档,确认你的jdk最少8-15,maven3.3+,idea版本cmd查看版本$ java -versionmvn -v打开idea创建maven工程,确认你使用的maven是你自己的,修改maven的conf下的setting.xml,第一个是更改你的镜像源,下载jar包更快。第二个是使用jdk1.8去编译<mirrors> <mirror> &原创 2021-01-23 11:06:11 · 178 阅读 · 0 评论 -
springboot简单整合mybatis+各种整合时遇到的错误
springboot整合mybatis项目结构在编译后 src下子级目录和resources下子级目录是同一级的添加依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency>原创 2020-12-10 18:53:09 · 575 阅读 · 2 评论 -
Eclipse导入已有的web项目后项目报错的解决办法
如要转载,请附上本博客链接!第一种:jsp报错选择windows–>preference–>列表找到Validation–>点击Disable All ->> Apply ->> Apply and Close(ok了)第二种:src代码报错—一般是源代码不兼容,例如源代码使用的jdk。。。项目右击->>Build Path ->> Configure Build Path ->> Liberaries->>转载 2020-07-27 16:46:35 · 2027 阅读 · 0 评论 -
数据库操作JDBC DButils 连接池
JDBC - DButils 连接池JDBC使用步骤1.加载驱动Class.forname("com.mysql.jdbc.Driver");2.获得连接Connection conn=DriverManager.getConnection("jdbc:mysql://students","root","root");3.基本操作3.1 获得执行sql语句的对象Statement st = conn.createStatement()3.2执行sql语句ResultSet rs =原创 2020-07-15 09:33:35 · 158 阅读 · 0 评论 -
相对路径和绝对路径
相对路径和绝对路径相对路径一个文件相对与另外一个文件来说的路径,你以知一个路径,然后通过这个路径最为相对对象,来找另外一个文件在同一个目录下 输入要查找的文件名 比如<a href="www.html"> 或者<a href="./www.html">不在同一个目录下但是都在同一个上级目录下,就使用…/找到上级目录,然后查找./表示在当前目录 , …/上一级目录 , 相对路径不以/开头绝对路径(一般使用)直接找到全部路径<a href="http://原创 2020-07-15 09:32:46 · 124 阅读 · 0 评论 -
JavaSE总结 多线程 网络编程
JavaSE多线程多线程原创 2020-07-14 09:32:47 · 158 阅读 · 0 评论 -
Javase 集合 IO输入输出流 异常处理
java核心异常处理io输入输出流字节流异常处理这个感觉目前还是用不了。只是在提示的时候加上。try{//错误的方法}catch{//处理}可以多个catch处理多个异常finally{//最终执行代码}执行完会顺序执行后面的语句throw ex; 抛出异常给上级throw 的作用是手工抛出异常类的实例化对象 将异常再次抛出,即使是处理了还可以throws 声明的方法表示该方法不处理异常,而由系统自动将所捕获的异常信息抛给上级调用方法。上级调用了throws声明的方原创 2020-07-14 09:32:27 · 628 阅读 · 0 评论 -
Javase总结
Javase总结什么是类和对象对象内存图成员变量和局部变量构造方法this,static,final,import,super等关键字thisstaticfinalimportsuper访问修饰符面向对象三大特征:封装,继承,多态封装继承多态抽象类,接口抽象类接口什么是类和对象面向对象(oo):就是你去买手机,说出你的需求,有手机的特征也有手机的行为。面向过程(op):只有主语手机 , 和手机的特征。对象:客观存在的事物,可以被描述,对象是类的实例,是类的具体的实现。类:具有某一相同属性和行为的原创 2020-07-14 09:31:45 · 136 阅读 · 0 评论 -
数据库软件MySQL的下载与安装+Navicat for MySQL图形化管理界面的下载与连接
MySQL1 . mysql的下载与安装可以直接到官网下载 是免费的官网下载地址选择的不是当前最新的版本,看传智播客的老师说只是学习的话,旧的版本问题少。2019年 最新版 传智黑马Java数据库阶段 采用IDEA+MySQL+Oracle(已完结)百度网盘下载地址链接: mysql-5.7.30-winx64提取码:8io6下载是有 MSI Installer 和 ZIP两种格式前一种安装MySQL是有一个图形化界面去让你操作下载,后面一种得在cmd命令窗口下使用原创 2020-05-14 12:41:45 · 2374 阅读 · 0 评论 -
Java开发环境——JDK的安装及配置
jdk环境变量设置解决方案 1 :运行——>cmd在控制台中运行以下命令设置java环境变量即可解决:set java_home=C:\Program Files\Java\jdk1.8.0_211 安装JDK的根目录set classpath=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;set path=%JAVA_...原创 2020-03-20 00:26:51 · 258 阅读 · 1 评论