java
_SnowMultiflora
一个努力学习的程序员美少女
展开
-
Java内存模型(java线程内存模型)
read:从主存中读取数据load:将读取的数据存进线程中的工作内存use:使用工作内存中的数据,进行操作assign:将use后的数据写回工作内存store:将工作内存的数据放回主存中(并没有写,没有赋值原来的值)write:将store过来的值赋值给主存中原来的数据volatile可见性原理: 如图所示,当某个线程中的数据变化,并使用store操作...原创 2019-12-11 19:12:59 · 129 阅读 · 0 评论 -
StringUtils的isEmpty和isBlank区别
//isBlank判断某字符串是否为空或长度为0或由空白符(whitespace)构成 System.out.println("===============isBlank==============="); System.out.println(StringUtils.isBlank("")); ...转载 2019-11-19 17:32:08 · 132 阅读 · 0 评论 -
单点登录(sso)原理
本文参考https://blog.csdn.net/liupeifeng3514/article/details/82688330单点登录什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分。 登录 相比于单系统登录,sso需要一个独立的认证中心,...原创 2019-10-29 08:47:28 · 257 阅读 · 0 评论 -
Redis的启动、使用和停止
1、Redis的启动 (1)前端模式启动 ①直接运行bin/redis-server将以前端模式启动:切换到 /usr/local/redis/bin目录下,然后./redis-server ; ②前端模式的缺点是启动完成后,不能再进行其他操作; ③如果要操作必须使用Ctrl+C,同时redis-server程序结束,不建议使用此方法。 (2)后端模...原创 2019-10-22 21:57:47 · 805 阅读 · 0 评论 -
MyBatis逆向工程
什么是逆向工程:mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java、mapper.xml、pojo…),可以让程序员将更多的精力放在繁杂的业务逻辑上。企业实际开发中,常用的逆向工程方式:由数据库的表生成java代码。之所以强调单表两个字,...原创 2019-10-21 20:45:53 · 183 阅读 · 0 评论 -
RPC跨域问题
理解 ajax 的跨域访问服务器段,使用 CORSFilter 过滤器解决跨域问题 前端使用 JSONP 解决跨域问题Ajax 跨域介绍Ajax 跨域问题 建立 ajax-origin 项目 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.or...原创 2019-10-16 21:52:21 · 1078 阅读 · 0 评论 -
Spring_RestTemplate_实现Http服务消费
使用 Spring 提供的 restTemplate 完成 Http 服务消费RestTemplate 介绍RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端,RestTemplate 提供了多种便捷访问远程 Http 服务的方法,能够大大提高客户端的编写效率。 服务消费者实现 业务需求说明 服务提供者代码及公共资源见https://b...原创 2019-10-16 21:30:34 · 128 阅读 · 0 评论 -
RPC调用HttpClient实现
HttpClient 实现 RPC 调用 HttpClient 介绍 HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。 HttpClient 是 Apache Jakarta Common 下的子项目,供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包。实现了所有 H...原创 2019-10-16 21:12:55 · 415 阅读 · 0 评论 -
RPC_RMI服务集群部署_消费_服务发现
理解服务的集群部署 理解服务发现服务的集群部署 服务单机部署 将某个应用服务,部署到一台服务器,所有服务消费者的并发访问都发送到一台服务器. 在系统业务的发展,不露出相应的问题: 高并发访问题: 会出现系统资源不够用(带宽,cpu,内存)等等 系统的单节点故障: 当单节点服务器出现宕机故障的时候,会出现服务访问没法访问...原创 2019-10-16 20:45:18 · 301 阅读 · 1 评论 -
RMI远程服务的发布
使用 RMI 实现方法的远程调用RMI介绍RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。rmi公共资源(不管是提供者还是消费者都需要)package com.zxw.service;import...原创 2019-10-16 14:18:09 · 195 阅读 · 0 评论 -
WebService远程服务的发布
使用 webservice 实现 RPC 调用 webservice 介绍服务提供者package com.zxw.service;import javax.jws.WebService;/** * 创建需要发布的远程服务接口 * 使用@WebService发布的远程服务 默认情况下会将该接口的所有public的方法都发布, * ...原创 2019-10-16 14:04:47 · 190 阅读 · 0 评论 -
学习ActiveMQ
ActiveMQ 官网: http://activemq.apache.orgActiveMQ5.10.x 以上版本必须使用 JDK1.8 才能正常使用。 ActiveMQ5.9.x 及以下版本使用 JDK1.7 即可正常使用。学习ActiveMQ,首先了解一些概念1 什么是 ActiveMQ ActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线。Act...原创 2019-10-10 20:46:29 · 196 阅读 · 0 评论 -
Solr的使用
Solr介绍 全文检索什么叫做全文检索呢?这要从我们生活中的数据说起。 我们生活中的数据总体分为两种:结构化数据和非结构化数据。 1)结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 2)非结构化数据:指不定长或无固定格式的数据,如邮件,word 文档等。 非结构化数据又一种叫法叫全文数据。 按照数据的分类,搜索也分为两种: 1)对结构化数据的搜...原创 2019-10-08 16:18:47 · 148 阅读 · 0 评论 -
使用KindEditor上传图片回显的问题(使用Nginx)
http协议代理由于 ftp 服务器是基于 ftp 协议处理的。那么现在我想在外部访问该图片,是没有办法访问的。他是不能处理 http 协议的。所以我们需要拥有一个能够处理 http 协议代理服务器。其实就是使用了 Nginx 的虚拟主机的方式。需求使用 Nginx 的基于域名的虚拟主机的方式来完成在 KindEditor 中添加图片时的图片回显处理。 nginx:19...原创 2019-09-27 19:43:39 · 440 阅读 · 0 评论 -
使用KindEditor实现图片上传、提交文字数据
KindEditor 是一套开源的 HTML 可视化编辑器,主要用于让用户在网站上获得所见即 所得编辑效果,兼容 IE、Firefox、Chrome、Safari、Opera 等主流浏览器。 KindEditor 使用 JavaScript 编写,可以无缝的于 Java、.NET、PHP、ASP 等程序接合。 KindEditor 非常适合在 CMS、商城、论坛、博客、Wiki、电子...原创 2019-09-26 20:21:40 · 935 阅读 · 0 评论 -
使用vsftp上传图片(maven)
vsftp简介vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、HP-UNIX 等系统上面,是一个完全免费的、开放源代码的 ftp 服务器软件,支持很多其他的 FTP 服务器所不支持的特征。传统图片管理方式在分布式环境中的问...原创 2019-09-26 20:02:57 · 248 阅读 · 0 评论 -
多线程
多线程基本概念_程序_进程_线程 什么是程序、进程和线程?答:程序:多条指令的集合进程:正在运行的程序(CPU,data,code)线程:进程中一个“单一的连续控制流程”进程与线程之间区别?答:1、进程是资源分配的单位;线程是调度和执行的单位;(根本区别) 2、进程拥...原创 2019-07-22 17:41:50 · 93 阅读 · 0 评论 -
序列化 反序列化
序列化 反序列化为什么需要序列化?答:序列化后的对象可以写在磁盘上,也可以在网络上传输,使不同的计算机可以共享对象。 对象的序列化有哪些条件?答:只有实现了Serializable接口的类的对象才能序列化,Serializable接口中没有任何方法,所以实现该接口不需要实现额外方法。简述序列化与反序列化的内容?答:序列化:写对象反序列化:读对象...原创 2019-07-22 17:37:34 · 87 阅读 · 0 评论 -
选择排序和插入排序
public class caogao { //选择排序 private static void selectSort(int[] arr) { for(int i=0;i<arr.length-1;i++){ //外层循环为找最小值的趟数 //将无序区的第一个元素的索引赋值给 min int minIndex = i; //minIndex 保存了最...原创 2019-07-17 19:37:08 · 71 阅读 · 0 评论 -
变参方法
public class caogao { /** * 1: 变参参数可以接收0-n个实参 * 2:一个方法只能有一个变参参数,而且该变参必须在参数列表的末尾 * 3: 变参的底层使用 数组实现。 * 4: 变参方法,的实参可以是 数组 * @param num * @return */ public static void main(String[] args)...原创 2019-07-17 18:19:13 · 231 阅读 · 0 评论 -
Java的特性和优势
·跨平台/可移植性 这是Java的核心优势。Java在设计时就很注重移植和跨平台性。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。·安全性 Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以很容易构建防病毒,防篡改的系统。·面向对象 面向对象是一种程序...转载 2019-07-11 19:46:04 · 250 阅读 · 0 评论 -
抽象,接口和内部类
抽象类和抽象方法(1) 简述抽象方法的特征答:抽象方法没有方法体,要以分号结束;包含抽象方法的类一定是抽象类;使用关键字abstract;子类必须实现父类的抽象方法,如果不实现则子类必须也是抽象类。(2) 什么情况下使用抽象方法?答:父类比较抽象,创建对象无意义。(3)抽象类中可以有成员变量,成员方法,构造方法,final修饰的方法(不能重写),抽象方法接口的详解(interf...原创 2019-07-14 11:13:17 · 130 阅读 · 0 评论 -
equals方法
object中的equals方法:比较两者是否是一个对象,是为true,否则为falsejava.lang.String重写object的equals方法:Arrays中的equals方法:该方法是比较两数组是否内容相同...原创 2019-07-15 10:29:37 · 102 阅读 · 0 评论 -
大白话解释——冒泡排序
原理:一个数组里,相邻的两个元素进行比较,两两比较。基本冒泡排序: 使用双层for循环,外层循环代表比较的轮数(数组元素个数-1),内层循环代表每轮比较多少次(数组元素个数-1)。public class BubbleSort { public static void main(String[] args) { int A[]= {1,6,5,9}; for...原创 2019-07-15 14:09:47 · 1156 阅读 · 0 评论 -
抽象类和接口补充小记
接口可以继承接口,但类只能实现接口(类不能继承接口)抽象类也可以实现接口接口可以new,抽象类不可以1.8后,接口可以定义普通方法,要加default(对象名调用)或static(接口名调用)...原创 2019-07-15 15:07:36 · 89 阅读 · 0 评论 -
包装类的使用
Integer——>int :Integer i=new Integer(123); int ii=i.intValue( )int——> Integer : Integer i=Integer.valueOf(int obj)String——>int : int ii=Integer.parse...原创 2019-07-15 21:33:01 · 202 阅读 · 0 评论 -
容器——ArrayList和LinkedList
为什么需要集合?答:集合是一个容器,用来存储数据,只能存储引用数据类型;数组增删操作效率低,数组的长度不能改变,所以数组具有局限性Collection、Set、List接口的特征是什么?答:Colletion接口存储元素不唯一、无序的对象Set接口存储元素唯一、无序的对象List接...原创 2019-07-18 09:51:05 · 148 阅读 · 0 评论 -
自己对二分法的理解
import java.util.Arrays;import java.lang.String;public class caogao { public static void main(String[] args) { int a[]= {1,5,6,7,8}; int key=4; int low=0; int high=a.length...原创 2019-07-16 08:38:42 · 245 阅读 · 0 评论 -
容器——TreeMap
TreeMap底层数据结构是红黑树键是唯一、有序的(升序)常用的方法和HashMap一样。在使用自定义对象作为key时,必须具备比较规则常用构造方法:(1)带外部比较器的构造方法 publicTreeMap(Comparator<? superK> comparator) { this.comparator= comparat...原创 2019-07-18 15:10:20 · 134 阅读 · 0 评论 -
容器——HashMap和Hashtable
HashMap与Hashtable的异同是什么?答:区别: HashMap:线程非同步,效率高 键、值可以为null,但为null的键只能有一个 继承AbstractMap类实现Map接口,版本从1.2开始 ...原创 2019-07-18 15:14:10 · 82 阅读 · 0 评论 -
容器——Vector和ArrayList
Vector用法和ArrayList区别Vector的特有方法有哪些?答:addElement() removeElement() 2.Vector与ArrayList的区别是什么?答:Vector的add()方法是同步方法,ArrayList的List()方法不是同步方法; Vector是线程同步,安全...原创 2019-07-18 15:15:43 · 95 阅读 · 0 评论 -
DateFormat和SimpleDateFormat
DateFormat和SimpleDateFormat关系:DateFormat是SimpleDateFormat的父类。作用:用于将Date和String类型字符串进行相互转换。Date——>String 使用format(Date d)import java.util.Date;import java.lang.String;import java....原创 2019-07-16 14:57:47 · 93 阅读 · 0 评论 -
父类异常和子类异常
方法重写时,子类声明异常能否超出父类的范围?子类声明异常不能超出父类的范围[1]父类没有声明异常,子类也不能[2]不可抛出原有方法抛出异常类的父类或上层类 [3]抛出的异常类型的数目不可以比原有的方法抛出的还多(不是指个数)class A { public void method() throws IOException { } }class ...原创 2019-07-17 08:58:18 · 2321 阅读 · 0 评论 -
泛型
为什么需要泛型?使用泛型的好处有哪些?答:没有泛型,在容器里的元素都会向上转型成object类型,在遍历的时候向下转型容易出错且效率低;好处:增强代码可读性和安全性。泛型有三种:泛型类、泛型接口、泛型方法泛型类(类型实在创建这个类的对象的时候才决定的) publicclassTestGeneric<T>{//T代表一种数据类型...原创 2019-07-19 16:05:05 · 64 阅读 · 0 评论 -
基于TCP实现聊天室
package com.zxw.CharRoom2;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import java.util.ArrayList;import java.util.List;public class Server { public static ...原创 2019-07-24 14:46:53 · 343 阅读 · 0 评论 -
基于UDP实现聊天
package com.zxw.udp;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.SocketException;import java.util.Scanner;public class Worker { pu...原创 2019-07-24 14:48:54 · 200 阅读 · 0 评论 -
使用FileInputStream和FileOutputStream实现文件内容复制
简述使用字节流实现文件复制的原理?答:一边读一边写,源文件复制到目标文件,中间需要搭个桥(通过java程序),程序总有中转站(可大可小,可以是一个字节,也可以是一个byte数组),源文件到中转站通过FileInputStream文件字节输入流,将数据读取到中转站,中转站到目标文件通过FileOutStream文件字节输出流,将数据写入目标文件。简述使用字节流实现文件复制的步骤...原创 2019-07-19 20:11:52 · 1318 阅读 · 0 评论 -
抽象类 抽象方法
抽象类使用关键字 abstract抽象类中可以有成员变量、成员方法、静态方法、构造方法、final修饰的方法;抽象方法抽象方法没有方法体;抽象方法用分号结束;包含抽象方法的类一定是抽象类;子类必须实现父类的抽象方法;如果不实现,子类必须也是抽象类。...原创 2019-07-13 18:13:36 · 136 阅读 · 0 评论