从未止步..
努力努力再努力!
展开
-
实现将信息作为txt,pdf,图片的形式保存到电脑~
关于这个功能的实现,策略者模式也可以,但是对比了一下,策略者模式实现该功能会增加类的个数,但策略者模式满足开闭原则,后期如果有了新的打印方法,不用修改源代码,只需要增加新的即可,没有最好的技术只有最合适的技术,无论使用哪种方法还是需要根据实际开发进行选择!原创 2024-01-16 18:12:55 · 786 阅读 · 1 评论 -
你知道几种遍历map的方式?
使用迭代器遍历Map的键值对,使用for-each循环遍历Map的键值对,只遍历Map的键,第四种:只遍历Map的值原创 2024-01-14 15:56:32 · 465 阅读 · 1 评论 -
IDE实用小技巧之快速的将某一段代码抽离为一个方法~
第一步:选中你要作为方法抽离出来的代码块。第三步:我们可以修改方法名。原创 2024-01-12 20:34:14 · 1790 阅读 · 2 评论 -
Java中的i++是原子操作吗?
的操作不是原子操作,那么由于两个线程并发执行,可能会出现数据竞争,导致最终结果不是0。因此我们可通过创建两个线程,对同一个变量count,一个线程对。我们多次运行会发现count不为0且有好几种不同的结果。的操作是原子操作,那么最终的结果应该是0。每个线程都执行100次操作。进行递增操作,另一个线程对。分为三步进行,分别是。原创 2023-11-30 09:37:42 · 619 阅读 · 1 评论 -
为什么说java中能不用static就不用static?
并且如果变量没有正确的释放或者垃圾回收机制无法回收,会导致内存泄漏问题,由于变量时一直存在于内存中,如果变量的值在某个时间点发生了改变,其他部分的代码无法获取到变量的最新值,从而导致逻辑错误。如果在程序的其他部分需要更改或扩展静态方法或变量,可能需要对整个代码库进行修改。,因为它将方法或变量绑定到类而不是实例。,因为它们依赖于类本身,而不是实例。多个线程同时访问或修改静态变量可能会线程安全问题。,因此如果被static修饰的变量的数量很多时,将会。,因此在Java中,如果可以避免使用静态,原创 2023-09-30 02:15:00 · 338 阅读 · 0 评论 -
Java中@before和setup()方法的作用~
在Java中,**setup()**和**@Before**同时使用的作用是`在测试方法之前执行一些准备工作`, **setup()**是JUnit中的一个方法,它**通常被用来初始化测试对象和设置测试环境**,**它会在每个测试方法执行之前被调用**,**并且可以在多个测试方法中共享对象和环境**。`@Before`是JUnit中的一个注解,它`用于标记一个方法`,`在每个测试方法执行之前被自动调用`。通过使用@Before注解,我们可以将一些通用的准备操作(如创建对象、初始化变量等)放置在一个方法中,以原创 2023-09-29 13:38:45 · 765 阅读 · 0 评论 -
如何通过java程序获取表的自增主键值?
是 JDBC 中的一个方法,它用于获取执行 SQL 语句后所生成的键,例如主键值、自增长键等。如果新的记录具有自动生成键,或者原始记录的所有生成键已返回,则此方法返回一个。方法获取数据库的名称,再结合不同的数据库驱动的实现方式,来判断该数据库是否支持生成键。需要注意的是,在某些情况下,执行 SQL 操作并不一定能够返回生成的键,这可能是因为。对象,其中包含代表生成键的值的一列。如果要获取主键的表中不存在自增主键,那么将无法获取自增主键的值。如果该方法的返回值为。例如,在 MySQL 数据库中,可以使用。原创 2023-06-15 12:19:53 · 1379 阅读 · 4 评论 -
快速拼接字符串的新类StringJoiner~
是 Java 8 新增的一个类,它不仅提供了一种快速、方便地将多个字符串拼接成一个字符串的方法,并且在拼接之时还可以指定分隔符、前缀和后缀,以及添加多个字符串,最终输出拼接后的字符串。StringJoiner add(CharSequence newElement):添加一个新的字符串,并返回 StringJoiner 对象本身,可以支持链式调用。 StringJoiner merge(StringJoiner other):合并另一个 StringJoiner 对象的内容到当前对象,返回合并后的字符原创 2023-06-14 15:26:26 · 272 阅读 · 2 评论 -
JDBC基础内容
虽然这样能够正确的修改结果,但并不是最优方案,因为输出的影响行数对于用户来说,没有任何意义,因此,我们需要将输出影响行数的内容修改为提示信息。,正是由于这个原因,所以我们不能像上面执行DML语句一样,通过返回值来判断是否成功。虽然返回值为0,但是在mysql中进行查询,我们会发现该数据库已经成功被删除,因为。,但是使用预编译,前两个步骤只执行一次,此后只需要执行第三个步骤即可。,各个数据库厂商去实现这套接口,提供数据库驱动jar包,我们。,只要安全使用预编译语句,就不需要对传入的数据做任何过滤。原创 2023-01-05 16:52:43 · 460 阅读 · 2 评论 -
java之Lamda表达式的介绍
λ希腊字母表中排序第11位的字母,英文名称为Lambda,它Lambda表达式是Java SE 8中一个重要的新特性,允许通过表达式来代替功能接口,它与其他方法相同,提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块),在上述代码中,我们没有创建实现类[fun_test1]的实例化对象就实现了具体的show()方法,通常,我们也。Lambda表达式允许你直接把一个代码块赋值给一个变量。在讲如何使用Lamda表达式之前,我们先来学习一下。,那么它就是一个函数式接口,原创 2022-12-25 19:11:25 · 2258 阅读 · 0 评论 -
java之静态代理模式
代理人可以替受代理的人完成一些工作,比如:学校与学生之间的关系来说,学生就好比被被代理类,学生只需要负责上课,写作业,考试等事务,而类似于课程,考试,任课教师的安排等都不需要学生去做,可以交给其学校完成。原创 2022-12-25 12:00:15 · 190 阅读 · 0 评论 -
java之文件操作
文件就是保存数据的地方,例如:word文档,txt文件,Excel文件等都是文件,它可以保存一张图片,也可以保存视频,声音等…流:数据在数据源(文件)和程序(内存)之间经历的路径。输入流:数据从数据源(文件)到程序(内存)的路径。输出流:数据从程序(内存)到数据源(文件)的路径。文件在程序中是以流的形式来操作的。原创 2022-12-23 20:34:39 · 309 阅读 · 0 评论 -
通过普通方式调用和反射方式调用以及关闭检测后,通过反射方式调用的性能对比
【代码】通过普通方式调用和反射方式调用以及关闭检测后,通过反射方式调用的性能对比。原创 2022-12-15 18:28:57 · 146 阅读 · 3 评论 -
java中通过反射调用普通方法和操作属性的方法
通过反射,调用类中的方法,通过Method类完成:1:通过Class类的getMethod(String nameClass...parameterTypes)方法取得一个Method对象,并设置此方法操作时所需要的参数类型。2:之后使用Object invoke(Object obj, Objectll args)进行调用,并向方法中传递要设置的obi对象的参数信息。原创 2022-12-14 19:05:56 · 303 阅读 · 0 评论 -
如何获取java加载器和类完整结构的方法?
类加载器的作用:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后在堆中生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口。类缓存:标准的JavaSE类加载器可以按要求查找类,但一旦某个类被加载到类加载器中,它将维持加载(缓存)一段时间。不过JVM垃圾回收机制可以回收这些Class对象原创 2022-12-14 19:03:37 · 636 阅读 · 0 评论 -
java----类的加载与其初始化
`注:在链接阶段的准备工作时,编译器会为类变量赋默认值为0,即此时的m为0`链接完毕后进行类的初始化,这一过程将会执行类构造器()方法,将类中所有类变量的赋值语句以及静态代码块中的语句收集和合并:原创 2022-12-14 18:56:20 · 663 阅读 · 0 评论 -
java中的反射和Class类
例如:新的函数对象甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化,通俗点说就是在运行时,代码可以根据某些条件改变自身结构**,主要动态语言:Object-C.C#,JavaScript.PHP.Python等**以上的方法返回值的类型是一个Class类,此类是java反射的源头,实际上所谓反射从程序的运行结果来看也很好理解,即:可实现通过对象反射求出类的名称。”,即JAVA具有一定的动态性,我们可以利用反射机制获得类似动态语言的特性,JAVA的动态性让编程的时候更加灵活。原创 2022-12-14 18:50:14 · 734 阅读 · 0 评论 -
java之注解的定义和使用
interface 注解名注:一般情况下将Retention的值定义为:Retention.RUNTIME} } @Retention(value = RetentionPolicy . RUNTIME) //表示该注解在运行时仍然有效 @Documented //表示将该注解生成在javadoc中 @Inherited //表示子类可以继承父类的注解 //表示该注解可应用在方法上,如果应用到类上就会报错, //若还想应用在类上,则可在后面直接添加ElementType.TYPE @Target({原创 2022-12-10 16:13:02 · 2221 阅读 · 1 评论 -
java中的Collecions类
ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素,除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小,在修改的过程中,我将capacity的值改变为小于数组长度的,因此看来给list1指定容量在这里是没什么用,但该操作在某些时候可提高效率。通过看源码,发现这个方法是有目标数组和源数组的元素个数进行比较的操作,如果目标数组的元素个数小于源数组的元素个数,则抛出异常:下标越界。输出为0,并不是我们最初设定的4。原创 2022-12-09 22:03:33 · 2370 阅读 · 2 评论 -
java集合框架--------Comparable<T>接口与Compatator<T>接口
java提供了Comparable接口与Compatator接口,它们为数组或集合中的元素提供了排序逻辑,实现此接口的对象数组或集合可以通过Arrays.sort或Collections.sort进行自动排序一个类实现了Comparable接口,则表明这个类对象之间是可以互相比较的,这个类对象组成的集合元素就可以直接使用sort()方法进行排序, 假设“有一个List列表(或数组),里面的元素是实现了Comparable接口的类”则该List列表(或数组)可以通过 Collections.sort(或原创 2022-12-08 10:41:49 · 344 阅读 · 0 评论 -
java集合框架------Map接口与实现类
Map接口没有从Collection接口继承,Map接口用于维护“键-值”对数据,这个“键-值”对就是Map中的元素,Map提供“键(Key)”到“值(value)”的映射,,,Map的键是用Set集合来存储的,所以充当键元素的类必须重写hashCode()和equals()方法,通过键元素来检索对应值元素HashMap:HashMap特点:HashMap常用的构造方法如下:(1)HashMap():创建一个空 HashMap 对象,并为其分配默认的初始容量和加载因子(2)HashMap(int原创 2022-12-07 16:46:27 · 415 阅读 · 0 评论 -
java集合框架------Collection接口,List接口与实现类,Set接口与实现类
对于多个同一类型的数据进行存放和处理时,相信很多人想到的第一个方法就是使用数组,但是数组的使用有非常多的局限性,比如长度不够啦,增删操作需要移动多个元素啦。对于此种问题,采用集合才是最好的解决办法,由于java语言对数据结构进行了封装,我们只需要在java已有的集合框架中选择对我们问题最合适的类,就可以完成创建和操作数据结构的任务,在应用的过程中,我们并不需要考虑数据结构和算法的实现细节,而所抽象出来的数据结构和操作统称为java集合框架。集合框架通过提供有用的数据结构和算法,能够使程序员将重心放在程序更为原创 2022-11-30 15:39:48 · 852 阅读 · 6 评论 -
Java集合框架-------泛型
装箱:将一个值封装称为一个对象的过程举例:拆箱:从一个类型包装器中提取值的过程举例:装箱和拆箱是Java最初的版本中就存在的,他并不是Java1.5的新特性,自动拆装箱,当编译器编译时若发现是基本类型与包装类型之间相互赋值,将自动补充代码来完成转换工作,这个过程称为自动拆装箱。自动装箱:当我们需要某个类型的对象时,该基本类型的数据类型自动被封装到与它相同类型的包装器中举例:自动拆箱与自动装箱相反,当我们需要一个值时,这个被装箱到对象中的值就会被自动的提取出来,不需要我们手动的去调用xxxvalue(原创 2022-11-12 21:27:26 · 1199 阅读 · 1 评论 -
超详细的Java异常处理机制知识整理
在实际开发中,异常正所谓是“千姿百态”,但JDK提供给我们的异常类型是很有限的,因此面对实际开发中的各种异常问题,我们除了灵活使用JDK提供给我们的之外,还需要我们自定义一些异常,这些异常也就是我们在面向对象编程的过程中,出现的特有问题。既然是自定义,那么由于每个人想法和处理问题的方式不同,很容易出现操作异常等问题,为了解决这种问题,我们。原创 2022-11-08 13:24:49 · 2291 阅读 · 14 评论 -
Java-----------集合类的应用【仓库管理系统】
仓库为一个集合或者列表,而列表或集合中的元素对象即为产品,通过product类去定义产品的属性,再通过phone具体的类去实现列表或集合中的增删查操作。实现功能: 模拟库存管理系统,该系统主要包括系统首页、商品入库、商品显示和删除商品功能。首页:要求显示系统所有的操作,用户可进行选择操作进行不同功能的实现。商品显示功能:用户选择商品显示功能后,在控制台打印仓库所有商品信息。删除商品功能:用户选择删除商品功能后,根据用户输入的商品编号删除商品。商品入库功能:根据用户输入的信息判断是否需要录入商品。原创 2022-11-04 13:34:37 · 692 阅读 · 0 评论 -
Java常用类--------Object类
是用来把一堆对象散列到自己各自的队列中去的一种标识码,如果通过equals比较出来的这两个对象是相等的,那么这两个对象的地址是相同的,地址相同的对象,他们的散列码一定相同。一般情况下在定义类时,都会重写toString()方法,在打印该类对象时,方便看到对象的相关属性值信息。在定义类时,可以重写equals()方法,重新定义对象的比较逻辑,同时也要重写hashcode()方法。通过equals()方法返回false的两个对象的hashcode()方法的返回值可以相同。原创 2022-10-24 18:46:22 · 1752 阅读 · 1 评论 -
Java------String类和正则表达式
String字符常量的创建,String常用的方法,Java对于对象内存的分配,String对象池;StringBuffer;正则表达式的使用方法原创 2022-10-23 13:13:13 · 1825 阅读 · 10 评论 -
Java-----抽象类为什么不能实例化?抽象方法为什么不能被static修饰?set和get方法的使用方法
抽象类不能实例化的原因;抽象方法不能被static修饰的原因;set和get方法的使用方法原创 2022-10-16 18:06:04 · 1107 阅读 · 2 评论 -
Java---抽象类和接口
抽象类的基本概念和定义以及实例应用;接口的基本概念和作用以及实例应用;接口和抽象类的比较原创 2022-10-15 15:53:28 · 5498 阅读 · 1 评论 -
java------方法的覆盖[重写],super和final关键字
它是多态性的重要体现之一,是动态多态性的表现形式,他是指子类中可以定义名称,参数列表,返回值类型均与父类中某个方法完全相同的方法,我们就说子类中定义的这个方法覆盖了父类中的同名方法。//anmial为父类 package anmial;//定义方法show System . out . println("I am a dog");} }//子类Fish继承了父类Animal public class Fish extends Animal {原创 2022-10-03 15:35:05 · 1246 阅读 · 1 评论 -
Java实验-------编写求解几何图形的面积和周长应用程序
实验要求:应用抽象类或接口等面向对象程序设计技术的特点 实验内容:编写求解三角形,矩形,圆的周长和面积。原创 2022-10-01 18:36:21 · 1480 阅读 · 0 评论 -
java之上转型与下转型对象
1>上转型对象只能访问从父类继承而来的属性,方法以及实例化对象时的类中定义的覆盖方法(上转型对象只能访问A中被继承的属性,方法以及B中定义的覆盖方法)。上转型对象的本质其实还是一个子类对象,只不过是一个“限制版”的子类对象,子类对象新增的成员属性和方法不能使用而已。上转型对象不能访问实例化对象时所增加的成员属性和方法(上转型对象不能访问B类[子类]新增的属性和方法)。使用上转型对象机制的优点是体现了面对对象的多态性,增强了程序的简洁性。从父类继承的方法中被改写的部分,成功输出。原创 2022-10-01 12:48:06 · 1592 阅读 · 3 评论 -
Java-----投票系统
使用Java实现投票系统原创 2022-09-23 22:08:56 · 3993 阅读 · 2 评论 -
Java-----银行管理系统
bank类:用来存放系统所支持的功能—存款,取款,查询。deal_service:用来实现用户的业务办理。银行管理系统目前支持,存款,取款,查询功能。原创 2022-09-20 23:09:02 · 412 阅读 · 0 评论 -
Java入门------static关键字和静态属性、方法
static关键字;静态属性;静态方法的定义和使用;静态代码块;原创 2022-09-15 14:57:57 · 1700 阅读 · 1 评论 -
Java入门-------构造方法和构造方法的重载
定义构造方法包括无参构造方法和有参构造方法;构造方法的重载;this关键字的定义及使用方法;不同代码块的定义和作用原创 2022-09-12 10:26:59 · 3773 阅读 · 5 评论 -
Java-----面向对象
面向对象和面向过程的区别;面向对象的特点;类和对象的定义;局部变量和成员变量的区别;对象的创建,使用,以及引用传递;访问控制;封装的原因,方法;原创 2022-09-10 10:07:41 · 4502 阅读 · 15 评论 -
Java入门------数组
一维数组和二维数组的定义和使用方法;计算数组的长度,初始化默认值数组的索引和遍历;数组元素的排序;原创 2022-09-06 20:54:41 · 1629 阅读 · 2 评论 -
java入门-----基本语法之语句的使用
if的判断条件是偶数项会被输出,当i增大到1时,已经不满足i%2==0,但是因为else的执行语句为continue,所以此时本次循环结束,给i++,再将i的值在for循环的条件语句哪里进行判断,执行下一次循环。c:d),这也是条件运算符的嵌套情形,即三元表达式中的表达式2又是一个三元表达式。在平时生活中经常会出现这样的情况,一个班里可能同时有两个叫小明的同学,甚至有多个,但是他们的身高,体重,外貌等其他方面有所不同,老师点名时会根据他们的特征来区分,在编程语言里也存在,这种情况。语句结尾处的分号";原创 2022-09-06 14:52:17 · 566 阅读 · 0 评论 -
JavaSE基本语法~
Java程序代码必须放在一个类中,刚开始学习时,我们可以将类看作一个Java程序。类使用关键字class定义,在class前面可以有类的修饰符。类的定义格式如下:1:Java程序代码可分为执行定义语句和功能执行语句,其中,结构定义语句用于声明一个类或方法,功能执行语句用于实现具体的功能,每条功能执行语句的最后必须用分号结束(;)。举例:需要注意的是,在程序中,不要将英文的分号写成中文的分号。否则编译器会出现如下所示的错误:2:,在定义类时,不能将class写成Class,否则编译器会出现如下错误:假设在程序原创 2022-09-03 10:25:20 · 4135 阅读 · 7 评论