![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
pangpd
Just a boy caught up in dreams and fantasies !
展开
-
【Java】将数字金额转换为大写中文金额
将数字金额转换为大写中文金额转载 2022-09-16 15:00:31 · 1804 阅读 · 0 评论 -
【Java】批量修改文件名(支持多目录,递归目录)
import java.io.File;public class ChangeFileName { public static void main(String[] args) { // 要修改的文件所在目录 String path = "C:\\Users\\Pangpd\\Desktop\\检测单"; changeFileName(path); } public static void changeFileName(Strin原创 2022-03-19 20:16:31 · 1065 阅读 · 0 评论 -
【字符串】Java中判断字符是否为字母或数字
Java中提供了一个Character类的静态方法:Character.isDigit(char c) //判断字符c是否是数字字符,如‘1’,‘2’,是则返回true,否则返回falseCharacter.isLetter(char c) //判断字符c是否是字母Character.isLowerCase(char c) //判断c是否是小写字母字符Character.isUpperCase(char c) //判断c是否是大写字母字符两者结合有:Character.isLetter原创 2020-12-20 09:26:53 · 3316 阅读 · 1 评论 -
【Java】自定义ArrayList(顺序存储结构)和性能分析
1. 自定义ArrayList首先我们先看一个案例:假如一个球场的教练,安排球员(5个)上场模拟数据存储的案例,模拟上场球员的球衣号码的存储。(1)初始容量为5的线性列表,准备用来存储场上的5个球衣号码:[11,22,33,44,55](2)查询指定位置的球员球衣号码是多少,查询索引位置为2的球衣号码如:33;(3)根据球衣号码查询该球员在场上的索引位置,44在球衣号码的球员在场上的索引位置是3(4)替换球场上索引位置为2的球员,替换之后该位置的球衣编号为,333(5)替换球衣号码为22的球原创 2020-08-09 13:32:01 · 214 阅读 · 0 评论 -
【Java】字符串分类和概述(String类分析,包含两个面试题,字符串比较,编译器优化)
1. 字符字符序列:把多个字符按照一定得顺序排列起来.字符串:把多个字符串串联起来(好比羊肉串).2. 字符串的分类:(1)不可变的字符串(String):当前对象创建完毕之后,该对象的内容(字符序列)是不能改变的,一旦内容改变就是一个新的对象。(2)可变的字符串(StringBuilder/StringBuffer):当对象创建完毕之后,该对象的内容可以发生改变,当内容发生改变的时候,对象保持不变.我们看下String类源码:其实String就是char数组的封装!字符串的本质(底层是原创 2020-08-03 13:29:10 · 481 阅读 · 0 评论 -
【Java】抽象类为什么不能被实例化?
1. 前言抽象类基础:请查看博客:抽象方法和抽象类详解2. 抽象类为什么不能被实例化?答案:Java语言的规定!首先,抽象类是存在构造器的,在思考这个问题之前,我大概有一种这样的思维:既然有构造器,说明这个类可以被实例化(错误)。知道遇到这个问题后,我才意识到我的这个想法是有多少错误。实例化和有没有构造方法没有关系,构造方法只是初始化对象的,new关键字向JVM申请内存来创建对象的。举个例子:苹果是水果的一个实例。但是不存在水果这样的实例!1.第一点:回归问题最初, 我们为什么要实例化?我们转载 2020-10-27 20:49:39 · 1944 阅读 · 0 评论 -
【Java】接口—面向接口编程;(接口和抽象类的区别!)
一. 接口的定义专业来说,多个抽象类的的抽象就是接口。通俗地讲,在Java中最小的程序单元就是类,接口其实是一个特殊的类。Java中的接口表示规,用于定义一组抽象方法,表示某一类事物必须具备的功能,要求实现类必须来实现该接口并提供方法实现。二. 语法定义类语法: [public] class 类名{}定义接口语法: [public] interface 接口名{}; //(在这里还没有考虑接口的父接口等等).接口起名问题:表示具有某些能力的,有人习惯以able/handler结尾。原创 2020-07-30 15:23:27 · 331 阅读 · 0 评论 -
【Java】抽象方法和抽象类详解
一. 引出抽象方法案例:求圆(circle),矩形(rectangle),三角形(triangle)的面积class Graph{ public Double getArea(){ return 0.0; // 默认返回0.0 }}class Circle extends Graph{ private Double r ;//半径 Circle(Double r){ this.r = r; } public Double getArea(){ return Mat原创 2020-07-29 14:54:45 · 490 阅读 · 0 评论 -
【Java】构造器(构造方法)是否可以被重写?
1. 前言首先,构造器是不能被继承的,因为每个类的类名都不相同,而构造器名称与类名相同,所以根本谈不上继承。又由于构造器不能继承,所以就不能被重写。但是,在同一个类中,构造器是可以被重载的。其实,在之前的一篇博客中,我已经记录了重载和重写的区别这里我们再重复一下。2. 方法重载(Overloading)重载遵循 两同一不同:(1)方法在同一个类中;(2)方法的名字相同;(3)参数不同(个数、类型、顺序至少有一个不一样);(4)返回类型可以相同也可以不同。因此,每个重载的方法(或者构造函原创 2020-10-27 19:55:37 · 8883 阅读 · 2 评论 -
【Java】多线程编程
1. 进程和线程基础请查看阮一峰老师的教程:https://www.liaoxuefeng.com/wiki/1252599548343744/13045216072171852. 创建新线程Java语言内置了多线程支持。当Java程序启动的时候,实际上是启动了一个JVM进程,然后,JVM启动主线程来执行main()方法。在main()方法中,我们又可以启动其他线程。要创建一个新线程非常容易,我们需要实例化一个Thread实例,然后调用它的start()方法:public class Main原创 2020-10-22 15:42:03 · 80 阅读 · 1 评论 -
【Java】数组元素排序(冒泡排序,选择排序,快速排序)
数组元素排序排序主要有:1.选择排序(直接选择排序,堆排序);2. 交换排序(冒泡排序,快速排序);3. 插入排序(直接插入排序,二分插入排序,Shell排序);4. 归并排序;这里主要写了冒泡排序,选择排序,插入排序;但是在开发中因为性能的问题,我们都不会自己写排序算法,不过排序在笔试中经常见到。1. 冒泡排序基本思路:对要未排序的每一个元素从头到尾依次比较相邻的两个元素的大小,若大于则交换位置,经过第一轮的比较得出最大值,然后使用相同的方法把剩下的元素逐个比较即可。可以看出,若是有N个原创 2020-07-22 22:46:28 · 393 阅读 · 0 评论 -
【Java】单例设计模式:懒汉式和饿汉式
前言在之前的一篇博客中,已经介绍到单例模式的设计,不过仅仅是饿汉式 的写法下面再重复一下:饿汉式/** * 单例设计模式:饿汉式 */class Singleton{ // 私有化单例对象 private static final Singleton ins = new Singleton(); // 私有化构造器 private Singleton(){} // 返回一个对象 public static Singleton getIns()原创 2020-10-18 21:20:18 · 106 阅读 · 2 评论 -
【Java】MVC三层架构模式
1. MVC模型MVC 模式是一种软件框架模式,被广泛应用在 JavaEE 项目的开发中。MVC 模式很好理解,但也十分重要,在今后的 Web 应用开发中,我们都离不开它。之前,我们学习过了 Servlet、JSP,看起来它们都可以独立完成许多功能,却各有特点,MVC 就提供了一种扬长避短,双剑合璧的方法。2. 什么是MVCMVC 即模型(Model) 、视图(View)、控制器(Controller)。(1) 模型(Model)模型是用于处理数据逻辑的部分。所谓数据逻辑,也就是数据的映射以及转载 2020-09-08 15:33:13 · 348 阅读 · 0 评论 -
【Java+JDBC+MySQL】使用Java操作JDBC连接MySQL数据库
1. 导入jar包将jar拷贝到lib目录,右键jar包-【Add as Library】导入项目中2 操作步骤(加,连,语,执,释)2.1 加载注册驱动通过下述语句实现注册驱动,原理是这句语句会将 Driver.class 这份字节码加载到 JVM 中,然后 JVM 会执行该字节码的静态代码块,mysql 提供的这个驱动包中,Driver 的字节码内的静态代码块就完成了驱动对象的创建和注册。//加载注册驱动Class.forName("com.mysql.jdbc.Driver");2.转载 2020-09-07 20:34:29 · 348 阅读 · 0 评论 -
【Java】数据结构-哈希表(Hash table)
1. 哈希表哈希表(Hash table),又称散列表。是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。在一般的数组中,元素在数组中的索引位置是随机的,元素的取值和元素的位置之间不存在确定的关系,因此,在数组中查找特定的值时,需要把查找值和一系列的元素进行比较。此时的查询效率依赖于查找过程中所进行的比较次数。如果元素的值(value)和在数组中的索引(inde原创 2020-08-11 14:07:57 · 177 阅读 · 0 评论 -
【Java】数据结构-栈(Stack)
1. 栈(Stack)定义栈,是一种受限的线性表,后进先出 (LIFO)其限制是仅允许在表的一端进行插入和删除运算,这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈,入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈中删除元素又称为栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈的优势:最擅长操作栈顶;但是操作栈底就比较麻烦,需要将栈顶一个个出栈。2. 自定义栈结构栈的实现可以使用使用数组,也可以使用链表,在这里我基于数组来实现原创 2020-08-11 13:10:04 · 136 阅读 · 0 评论 -
【Maven】Maven的安装与配置
1. 下载Maven下载链接[https://maven.apache.org/download.cgi],选择自己所需的版本(https://maven.apache.org/download.cgi)2. 解压3. 配置环境变量新建系统变量 MAVEN_HOME,变量值:D:\DevTools\apache-maven-3.6.3编辑系统变量 Path,新建:%MAVEN_HOME%\bin检测安装是否成功打开cmd命令窗口,输入 mvn --version,出现以下内容,表示安装原创 2020-07-28 22:48:47 · 109 阅读 · 0 评论 -
【Maven】Maven仓库简介(本地,中央,远程)
Maven 仓库在 Maven 的术语中,仓库是一个位置(place)。Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。Maven 仓库有三种类型:本地(local)中央(central)远程(remote)本地仓库Maven 的本地仓库,在安装 Maven 后并不会创建,它是在转载 2020-07-28 22:15:54 · 1724 阅读 · 0 评论 -
【Java】Java中方法的可变参数
可变参数概念JDK5.0出现的新特性。将同一个类中,多个方法名相同、参数类型相同、返回类型相同,仅仅是参数个数不同的方法抽取成一个方法,这种方法称为可变参数的方法.好处:提高代码的重用性和维护性语法:修饰符 返回类型 方法名(参数类型… 参数名){ … …}注意:使用时,将可变长度的参数当做数组使用,等价于:修饰符 返回类型 方法名(参数类型[] 参数名){ … …}(所以可变参数不可重载成一维数组)代码实现class VarArgsDemo { public stat原创 2020-07-21 16:46:42 · 174 阅读 · 0 评论 -
【Java】Java中方法参数的值传递机制
1. 值传递机制// 值传递机制:仅仅传递的是一个值的副本class ArrayDemo6 { public static void change(int x){ System.out.println("change前:" + x); x = 50; System.out.println("change后:" + x); } public static void main(String[] args) { int x = 10; System.out.println原创 2020-07-21 09:38:44 · 196 阅读 · 0 评论 -
【Java】方法的重载设计
方法的重载设计(overload):重载方法的定义:在同一个类中,某方法允许存在一个以上的同名方法,只要它们的参数列表不同即可;方法重载的作用:屏蔽了同一功能的方法由于参数不同造成的方法名称不同。方法重载的判断原则:“两同一不同”;两同:在同类中,方法名相同;一不同:方法参数列表不同(参数类型,参数个数,参数顺序);只要参数类型,参数个数,参数顺序有一个不同,那么参数列表就不同。注意: 方法重载和方法的返回值类型无关,只是一般要求返回值类型一致。参数列表和参数的名称没有关系,方法的重载和形参原创 2020-07-19 14:50:23 · 558 阅读 · 0 评论 -
【Java】Java中内存的划分
Java的内存需要划分成5个部分:栈(Stack):存放的都是方法中的局部变量。方法的运行一定要在栈当中运行。局部变量:方法中的参数,或者是方法{}内部的变量作用域:一旦超出作用域,立刻从栈内存中消失。堆(Heap):凡是new出来的东西,都在堆内存中。堆内存里面的东西都有一个地址值:16进制堆内存里面的数据,都有默认值,规则:如果是整数 默认为0如果是浮点数 默认为0.0如果是字符 默认为’\u0000’如果是引用类型 默认为null3.方法区(Method原创 2020-07-19 12:41:48 · 102 阅读 · 0 评论