
java编程
文章平均质量分 77
Æ_华韵流风
/生/在/国/旗/下/,/长/在/春/风/里/,一/天/三/顿/饱/,/顿/顿/吃/得/好/
展开
-
十次方学习——jwt(8)
一、常见的认证机制:HTTP Basic Auth请求带用户名和密码Cookie AuthCookie 和 SessionOAuth第三方登录Token Auth支持跨域访问无状态更适用于 CDN去耦不需要考虑对 CSRF(跨域请求伪造) 的防范二、JWT(json web token)由头部、载荷、签名组成。标准中注册的声明公共的声明私有的声明创建 Token:import io.jsonwebtoken.JwtBuil原创 2021-12-07 11:11:36 · 155 阅读 · 0 评论 -
十次方学习——spring cloud(9)
一、架构的演变集中式,所有的功能都集中在同一个项目中,当访问量和数据量不断的增大时,系统会不堪重负。SOA 式,面向服务的架构,他通过“拆”的方式采用垂直的和水平的两种手段把一个完整的系统分割成多个项目进行设计。垂直就是按照业务功能进行拆分,各个部分是平行的;水平是按照系统的调用层次进行拆分,各个部分由上而下进行逐层调用,比如 mvc 的设计模式。这种架构当服务拆的比较多时,服务之间的调用错综复杂,此时需要服务的注册及订阅机制,以及调度和监控。此时基于 dubbo 及 zookeeper 的分布式的项原创 2021-12-07 11:10:37 · 321 阅读 · 0 评论 -
十次方学习——上传项目至服务器(10)
一、消息总线基于集中配置的系统中,当配置的内容发生改变时,相应的服务会得到改变的消息。并主动的去读取最新的配置内容。spring cloud 提供了消息总线。针对配置服务器添加依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-bus</artifactId>原创 2021-12-07 11:10:01 · 273 阅读 · 0 评论 -
十次方学习——RabbitMQ(7)
RabbitMQ一、directpom 里添加依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.原创 2021-12-07 11:12:30 · 216 阅读 · 0 评论 -
十次方学习——elasticsearch(6)
一、ElasticSearchelasticsearch 是一个分布式的搜索引擎,处理速度非常快,基于 Lucenc,使用时要用 restful 风格的接口。它有三层结构:索引(index);类型(type)和文档(document)。分别对应关系型数据库的 database,table 和 row。它运行的端口有两个:9200是 http 协议使用,9300是 tcp 协议使用。使用:下载 elasticsearch,尽量使用成熟的版本例如 5.6.8。在bin目录执行命令 elastics原创 2021-10-30 17:17:35 · 776 阅读 · 0 评论 -
十次方学习——mongodb(5)
MongoDB一、什么是 mongodb它属于 no sql 数据库,介于关系型非关系型数据库之间,主要用来保存大数据量的数据。二、mongodb 的逻辑结构mongodb->database->collection->documentBSON,类似于JSON,但是数据类型不同,还包括特殊符号。三、安装 mongodb(https://www.mongodb.com/try/download/community)安装 window 平台下的数据库,它包括服务器和客户原创 2021-10-30 17:13:47 · 259 阅读 · 0 评论 -
十次方学习——spring data(4)
一、spring data jpa 框架spring data 提供了基于 spring 的使用习惯(方式)来操作各种类型的数据,主要包括各种数据库及 no sql。因此它的适用面比 mybatis 大很多。使用数据访问技术、关系和非关系数据库(no sql)、mapreduce 框架和基于云的数据库变得容易。这是一个伞形项目,其中包含许多特定与给定数据库的子项目。spring data 有很多子项目,其中 commons 和 jdbc 是基础,其他的针对应用的包括 jpa,mongodb,redi原创 2021-10-30 17:09:11 · 202 阅读 · 0 评论 -
十次方学习——docker(3)
一、了解 docker+在一个微服务项目中,所有的微服务分为两大类,一类是业务微服务比如登录,文章管理等,另一类是系统微服务,比如 mysql,mongodb 等。多个微服务它们各自需要的运行环境可能不同,这给服务的部署和运行造成麻烦。另一方面, 所有的业务微服务都要经过开发,测试及上线运行三个步骤,这三步的运行环境也可能是不一样的。以上问题会给测试及运维方面造成困扰。什么是 dockerDocker 是一个开源的应用容器引擎,诞生于2013 年初,基于 Go 语言实现,dotCloud 公原创 2021-10-30 17:06:36 · 102 阅读 · 0 评论 -
十次方学习——springboot(2)
一、springboot 概述非常轻易的构建独立的、生产级别的 spring 应用。二、了解 js 的后台程序的编写与运行人们把 spring boot 称为搭建程序的脚手架。极大地减轻了开发的工作量,好处在于设计者可以把精力更多的用在业务逻辑的设计上。二、为什么会出现 spring boot基于 spring 框架的开发需要写很多配置,它提供了大量的默认配置(默认优于配置),可以大大减轻配置工作量。当项目中使用的第三方库或框架比较多时,通过 maven 引入的依赖就很复杂,常原创 2021-10-30 16:52:31 · 161 阅读 · 0 评论 -
软件框架——dubbo
一、dubbo 框架是一个分布式的服务框架,服务的注册和发现,负载均衡,SPC(远程过程调用)。二、zookeeper中间件hadoop,它是基于谷歌关于大数据的三篇论文所设计的一个分布式的大数据处理平台。论文一:分布式的文件系统,在大数据(P 级以上的数据)领域需要大量的服务器来存放大量的文件,所有的文件必须是安全的,当某台主机上的文件数据破坏后,不至于让此份不可用(一份数据多处存放)。另外,文件集群由一台主机进行管理,该主机中保存有所有文件所存放的地址。在这种集群结构的系统中,如果主机挂原创 2021-10-30 16:44:23 · 785 阅读 · 0 评论 -
软件框架——简介(1)
一、学习一点软件架构的知识认识什么是软件架构,就是软件项目的顶层结构,就相当于总体设计图。为什么需要软件架构?现代的软件功能要求越来越强,规模越来越大,演进越来越快,响应速度越来越高,稳定性越来越强等等。为了满足以上要求,软件设计变得越来越复杂,软件架构就是为了解决软件的复杂性而生的。什么是软件架构师?它具有丰富的编程实践经验,对普遍性的行业业务有基本的认识,有较扎实的计算机的功底,有良好地沟通能力,有较强的学习能力;在公司内部,它应该是技术权威,它不会去写代码,却要能够指导项目组的技术人员去原创 2021-10-30 16:43:19 · 710 阅读 · 0 评论 -
框架学习——springMVC(5)
一、创建 springMVC 的项目创建一个新的 maven 项目;添加依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apac原创 2021-07-11 18:49:12 · 142 阅读 · 0 评论 -
框架学习——spring(3)(AOP)
一、什么是 AOP面向切面编程,这也是一种编程思想,它是建立在面向对象编程(OOP)的思想之上。面向对象编程采用的思路是自顶向下的思路,所有的类和接口都处于某种继承或实现的关系之上。二、AOP 的实现原理理解代理设计模式(结构型)代理模式的基本实现:静态代理:创建代理类,程序执行时,执行代理类,从而相当于执行了目标类。package com.zhong.calculator;/** * @author 华韵流风 * @ClassName Calculator *原创 2021-06-24 21:55:15 · 176 阅读 · 1 评论 -
框架学习——spring(2)(IOC与DI)
一、什么是软件框架它符合某种业界的规范和标准,springmvc 框架,严格按照 mvc 设计模式以及 javaWeb 的技术标准。框架也是软件,它在项目的开发和运行、部署等环节都会起到作用。也可以理解为一个软件平台,使用框架相当于使用它的基础作用。所以,框架也可以按照层次分为基础功能(核心功能),可复用的组件,面向应用的功能。现代的软件开发有充分的理论依据,它散发在开发的各个层面和角落,因此只要开发软件就离不开框架。使用框架可以让软件的开发变得标准化,可以简化代码的设计,可以最大限度的对功能进行原创 2021-06-24 21:50:01 · 164 阅读 · 1 评论 -
框架学习——认识maven(1)
一、为什么需要使用 maven?设计项目时,需要用到多种外部的 jar 包,当包的数量和包之间的关系越来越多,越来越复杂的时候,会造成引入的包并不是我们需要的包,也可能不同的包与另外的包都发生关系,会造成包的混乱,就会造成编译出问题,也可能使用的功能不正确。如果使用 maven,则可以最大限度的避免问题的发生。二、maven它是 apache 公司的一个项目,作用是管理项目(比如编译项目,测试项目,打包项目,发布项目等),另外,更重要的一点是可以实现依赖管理。依赖管理就是可以按照坐标把项目所需原创 2021-06-24 21:47:14 · 141 阅读 · 0 评论 -
JavaWeb-监听器和过滤器(4)
一、过滤器java 有过滤器、监听器、拦截器,都是属于 java 的组件。在 tomcat 的容器初始化和启动时,通过责任链模式针对 engine,host,context,wrapper 部分分别进行启动,这四个部分是一个链条,按照规定的顺序执行。过滤器链在 tomcat 启动时就会被创建,如果定义和配置了多个过滤器,就会按照它们在配置文件中的配置顺序把这些过滤加入到过滤器链中。启动时过滤器链是不会执行的,但是它会一直存在于容器中,等待有相应的请求到达才会执行过滤器。创建并配置过滤原创 2021-04-28 13:57:55 · 125 阅读 · 0 评论 -
JavaWeb——request和response对象(2)
一、Request,Response 对象的设计模式外观模式,属于结构型的模式。解决的问题:当我们要使用的系统或者某个类的功能很复杂,会造成使用的复杂度;另外需要使用的类中有一些功能属于系统级的功能,不建议或者不允许开发者使用。为了解决以上问题,可以采用外观模式对合适的类进行一层包装,把包装的类提供给开发者使用,包装类中的所有方法就是开发者可以使用的方法,开发者使用这些方法足以完成所有的任务。也称为门面模式。在容器中,请求、响应、会话、应用上下文对象都具有以上的问题,它们都很复杂,有一些方法是容原创 2021-04-21 20:35:50 · 179 阅读 · 0 评论 -
JavaWeb——tomcat 与 servlet初识(1)
一、JavaEE是 java 企业级的开发技术,能够开发动态资源,也能够打造大规模的应用程序。它也是一个技术体系,建立在 JavaSE 基础之上,提供了实现企业级开发的基础 API。现在大多数的 java 应用程序都是基于 JavaEE 开发的。二、JavaWebweb 称为互联网以及应用于网络上的各设备、协议、规范及技术。JaveWeb 就是基于 java 语言来开发符合 JavaEE 规范要求的网络应用程序(B/S,也包括C/S)。web 包含两种资源,一种是静态资源,不会发生变化,htm原创 2021-04-17 16:56:33 · 208 阅读 · 0 评论 -
java 实现简单的端口扫描程序
实现思路:使用Socket类的connect(SocketAddress endpoint, int timeout) 方法,测试连接是否超时。使用多线程加快扫描速度。package com.zhong.exam7;import java.net.InetSocketAddress;import java.net.Socket;import java.net.SocketAddress;import java.util.concurrent.ExecutorService;import jav原创 2021-03-19 16:45:35 · 354 阅读 · 0 评论 -
high-level——桥接模式,模板模式及使用 jdbc 连接数据库的通用方法(19)
一、桥接模式(bridge)属于结构型模式。在抽象化和实现化之间实现脱耦。抽象化就是把对象的实现采用抽象类的方式,实现化把对象的实现采用接口。脱耦就是让抽象化体系与实现化体系不要耦合在一起。对象功能的扩展一般都使用继承,在有些情况下会造成子类数量增长的非常快,也就是为了扩展类的功能,可能会写很多类。把抽象类的体系剥离出来,让实现类去实现接口,让抽象类去组合实现类。package com.zhong.test_11;public interface TypePC { void s原创 2021-03-04 16:32:17 · 216 阅读 · 2 评论 -
学生信息管理系统——java,mysql,swing……
一、基本需求软件主要是记录班级同学们的学习信息。记录信息有:学号,姓名,性别,年龄,出生地,专业,班级,总学分。软件主要由两类人使用,一类是班委,一类是普通同学。他们的使用权限是不同的。软件通过登录来识别班委与普通同学。班委可以对同学们的信息进行显示,查询,添加,修改,删除操作。可以显示用户信息,可以修改用户密码。普通学生只可以对同学们的信息进行显示,查询操作。软件要操作简单,界面友好。二、软件功能分析普通学生用例分析班委用例分析登录分析注册及忘记密码显原创 2021-03-02 20:36:05 · 312 阅读 · 0 评论 -
high-level——部分数据库知识总结(18)
一、数据库的作用就是数据的仓库,主要作用就是用来存放关系型数据,另外还必须有数据的管理,安全控制,事务机制等方面的一些功能。数据库中的数据存放在磁盘中,属于持久化的数据。二、数据库的结构数据库就是磁盘上的一份文件,数据库管理系统是能够对数据进行操作与管理的程序,客户端软件提供了基本界面能够访问,操作和管理数据库。三、学习数据库的目的和目标在应用开发中,能够写了正确的命令对数据库中的数据进行增删改查等方面的操作。四、如何开始使用 mysql 数据库在安装好数据库管理系统和客户端后,原创 2021-03-01 19:27:03 · 356 阅读 · 0 评论 -
high-level——语法糖、流式编程和方法引用(17)
一、语法糖字符串连接的例子“abc” + “123” + “31553我w#!!!”// jad -p SugarDemo//The class file version is 52.0 (only 45.3, 46.0 and 47.0 are supported)// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.// Jad home page: http://kpdus.tripod.com/jad.h原创 2021-02-22 11:46:45 · 268 阅读 · 0 评论 -
high-level——建造者模式(16)
一、建造者模式属于创建型模式,builder。建造者模式主要用于在创建复杂对象时的一种模式。复杂对象场景之一:线程池对象。如下构造方法,参数的类型比较复杂,相互搭配使用可以创建不同种类的线程池。public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime,原创 2021-02-20 11:54:50 · 178 阅读 · 0 评论 -
high-level——策略模式(15)
一、策略模式行为型模式,用 Strategy 表达。在程序的执行过程中,动态的决定使用什么操作。这种设计模式就是策略模式,它是23种模式中使用最多的模式之一。程序的设计者在设计时并不知道程序执行后会具体的采用哪种操作,因此,对于需要执行的操作在设计时是抽象的,只有在运行时才能把抽象的规定进行具体化。此种模式要求把每一个具体的操作用一个类来表示,程序执行中,需要哪个操作就去使用哪个类。它可以替换掉 if else 语句复杂的逻辑。package com.zhong.test_9;imp原创 2021-02-19 11:57:12 · 334 阅读 · 0 评论 -
high-level——享元模式(14)
回顾:装饰器模式,Decoration,结构型单例模式,Singleton,创建型工厂模式,Factory,创建型一、享元模式如果有个应用程序中,使用了很多个对象,此时内存可能不足,发生OOM的Error。但是通过分析,多个对象可以根据某个特征进行分组,比如有一万个对象,有共同的颜色属性,分属十种颜色,那么可以把一万个对象按颜色分成十组,从每个组中取出一个对象,用这一个对象去表示一千个对象,只需要10个对象就可以表示原来的一万个对象。享元模式的应用场景:字符串常量池,只要是通过原创 2021-02-18 18:15:01 · 175 阅读 · 0 评论 -
high-level——注解和枚举(13)
一、注解它是 jdk1.5 的新特性,它应用在类、接口及枚举等方面,它的作用就是打标记,它不能执行。jdk 的基础注解Deprecated 表示类的成员已过时,不建议使用。SuppressWarnings 让编译器不要输出警告信息。Override用于注解的注解,元注解Target 它规定被修饰的注解可以使用在类的哪种成员上,比如类上,方法上,字段上等。Retention 它规定被修饰的注解在哪个阶段起作用,比如源代码编写阶段,编译阶段,运行时阶段。注解的来源来原创 2021-02-16 16:17:59 · 202 阅读 · 0 评论 -
high-level——网络编程(12)
网络编程一、通信两个节点实现相互间的数据传输。线程间的通信,比较简单,是指同一进程中的不同线程,线程间共享内存空间,且由同一jvm来进行管理。java线程间的通讯有三种方式,其中之一就是通过流来实现通讯。package com.zhong.test_7;import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedOutputStream;public class PipeTes原创 2021-02-16 16:17:52 · 235 阅读 · 0 评论 -
high-level——单例模式和工厂模式(11)
一、单例模式java设计模式分为三大类,创建型,结构型,行为型装饰器属于结构型单例模式属于创建型单例模式要求某个类的实例在整个应用中只能有一个,实例只能由本类来创建,实例在多线程情况下必须是线程安全的。在应用中,如果需要某个类的实例只能有一个,比如整个应用都要对同一 个文件进行读写,多个线程要操作同一个变量,多个线程要使用同一个连接对象来操作数据库。spring 中的 Bean 默认都是单例的。单例可以节约资源,一是对象的创建只有一 次,节省内存,节省创建和销毁的时原创 2021-02-16 16:17:44 · 1227 阅读 · 6 评论 -
high-level——File类(10)
一、File 类IO体系的基石:五类一接口,File 类就是五类之一。File 用来表示文件或目录,一个 File 对象可以用来表示一个文件或一个目录。构造方法File(String pathname) pathname 是文件或目录的路径四个路径分隔符如果不确定程序在哪种系统上执行,可以用 File.separatorChar 来表示分隔符得到的方法(getXXX)System.out.println("绝对路径:" + file.getAbsolutePath原创 2021-02-16 16:17:36 · 198 阅读 · 0 评论 -
high-level——线程状态、并发包(9)
一、jdk中的线程安全与不安全的类型StringBuffer 与 StringBuilder ,前者的大多数方法都带有同步关键字,后面的方法不带有同步关键字。前者是线程安全,执行效率低于后者的线程不安全。ArrayList 是线程不安全的,Vector 是线程安全的。HashMap 是非线程安全的;HashTable是线程安全的;ConcurrentHashMap<K,V>:支持检索的完全并发性和更新的高预期并发性(不保证绝对安全)的哈希表。volatile 关键字,用来修饰成员变量,原创 2021-02-15 19:26:56 · 323 阅读 · 5 评论 -
high-level——线程安全(8)
一、java 定时器Class Timer 是定时器类,它可以按照指定的时间开始执行一份任务;还可以让任务以规定的时间间隔循环执行。在 java 的应用中,凡是需要按照时间的规律来执行调度的任务,基本上都与 Timer 类有关系,都用到了它。package com.zhong.test_4;import java.util.Timer;import java.util.TimerTask;public class TimerDemo { private void ini原创 2021-02-15 19:26:38 · 175 阅读 · 0 评论 -
high-level——线程基本概念(7)
线程一、与线程相关的一些基本概念CPU ,中央处理器,它是计算机的核心,它具有运算和处理功能;它含有计算单元,寄存器,时钟。CPU经历了单核到多核的一种发展过程,单核处理数据是串行的,一 个结束才进行下一个。多核有多个运算单元,相当于有多个CPU ,处理能力比单核要强。处理数据时可以并行操作,多个任务同时进行,此时并发的问题就出现了,但是每个cpu也存在串行执行。并发的概念是指在某个时间段有多个任务在同时进行.时间段比较短。并行的概念是指在某个时刻有多个任务在进行,并行针对多核原创 2021-02-15 19:26:31 · 233 阅读 · 0 评论 -
high-level——异常和异常处理(6)
异常和异常处理一、什么是异常(错误及异常)异常就是程序执行过程中所出现的非正常的情况,也可以称为例外,在java程序中如果出现了异常并且该异常也没有被处理,此时程序会中断执行,也就是从异常发生的位置后面的代码将不再执行,虚拟机也会退出。程序中如果出现了异常,会在控制台输出异常的类型及相关信息。二、java中异常类型的继承体系Class Throwable,它是所有错误及异类的超类。错误:它也是影响程序正常执行的问题,但不是语法错误,出现之后我们的程序没有办法进行正常的处理。大多和硬件有关,原创 2021-02-15 19:26:24 · 334 阅读 · 0 评论 -
high-level——Map(5)
package com.zhong.test_2;import java.util.HashMap;import java.util.Map;import java.util.Set;public class MapDemo {public static void main(String[] args) {Map<String,String> map = new HashMap<>();//添加map.put(“k1”,“v1”);map.put(“k2”,“v2”原创 2021-02-15 19:26:10 · 116 阅读 · 0 评论 -
high-level——List和Set(4)
一、了解一下数据结构java中的集合,不同种类的集合内部元素的存储和组织方式是不一样的,集合元素采用什么方式进行存储往往决定了该集合具有什么样的特征,比如有的集合查询快,有的集合增删快,以及集合元素是否能够重复等。所谓的数据结构就是数据如何存储,数据之间的关系,数据的表现形式,以及在特定的存储类型之上所提供的特定的算法。二、了解常用的数据结构三、List集合凡是实现了List接口的集合都称为List集合。实现List接口的集合的基本特征:属于列表元素带有索引,可以根据索引来操作元素原创 2021-02-15 19:26:03 · 171 阅读 · 0 评论 -
high-level——集合框架(3)
一、什么是集合java中的集合是一个容器,可以存放多个元素。二、什么是集合框架在java中,所有的集合都实现了各种接口,每个集合都对应具体的类,不同的集合因为实现的接口不同,而具有不同的特征及行为。因此,统一的把集合需要实现的接口的结构及层级,具体的集合类型的各种方法,称为集合框架。三、Collection接口它是集合框架中的根接口,它具有一些基本的操作集合的方法,这些方法是我们使用集合过程中要使用的基础方法。它有两个重要的子接口,一个是List,另一个是Set,这些子接口就会拥有Col原创 2021-02-15 19:25:57 · 299 阅读 · 0 评论 -
high-level——System类和StringBuilder类(2)
System类system表示系统,因此它包含的一些成员变量与方法和当前jvm及应用程序的执行环境有关。利用该类可以得到与当前执行环境相关的一些参数。System中声明了一个私有的无参的构造方法,我们不能去创建它的对象。字段:static InputStream in “标准”输入流,表示通过键盘的按键向程序中输入字符的通道。static PrintStream out “标准”输出流,表示通过控制台输出内容的通道。static PrintStream err “标准“错误输出流,也是针对控制台原创 2021-02-15 19:25:42 · 153 阅读 · 0 评论 -
high-level——Object类和Date类(1)
Object类它是所有类的基类(超,父),它在java类的层次体系中具有最基础的地位。它含有12个公共的方法,在任何类的对象上都可以调用(或重写)这些方法,因此掌握该类的重点方法是我们了解所有类的基本特征的必须途径。如果一个类没有继承其他的类,它一定继承了Object类。如果一个类的声明中没有 extends ,则表示它一定继承Object。Object类没有包含成员变量,也没有静态方法,只有一个无参的构造方法。Class getClass(),返回此Object的运行时类,运行时类就是被加载到方原创 2021-02-15 19:25:34 · 185 阅读 · 0 评论 -
low-level——java基础 权限和内部类(11)
一、final 关键字含有最终,不可变的意思。它可以修饰类,成员变量,静态变量,局部变量,方法。修饰类,该类就不能被继承。修饰方法,该方法不能被重写。修饰变量,那么该变量就成为了常量,常量一旦赋值就不能被改变。二、权限在java中,类与类之间的引用,方法之间的调用,成员变量的使用都与权限有紧密关系。所谓权限就是是否可以使用。java中权限设定的基础在于包和访问修饰符。( public protected default(friendly) private )权限的具体规则:publi原创 2021-02-15 19:25:22 · 126 阅读 · 1 评论