java
月亮很亮1395
还在翻越技术的山,走呀走,爬呀爬。
展开
-
多线程的实现方式
多线程的创建原创 2022-08-11 10:34:35 · 780 阅读 · 0 评论 -
利用反编译来查看Java中接口或者类的作用
1.首先打开cmd(win+R),Javac MyAnno2.java 对我们写的注解Java文件进行编译,会生成一个MyAnno2.class字节码文件。2.然后Javap MyAnno2.class 进行反编译,重新生成一个Java文件,里面的内容如下,解释了这个注解的本质。public interface cn.itcast.annotation.MyAnno2 extends java.lang.annotation.Annotation {}MyAnno2.javapackage cn.原创 2022-05-09 09:38:47 · 429 阅读 · 0 评论 -
Java中的元注解
元注解:用于描述注解的注解常用的4个注解(在定义自定义注解的时候可以用)@Target:描述注解能够作用的位置 * ElementType取值: * TYPE:可以作用于类上 * METHOD:可以作用于方法上 * FIELD:可以作用于成员变量上@Retention:描述注解被保留的阶段@Retention(RetentionPolicy.RUNTIME):当前被描述的注解,会保留到class字节码文件中,并被JVM读取到@Documented...原创 2022-05-08 20:23:19 · 250 阅读 · 0 评论 -
Java中的注解
注解:说明程序的。给计算机看的注释:用文字描述程序的。给程序员看的注解的定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。*概念描述:* JDK1.5之后的新特性* 说明程序的* 使用注解:@注解名称作用分类:①编写文档:通过代码里标识的注解生成文档【生成文档doc文档】//*这个个人比较陌生*②代码分析:原创 2022-05-08 18:44:20 · 50 阅读 · 0 评论 -
反射机制的简单案例
案例:* 需求:写一个"框架",不能改变该类的任何代码的前提下,可以帮我们创建任意类的对象,并且执行其中任意方法* 实现:1. 配置文件2. 反射* 步骤:1. 将需要创建的对象的全类名和需要执行的方法定义在配置文件中2. 在程序中加载读取配置文件3. 使用反射技术来加载类文件进内存4. 创建对象5. 执行方法配置文件:执行Person类中的eat方法className=cn.itcast.domain.PersonmethodName=eat执行结果eat...配置文件:原创 2022-05-08 17:50:45 · 99 阅读 · 0 评论 -
java中的反射机制
了解反射之前先了解一下框架的概念:框架:半成品软件。可以在框架的基础上进行软件开发,简化编码,*使用框架不需要用到反射机制,而开发框架需要用到反射 *反射:将类的各个组成部分封装为其他对象,这就是反射机制反射的优点:1. 可以在程序运行过程中,操作这些对象。2. 可以解耦,提高程序的可扩展性。获取Class对象的方式: 1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象 * 多用于配置文件,将类名定义在配置文件中。读取文件,加载类 2. 类名原创 2022-05-08 15:21:20 · 57 阅读 · 0 评论 -
Junit单元测试
黑盒测试:不知道程序内在的执行逻辑白盒测试:要关注程序的执行逻辑(需要写代码)Junit属于白盒测试使用步骤:1.定义一个测试类public class Calculator { /** * 加法 * @param a * @param b * @return */ public int add (int a , int b){ //int i = 3/0; return a - b; }原创 2022-05-08 12:09:08 · 597 阅读 · 0 评论 -
常用的函数式接口
1.Supplier接口,仅包含一个无参的方法:T get()用来获取一个泛型参数指定类型的数据。2.Consumer接口,包含抽象方法,void accept(T t) 正好与Supplier相反,它不是生产一个数据,而是 消费一个数据,其数据类型由泛型决定。3.Predicate接口,包含一个抽象方法:boolean test(T t)用于条件场景判断。4.Function接口,用来 根据一个类型的数据得到另一个类型的数据,前者称为前置条件,后者称为后置条件。...原创 2022-05-07 21:16:51 · 692 阅读 · 0 评论 -
送快递的最短路线
题目描述:某物流派送员p,需要给a、b、c、d4个快递点派送包裹,请问派送员需要选择什么的路线,才能完成最短路程的派送。假设如图派送员的起点坐标(0,0),派送路线只能沿着图中的方格边行驶,每个小格都是正方形,且边长为1,如p到d的距离就是4。随机输入n个派送点坐标,求输出最短派送路线值(从起点开始完成n个点派送并回到起始点的距离)。首先拿到题目后思考问题,跟背包 问题很像,有...原创 2018-07-20 18:11:14 · 5197 阅读 · 0 评论 -
红黑树的插入
上一节总结了红黑树的基本特性和它的删除,这一节总结红黑树的插入,其实与删除也类似,无论是插入还是删除,在节点增加和减少后要保证红黑的各个子树依旧满足红黑树的特性。 为不影响树根节点到叶子节点上黑色节点的个数相同,插入的节点都是红色X,记X的父节点为Y,叔叔节点为Z,祖父节点为F,如果Y为黑色就不用进行调整,如果Y为红色则需要调整,分为一下三种情况:(1)Z为红色,如图掉换一...原创 2018-07-20 14:42:12 · 141 阅读 · 0 评论 -
红黑树的删除
R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)红黑树的特性:每一个节点都是有颜色的不是黑色就是红色 root节点必须是黑色 所有的叶子节点是null,黑色 每个黑色的节点必须有两个红色的子节点,或者说不能有两个连续的红色节点 从任一节点到其子树的叶子节...原创 2018-07-19 12:41:41 · 1012 阅读 · 0 评论 -
八皇后问题
八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。回溯法:private static ...原创 2018-07-19 11:25:05 · 148 阅读 · 0 评论 -
求重叠区域
在练习代码能力的时候遇见这样一个题目:平面内有n个矩形, 第i个矩形的左下角坐标为(x1[i], y1[i]), 右上角坐标为(x2[i], y2[i])。如果两个或者多个矩形有公共区域则认为它们是相互重叠的(不考虑边界和角落)。请你计算出平面内重叠矩形数量最多的地方,有多少个矩形相互重叠。点计数法,重叠后的矩形左下角坐标一定是{x1[0]~x1[50], y1[0]~y1[50]...原创 2018-07-24 18:24:52 · 1650 阅读 · 0 评论 -
java-maze
用非递归的栈来解决 * 用类来解决迷宫路径的查找问题,寻找一条从左上角迷宫入口 * 到右下角迷宫出口的一条有效路径,0代表可以行走,1代表不能行走, * 找到,请输入最终的迷宫和路径信息,找不到,请输出不存在有效径。 * * 软件的运行如下: * * 请输入迷宫的行列数(m * n):5 5 * 请输入迷宫的路径: 0 1 1 1 0 0 0 1 1 1原创 2017-10-29 21:55:54 · 1180 阅读 · 0 评论 -
java-类对象的初始化
类对象的初始化: 1.static成员变量的初始化 2.static的初始化 //与实际在代码中的位置有关 3.实例成员变量的初始化 4.实例块的初始化 //与实际在 代码中的位置有关 5.构造函数原创 2017-10-28 22:40:35 · 486 阅读 · 0 评论 -
Java-class1&2
1)Java 类型 1.简单类型 byte 1字节 char 2字节 short 2字节 int 4字节 long 8字节 boolen(没有大小true/flase) 都在函数栈上存储原创 2017-10-17 17:06:35 · 993 阅读 · 0 评论 -
接口与抽象类
抽象类抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。接口接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情。 什么时候使用抽象类和接口如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用转载 2017-11-24 16:05:34 · 155 阅读 · 0 评论 -
JAVA 的四种引用方式
我们知道java语言提供了4种引用类型:强引用、软引(SoftReference)、弱引用(WeakReference)和幽灵引用(PhantomReference),与引用密切相关的,还有一个引用队列ReferenceQueue。引用和引用队列的关系,对于垃圾回收来说非常重要,学习垃圾回收机制,必须要先了解引用和引用队列的使用方法。本文主要参考网上的一些理论,同时配合自己的一些测试代码,更好的理解原创 2018-04-14 12:19:45 · 537 阅读 · 0 评论 -
CGLIB动态代理与AOP
一.(code generation library)简介 是一个开源项目,是一个强大的,高性能,高质量的code生成类库,它可以在运行期间扩展java类与实现java接口Hibernate支持它来实现PO(Persistent Object),它的底层 是通过使用一个小而快的字节码框架ASM,来转换成java的字节码。 JDK13就就引进了动态代理,CGLIB通过产生代理类的原创 2018-04-17 18:12:18 · 188 阅读 · 0 评论 -
编码问题总结
问题分析(网上找的 :) ) Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。 首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成c原创 2018-04-17 18:44:11 · 187 阅读 · 0 评论 -
JAVA 动态绑定和静态绑定
绑定:一个方法的调用与方法所在的类关联起来。java中的绑定分为静态绑定和动态绑定,又被称作前期绑定和后期绑定。 静态绑定:(final、static、private)在程序执行前已经被绑定,也就是说在编译过程中就已经知道这个方法是哪个类的方法,此时由编译器获取其他连接程序实现。 动态绑定:在运行根据具体对象的类型进行绑定。 1.静态绑定 private:不能被继承,则不能通过子类对象调用,...转载 2018-06-08 15:48:29 · 187 阅读 · 0 评论 -
倒排索引的实现
概念:倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。 倒排文件: 倒排列表用来记录有哪些文档包含了某个单词。一般在文档集...原创 2018-07-24 00:15:55 · 2431 阅读 · 0 评论 -
跳跃表
跳跃表相对与其它高级数据的优势在学习了有关于平衡树的数据结构,但是代码实现方面有一定复杂度,相对来说跳跃表它独有的有优势,实现起来没有那么复杂,只要熟悉链表的代码,写起来比AVL,BST,RBtree,简单很多;它的时间复杂度log(n),空间复杂度O(n)跳跃表的特征 由很多层结构组成 每一层都是一个有序的链表 最底层(Level 1)的链表包含所有元素 如果一个元素出现在...原创 2018-07-24 00:18:50 · 164 阅读 · 0 评论 -
java-数组
1)数组的初始化 1.一维数组.三种int[] array={1,2,3,4,5};int[] array1=new int[5]; array1={1,2,3,4,5};int[] array2=new int[]={1,2,3,4,5};2.二维数组.三种int[][] array=new int[][]{{1,2},{1,2},{1,2}}; int[][] array1=new原创 2017-10-26 16:51:07 · 190 阅读 · 0 评论