- 博客(57)
- 资源 (2)
- 收藏
- 关注
原创 JAVA中的泛型
Java泛型是一种强大的工具,它允许程序员在编译时进行类型检查,从而减少运行时错误。正确使用泛型不仅可以提高代码的可读性和可维护性,还可以增强代码的安全性。泛型主要有三种使用方式:泛型类、泛型接口和泛型方法。
2024-08-19 21:26:52 412
原创 Java中的集合
1. Collection是一个顶层接口,它主要用来定义集合的约定。2. List接口也是一个顶层接口,它继承了Collection接口,同时也是ArrayList、LinkedList等集合元素的父类。3. Set接口位于与List接口同级的层次上,它同时也继承了Collection接口。Set接口提供了额外的规定。它对add、equals、hashCode方法提供了额外的标准。4. Queue是和List、Set接口并列的Collection的三大接口之一。
2024-08-19 20:40:20 1183
原创 JAVA概述
Java是一种广泛使用的计算机编程语言和平台。Java最初由Sun Microsystems于1995年发布,是一种面向对象的语言,具有自动内存管理和垃圾回收功能。这种语言在诸多方面展现出其跨平台性、安全性、面向对象、多线程等优秀特性,使其不仅在企业级应用开发、Web开发、游戏开发、移动应用开发等领域得到广泛应用,而且拥有庞大的开发者社区和丰富的生态系统。Java的工作原理是,Java程序首先通过编译器将源代码编译成Java字节码,然后使用Java虚拟机(JVM)来运行这些字节码。
2024-08-16 20:00:00 872
原创 JavaWeb-Session和Cookie
Cookie是由服务器发送到用户浏览器并保存在本地的一小块数据,用于保持浏览器和服务器之间的状态。一个典型的Cookie属性包括:名称(name),值(value),过期时间(expires),域(domain),路径(path),安全标志(secure),最大年龄(max-age)和HttpOnly标志。1、名称和值是必需的属性,分别指定了Cookie的名称和值。2、过期时间用于指定Cookie何时应该被删除。3、域和路径定义了该Cookie的可访问范围,告诉浏览器该Cookie属于哪个网站。4。
2023-11-21 21:55:32 185
原创 JavaWeb-JVM内存管理机制
JVM内存管理是Java虚拟机所特有的一种内存管理技术,它主要负责动态的分配和回收内存资源。这种自动内存管理机制可以帮助Java程序员更有效地处理内存,避免了频繁编写和删除代码,从而减少了内存泄露和溢出的问题。JVM管理的内存包括五个不同的运行时数据区域:程序计数器、虚拟机栈、本地方法栈、堆和方法区。程序计数器是每个线程私有的内存区域,它可以看做是当前线程执行字节码的行号指示器。虚拟机通过改变这个计数器的值来选择下一条需要执行的字节码指令。
2023-11-21 21:23:55 223
原创 JavaWeb-三大核心组件(Servlet、Filter、Listener)
JavaWeb三大核心组件是Servlet、Filter和Listener。Servlet:用于处理客户端请求并生成响应的服务器端程序。Filter:用于拦截和处理请求和响应。Listener:用于监听Web应用程序中的特定事件,如对象的创建、销毁以及属性的更改等。
2023-11-20 19:00:00 405
原创 JavaWeb-JSP
JSP(Java Server Pages)是一种运行在服务器端的Web技术,允许开发者使用Java语言JSP(Java Server Pages)是一种运行在服务器端的Web技术,允许开发者使用Java语言编写响应客户端请求的动态网页。它是一种在HTML网页中插入Java代码的动态网页开发技术,可以实现Java web应用程序的用户界面部分。JSP的特点和优势主要体现在以下几个方面:首先,它可以使用Java语言和Java代码生成HTML、XML等格式的Web页面;
2023-11-20 19:00:00 185
原创 JavaWeb-Javac编译原理
一、Javac编译的过程二、Javac编译器的结构2.1 词法分析器2.2 语法分析器2.3 语义分析器2.4 中间代码生成器2.5 优化器。
2023-11-19 17:16:18 126
原创 JavaWeb-中文编码
在Java中,可以使用javax.servlet.http.HttpServletRequest类获取POST请求中的表单数据,并使用java.net.URLEncoder类进行URL编码,使用javax.xml.bind.DatatypeConverter类进行Base64编码和MD5编码。在上面的代码中,使用了URLDecoder.decode()方法对编码后的Content-Type字段进行了URL解码,其中第一个参数是编码后的字符串,第二个参数是解码格式。这里使用的是UTF-8解码格式。
2023-11-17 14:00:00 173
原创 JavaWeb-JavaWeb中的I/O(输入/输出)
JavaWeb中的I/O(输入/输出)是指在Java Web应用程序中进行文件读写操作的过程。在Java Web应用中,I/O操作通常涉及到与客户端、服务器或数据库之间的数据传输。为了实现这些操作,Java提供了多种I/O类和接口,如FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等。
2023-11-17 07:00:00 367
原创 设计模式-访问者模式(Visitor)
访问者模式(Visitor Pattern)是一种将算法与对象结构分离的软件设计模式。它的基本思想是让访问者对象能够遍历一个或多个被访问对象,并根据需要对它们执行操作。在访问者模式中,被访问对象通常有一个接受访问者的方法,该方法接受一个访问者对象作为参数。访问者对象则定义了一个用于访问被访问对象的接口,该接口包含一组方法,每个方法对应于被访问对象的一个操作。1、将被访问对象和访问者解耦,使得它们可以独立地变化而不影响彼此;2、支持递归遍历,使得访问者可以处理复杂的数据结构;3。
2023-11-16 07:00:00 705
原创 JavaWeb-WEB请求过程
CDN基于一种智能虚拟网络构建在现有的互联网基础之上,通过在网络各处放置节点服务器,实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。它是互联网的基础协议,用于客户端与服务器之间的通信,规定了客户端和服务器之间的通信格式,包括请求与响应的格式。例如,二层负载均衡中,负载均衡服务器对外依然提供一个VIP(虚IP),集群中不同的机器采用相同的IP地址,但机器的MAC地址不一样。这样的缓存技术可以显著提升网站的访问速度,从而优化用户体验。
2023-11-16 07:00:00 914
原创 设计模式-策略模式(Strategy)
策略模式是一种行为型设计模式,它定义了一系列算法或策略,并将每个算法封装在独立的类中,使得它们可以互相替换或独立于使用它的客户而变化。这种类型的设计模式属于行为型模式。当在处理一项业务时,如果有多种处理方式,并且需要再运行时决定使用哪一种具体实现,就会使用策略模式。策略模式的主要组成部分包括抽象策略(Strategy)类、具体策略(Concrete Strategy)类和环境(Context)类。抽象策略类是策略接口,定义了所有支持的算法;具体策略类是实现了抽象策略接口的类,表示每种具体的算法;
2023-11-15 07:00:00 1426
原创 设计模式-模板方法模式(Template Method)
模板方法模式,也被称为模板模式,是一种行为型设计模式。它在一个抽象类中公开定义了执行其方法的模板,规定了算法的骨架。其主要特点是将一些步骤延迟到子类中,这些子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式主要解决了一些通用的方法在每一个子类都重新写了这一问题,其主要目的是将这些通用算法抽象出来。通过使用模板方法模式,子类可以在不改变算法结构的情况下,重新定义算法中的某些特定步骤。
2023-11-15 07:00:00 1253
原创 设计模式-观察者模式(Observer)
观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。观察者模式包含以下角色:主题(Subject):被观察的对象,维护一个观察者列表,提供添加、删除和通知观察者的方法。观察者(Observer):观察主题对象的状态变化,实现 Update 方法来更新自己的状态。
2023-11-14 07:00:00 1650
原创 设计模式-状态模式(State)
Java中的状态模式是一种行为设计模式,它允许对象在其内部状态改变时改变其行为。这种模式主要用于实现对象之间的解耦,使得对象可以在不修改其结构的情况下改变其行为。Java中的状态模式通常包括以下角色:上下文(Context):负责维护当前状态和根据当前状态调用相应的状态处理方法。状态(State):表示对象的状态,每个状态都有一个对应的处理方法。具体状态(Concrete State):是状态的具体实现,继承自状态接口。
2023-11-14 07:00:00 638
原创 设计模式-中介者模式(Mediator)
中介者模式,又被称为调停者模式,是一种行为型设计模式,其核心思想是通过引入一个中介对象来封装一系列对象之间的交互。这种模式使得各对象不需要显式地相互引用,从而降低了它们之间的耦合度和依赖性,使得系统更易于维护和扩展。中介者模式的主要角色包括:抽象中介者(Mediator):定义中介者接口,声明各种业务方法。具体中介者(Concrete Mediator):实现抽象中介者接口,负责与各个同事对象之间的通信和协调。
2023-11-13 19:00:00 668
原创 设计模式-备忘录模式(Memento)
备忘录模式(Memento Pattern)是一种行为型设计模式,它允许你捕获对象的内部状态,并在需要时恢复该状态,而无需暴露该对象的实现细节。所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样,以后就可以将该对象恢复到原先保存的状态。这种模式的名字可能对一些人来说稍微有点陌生,但其另一个名字快照模式可能会让人觉得更为熟悉。备忘录模式的适用场景包括:需要保存和恢复数据的场景,例如,编辑文档时需要撤销操作;需要避免重复计算的场景,例如,斐波那契数列;
2023-11-13 11:23:43 1098
原创 设计模式-解释器模式(Interpreter)
解释器模式是一种行为设计模式,它将一个表达式转化为一个由其他对象组成的树形结构,然后通过遍历该树来求解表达式的值。在解释器模式中,通常会定义一个抽象的解释器类,该类包含一个解析表达式的方法和一个计算表达式值的方法。具体的解释器类则实现了抽象解释器类中的解析和计算方法,用于处理不同类型的表达式。使用解释器模式的好处是可以将表达式的解析和计算分离开来,使得表达式的语法和语义可以独立修改。同时,由于表达式被转化为了树形结构,因此可以很容易地实现一些复杂的表达式操作,如递归、循环等。
2023-11-11 07:00:00 803
原创 设计模式-迭代器模式(Iterator)
迭代器模式是一种设计模式,它用于提供一种方法来访问一个容器对象中的各个元素,而又不暴露该对象的内部表示。在迭代器模式中,我们定义一个抽象的迭代器类,它包含两个方法:一个是hasNext()方法,用于判断是否还有下一个元素;另一个是next()方法,用于获取下一个元素。然后,每个容器类都实现自己的迭代器类,以访问容器中的元素。
2023-11-11 07:00:00 980
原创 设计模式-责任链模式(Chain of Responsibility)
责任链模式是一种面向对象设计模式,该模式中包含了一系列处理对象和命令对象。每个处理对象都有能力决定自己可以处理哪些命令对象,如果遇到无法处理的命令对象,它会将请求传递给下一个处理对象。这种模式的核心在于避免请求发送者与接收者之间的紧密耦合,让多个对象都有可能接收请求,并将这些对象连接成一条链,沿着这条链传递请求,直到有对象处理它为止。以公司员工请假为例,员工的请假请求可能有多个领导可以批准,但每个领导的批准权限不同。员工需要根据自己要请假的天数去找对应的领导签名。这就是责任链模式的一个生动实例。
2023-11-10 07:00:00 3360
原创 设计模式-命令模式(Command)
命令模式是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。命令模式的主要优点是可以将请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。
2023-11-10 07:00:00 635
原创 设计模式-享元模式(Flyweight)
享元模式,也称为Flyweight Pattern,是一种结构型设计模式,主要用于减少创建对象的数量以降低内存占用和提升性能。这种类型的设计模式尝试重用已有的同类对象,当没有找到匹配的对象时,才会创建新的对象。享元模式的主要组成部分包括享元工厂、抽象享元和具体享元类。享元工厂负责创建和管理具体的享元对象,当请求对象已经存在时,直接返回该对象;当不存在时,就创建一个新的对象。抽象享元定义了需要共享的对象的业务接口,而具体享元则实现了抽象享元类的接口,完成了特定的业务逻辑。
2023-11-09 07:00:00 304
原创 设计模式-代理模式(Proxy)
代理模式是一种设计模式,它为其他对象提供一个代理以控制对这个对象的访问。代理模式的主要目的是在不修改原始类的情况下,增加额外的功能。代理模式分为静态代理和动态代理两种。静态代理:在编译时确定代理类,代理类与目标类实现相同的接口。动态代理:在运行时动态生成代理类,代理类实现了InvocationHandler接口。
2023-11-09 07:00:00 227
原创 设计模式-外观模式(Facade)
外观模式(Facade Pattern)是一种结构型设计模式,这种模式通过为多个复杂的子系统提供一个一致的接口,来隐藏系统的复杂性,从而使得这些子系统更加容易被访问。该模式的主要意图是为子系统中的一组接口提供一个一致的界面,定义了一个高层接口,使得这一子系统更加容易使用。外观模式在日常开发中是经常被使用的一种设计模式,它通过引入一个外观角色,简化了客户端与子系统之间的交互关系,为复杂的子系统调用提供一个统一的入口,降低了客户端的使用难度。
2023-11-08 11:26:20 2035
原创 设计模式-装饰器模式(Decorator)
装饰器模式是一种结构型设计模式,它允许在运行时扩展一个对象的功能,而不需要改变其现有结构。这种模式的核心思想是通过创建一个包装类(装饰器)来动态地增强或修改原有对象的行为。1、不改变原有对象的结构和方法。2、通过创建一个与被装饰对象接口相同的装饰器类,实现对被装饰对象的包装。3、可以在不改变现有代码的基础上,动态地给一个对象增加新的功能。4、装饰器模式是继承的一个补充,提供了比继承更加灵活的方式来扩展对象的行为。
2023-11-08 11:02:55 820
原创 设计模式-组合模式(Composite)
组合模式(Composite Pattern),也被称为部分-整体模式、合成模式或对象树,是一种结构型设计模式。这种模式将一组具有相似功能的对象视为一个单一的对象,使得客户可以以统一的方式处理单个对象和组合对象。该模式依据树形结构来组合对象,用来表示部分以及整体层次。在特定的应用场景下,如需要表示的功能的结构可以被抽象成树状结构时,就非常适合使用组合模式。例如,在一个模拟的公司架构中,公司被视为一个整体,它下面可以设有行政部门和IT部门,而这些部门又可以有自己的下属部门。
2023-11-07 10:38:22 806
原创 设计模式-桥接模式(Bridge)
桥接模式,也被称为柄体(Handle and Body)模式或接口(Interface)模式,是一种桥接模式,也被称为柄体(Handle and Body)模式或接口(Interface)模式,是一种结构型设计模式。它的主要目的是将抽象部分与它的实现部分分离,使它们都可以独立地变化。这种分离可以通过组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。举个例子,假设有一个几何形状Shape类,从它能扩展出两个子类:圆形Circle和方形Square。
2023-11-07 09:14:36 2563 2
原创 设计模式-适配器模式(Adapter)
适配器模式(Adapter Pattern)是一种结构型设计模式,它主要用于解决两个不兼容的接口之间的问题。这种模式通过结合两个独立接口的功能,使原本不能一起工作的那些类可以一起工作。适配器模式涉及到一个单一的类,这个类负责将独立的或不兼容的接口功能整合到一起。举个例子,读卡器就是作为内存卡和笔记本之间的适配器。我们先把内存卡插入读卡器,再把读卡器插入笔记本,然后就可以通过笔记本来读取内存卡的内容了。
2023-11-06 15:11:56 1193
原创 设计模式-建造者模式(Builder)
建造者模式(Builder Pattern)是一种创建型设计模式,它提供了一种创建对象的最佳方式。使用多个简单的对象一步一步构建成一个复杂的对象。建造者模式关注如何逐步创建一个复杂的对象,不同的建造者定义了不同的创建过程,且具体建造者相互独立,且更换建造者和增加建造者非常的方便。
2023-11-06 14:18:05 378
原创 设计模式-工厂方法模式(Factory Method)
工厂模式(Factory Pattern)是Java中最常用的设计模式之一,属于创建型模式。这种模式提供了一种将对象的实例化过程封装在工厂类中的方式,用于封装和管理对象的创建。工厂模式包括三种不同的形式:简单工厂模式、工厂方法模式和抽象工厂模式。这三种模式在形式和特点上是极为相似的,都是为了更好地解耦。简单工厂模式是一种最简单的工厂模式,它提供了一个创建对象的最佳方式;工厂方法模式是一种将对象的实例化过程延迟到子类中进行的模式;抽象工厂模式是一种将创建一套产品族的操作交给一个工厂处理的模式。
2023-11-03 18:40:05 212
原创 设计模式-单例模式(Singleton)
Java 单例模式(Singleton)是一种设计模式,它确保一个类只有一个实例,并提供一个全局访问点。这种模式通常用于需要频繁创建和销毁的对象,例如数据库连接、线程池等。
2023-11-03 10:37:12 562
原创 java中的异常
在Java编程语言中,异常是指程序运行过程中出现的不正常且严重的错误。这些错误会中断正在运行的程序,因此,对异常的处理称为异常处理,它是程序设计中一个非常重要的方面,也是程序设计的一大难点。Java中所有的与异常有关的类都继承于Throwable类。Throwable类有两个子类,一个是Error类,另一个是Exception类。具体来说,Error类代表了JVM本身的错误,当这类错误发生时,JVM会做出终止线程的动作,我们通常不需要对这类错误进行处理。而Exception类则分为运行时异常和编译期异常。
2023-11-02 09:49:51 57
原创 Java常用类
Java的包装类是对八种基本数据类型进行封装,使之具有面向对象的特性。基本数据类型没有类的属性,例如方法。这些包装类分为两类,一种是对象型包装类,它不继承任何其他类,是Object的直接子类;另一种是数值型包装类,它继承自Number类。常用的包装类有Character、Number、Boolean等。Java的设计当初就提供了8种基本数据类型及对应的8种包装数据类型,正是为了更好地实现面向对象编程。
2023-11-01 11:22:18 46
原创 抽象类和接口
抽象类(Abstract Class)是Java中一种特殊的类,它不能被实例化。抽象类主要用于定义一组抽象方法(没有具体实现的方法),这些抽象方法需要由子类来实现。同时,抽象类也可以包含非抽象方法(有具体实现的方法)和普通成员变量。// 抽象方法// 非抽象方法System.out.println("这是一个非抽象方法");在Java编程语言中,接口是一种抽象类型,它主要是由一系列抽象方法组成的集合。这些方法没有具体的实现,而是只有声明。接口的目的是为了规定某些类应该具备的行为方式。
2023-11-01 10:45:14 86
原创 java三大特性-多态
Java中的多态,是面向对象编程的三大特性之一,继封装和继承之后。具体来说,多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定。这意味着一个引用变量最终会指向哪个类的实例对象,以及该引用变量发出的方法调用到底是哪个类中实现的方法,都必须在程序运行时才能决定。这种机制允许不同类型的对象对同一方法进行不同的实现,从而实现了同一个行为具有多个不同表现形式或形态的能力。例如,狗和猫都是动物,它们都有吃的行为,但是狗可以啃骨头,猫则可以咀嚼鱼。
2023-10-31 18:42:25 582
原创 java三大特性-继承
在Java编程语言中,继承是一种使得某个类型的对象(类)能获取另一个类型的对象(类)的属性和方法的方式。在Java中,子类可以重写父类的方法。方法重写是指子类提供了与父类相同名称和参数列表的方法。当子类对象调用该方法时,将执行子类中的实现,而不是父类中的实现。1、方法名必须相同。2、参数列表必须相同(包括参数类型和顺序)。3、返回值类型不一定要相同,但必须是父类方法的子类型或相同类型。4、访问修饰符不能比父类方法更严格。代码实例:System.out.println("动物发出声音");
2023-10-31 16:18:50 133
原创 java三大特性-封装
Java中的封装是一种将数据和对数据的操作隐藏在一起的机制,它能够提高代码的可维护性、可读性和安全性,实现代码的重用性和解耦。在Java编程语言中,包(package)是一种组织类的方式,其作用是提供唯一性,避免类名冲突。具体来说,包是一个类库单元,包含有一组类,这些类在单一的名称空间下被组织在一起,这个名称空间就是包名。在Java编程语言中,访问修饰符是一种关键的机制,它用于限制对类、变量、方法和构造方法的访问权限。具体来说,访问修饰符可以确定这些成员的可见性和访问范围。
2023-10-27 14:21:50 211
原创 方法和变量-2
成员变量(Member Variable)是Java类中的一种变量,它属于类本身,而不是类的某个对象。成员变量的生命周期从类被加载到内存开始,直到类被卸载出内存结束。成员变量可以被类的所有方法共享和访问。在类中定义成员变量时,需要使用private、protected或public关键字进行修饰。在Java编程中,局部变量是定义在方法、构造方法或语句块中的变量,其作用域仅限于当前方法、构造方法或语句块。这意味着只有在声明它们的方法或代码块中才能访问这些变量。
2023-10-27 11:07:49 57
二十二种设计模式.pdf
2024-08-18
常用算法的特点和应用场景.7z
2024-08-14
JVM内存区域图例说明.7z
2024-08-13
JVM作用解析图.7z
2024-08-13
多种AOP实现方式及产品简介
2024-08-13
vue面试题(vue面试题一)
2023-11-20
JAVA/Python实现二叉树遍历
2023-11-20
多种编程语言实现杨辉三角形
2023-11-20
java十大排序算法实现
2023-11-20
微服务开发手册.pdf
2023-11-17
java经典小程序,java入门100例!
2023-11-14
eclipse配置SVN
2023-11-03
java反编译工具zip
2023-10-24
itext-xtra-5.5.0.jar
2021-08-10
itext-pdfa-5.5.7.jar
2021-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人