终于有点空余时间,决定把之前学习的知识点整理一下,备以后复习。 动态代理有三角色:抽象角色,代理角色,真是角色。第一个记录下java提供的动态代理。即使用Proxy类和InvocationHandel接口。直接上贴上代码:class MyInvocationHandel implements InvocationHandler{private Object obj; //这是原对象//传入源对象,返回代理对象public Object bind(Object obj){this.obj=obj;return Proxy.newProxyInstance(obj.getClass()....
图片水印不仅水印文字还可以是图片,本次实现图片水印之水印图片,以后有需要可以用个代码批量处理自己的图片了。大家先看效果图代码编写1.导入相关架包2.配置XML文件 web.xml<servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param...
创建一个类,在该类中定义两个变量并为其指定初始值,然后交换两个变量的值,要求不允许借助第三个变量,只能使用异或运行实现两个变量值的交换。?1234567891011121314151617importjava.util.Scanner;publicclassVariableExchange { publicstaticvoidmain(String[] args){ System.out.println("请输入变量A的值"); Scanner scanner=newScanner(System.in); longA=scanner.nextLong(); System.out.p...
类图/*** 自己定义集合接口, 相似java.util.Collection* 用于数据存储* @author stone**/ public interface ICollection<T> {IIterator<T> iterator(); //返回迭代器void add(T t);T get(int index); }/*** 自己定义迭代器接口 相似于java.util.Iterator* 用于遍历集合类ICollection的数据* @author stone**/ public interface IIterator<T> {boolean hasNext();boolean hasPrevious();T next();T previous(); }/*** 集合类, 依赖...
Java+Selenium 如何实现关闭当前窗口并返回上一个窗口使用selenium中的driver.close()函数如果直接使用driver.close()函数,程序会报错,找不到页面tagat, 可以使用以下方法实现public void closeWindow() {try {String winHandleBefore = driver.getWindowHandle();//关闭当前窗口前,获取当前窗口句柄Set<String> winHandles = driver.getWindowHandles();//使用set集合获取所有窗口句柄driver.close();//关闭窗口Iterator<Stri...
1.JNI JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。JNI实现流程:2.C++与java交互流程图: 注:对于跨平台的 cocos2d-x 来说,除非必要,否则可不必深究其理,比如想要...
责任链模式:将接受者对象连成一条链,并在该链上传递请求,直到一个几首这对象处理它。通过让更多对象有机会处理请求,避免了请求发送者和接受者之间的耦合。 责任链模式的优缺点:优点:高内聚,低耦合。业务变更,新增一级处理时,只需要新增一个类即可。符合我们开闭原则(扩展开发,变更关闭)。缺点:时间,内存的效果相对较大。java的AWT对责任链模式的抛弃,去拥抱了观察者模式。 应用:Java异常处理机制JavaScript事件模型...
第一种实现方式:继承Thread类,并实现run方法,这种情况下每个线程对象都有一个独立的run方法package thread; /* @author zsben @create 2020-01-03 9:52多线程创建的第一种方法:继承于Thread类1.创建一个继承于Thread的类2.重写Thread类的run方法-->将此线程执行的操作声明在run中3.创建Thread子类对象4.通过此对象调用start方法:启动当前线程,调用当前线程的run方法 *///1.创建一个继承Thread类的子类class MyThread extends...
我这里是读取txt类型的文件,在指定的目录下有不同类型的文件实现代码,读取txt类型的文件并打印出该文件的绝对路径package com.SBgong.test;import java.io.File;publicclass ClassFile {publicstaticvoid main(String[] args){//读取输入路径的文件File[] list = new File("E:\\Mycode\\SBgong\\input\\2012-09-22").listFiles();for(File file : list){if(file.isFile()){if (file.getName().endsWith(".txt")) {// 就输出该文件...
md5 32位 加密原理 简单概括起来,MD5 算法的过程分为四步:处理原文,设置初始值,循环加工,拼接结果。 第一步:处理原文 首先,我们计算出原文长度(bit)对 512 求余的结果,如果不等于 448,就需要填充原文使得原文对 512 求余的结果等于 448。填充的方法是第一位填充 1,其余位填充 0。填充完后,信息的长度就是 512*N+448。 之后,用剩余的位置(512-448=64 位)记录原文的真正长度,把长度的二进制值补在最后。这样处理后...
前阵子在阮一峰的博客上看到了这篇《相似图片搜索原理》博客,就有一种冲动要将这些原理实现出来了。 Google "相似图片搜索":你可以用一张图片,搜索互联网上所有与它相似的图片。打开Google图片搜索页面:点击使用上传一张angelababy原图:点击搜索后,Google将会找出与之相似的图片,图片相似度越高就越排在前面。如:这种技术的原理是什么?计算机怎么知道两张图片相似呢?根据Neal Krawetz博士的解释,实现相似图片搜素的关键...
编写代码package com.xiang.lesson06;import org.apache.commons.io.FileUtils;import java.io.File; import java.io.IOException; import java.net.URL; import java.util.concurrent.*;// 实现Callable 接口; public class TestCallable implements Callable {private String url; //网络图片地址private String name;//保存的文件名public TestCallable(String url, String name) {this.name = name;this.url = url;}@Overrid...
Java API实现Hadoop文件系统增删改查Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口maven配置<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.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>hadoopStudy</groupId><artifactId>...
Java 实现 对象List 进行排序按照对象中的某个属性,对对象List进行排序。以初唐四杰的成绩排名为例,对诗人进行排序。 Java实现如下:1、诗人(Poet)类结构,定义如下:/*** Created by Miracle Luna on 2020/1/11*/publicclass Poet {private String name;private Double score;public Poet(String name, Double score) {this.name = name;this.score = score;}public String getName() {return name;}publicvoid setName(Strin...
一、Java使用多线程主要有三种方式:第一种:继承Thread类步骤:① 定义一个类,继承Thread类,并重写Thead类的run方法,run方法内的内容为该线程要执行的任务。run方法也被称为执行体。 ② 创建Thead子类的实例,即创建线程对象。 ③ 使用线程的start方法启动线程。 第二种:实现Runnable方法步骤:① 定义一个类,实现Runnable接口,并重写该接口的run方法,run方法体仍然是执行体。 ② 创建一个T...