自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

转载 基于maven的Java项目目录结构

在JavaWeb的开发中,由于需要用到很多的包,所以出现了一种专门对包进行管理和下载的工具,成为自动化构建工具。在Java 平台,自动化构建工具的发展经历了Make ==> Ant ==> Maven ==> Gradle(最新)。 本文以maven为研究对象,探究基于Maven工具构建的Java项目的基本目录结构,以及官方所提供的一些maven项目模板。1. 基于Maven的基本项目目录Maven默认约定了一套目录结构,在通过Maven创建了项目以后,项目的目录结构就是以这套目录结构

2021-08-31 20:10:07 749

原创 Java中的Set集合

Set集合:HashSet集合(元素唯一):无序(存储和取出不一致),能够保证元素唯一HashSet:底层数据结构是一个哈希表(桶结构)线程不安全的类→→→不同步→→→执行效率高JDK8以后;提供了juc(并发包:java.util.concurrent):ConcurrentHashMap<K,V>和HashMap的区别 ?String类型:String类型本身已经重写了hashCode()和equals,如果hashCode和equals()都相同,那么认为同一个元素,

2021-08-15 19:15:22 128

原创 LinkedList集合

LinkedList集合特点:线程不安全的类,执行效率高链接列表结构,查询慢,增删快特有功能: public void addFirst(Object e):在列表开头插入元素 public void addLast(Object e):将元素追加到列表的末尾 public Object getFirst():获取列表的第一个元素 public Object getLast():获取列表的最后一个元素 public Objec

2021-08-15 18:27:23 260

原创 Java中插入排序

插入排序 时间复杂度:O(N^2)核心思想:使用1角标对应的元素进行和0角标比较如果前面元素大,向右移动,确定角标1对应的元素的位置,再次使用2角标对应的元素依次和1和0都元素比较依次这样比较.... Integer类:包含了int类型的值: Integer实现自然排序(默认升序排序)class Insert{ public static void main(String[] args) { int[] arr = {2,4,5,3,44,38,36,50,4

2021-08-15 11:22:51 77

原创 增强For循环 (foreach)

增强for循环JDK5以后 提供了增强for循环,替代集合中迭代器去遍历集合使用的(优先在集合中使用)格式:for(存储的引用数据类型 变量名: 集合/数组对象){ 使用变量名即可 }增强for循环的代码示例://学生类public class Student { private String name ; private int age ; public Student() { } public Student(String

2021-08-15 10:39:21 317

原创 Vector集合

Vector集合特有功能:添加public void addElement(Object obj):在vector对象的末尾添加元素 删除public boolean removeElement(Object obj):删除元素获取功能public Object elementAt(int index):获取指定位置的元素 类似于 public Object get(int index)public Enumeration<E> elements() :Vector集合的专

2021-08-15 10:38:02 249

原创 List集合

List接口继承CollectionList集合特点:有序(存储元素和取出元素一致)允许元素重复具备Collection相关的功能 Object [] toArray() Iterator iterator()特有功能 void add(int index,Object element):在指定的索引处插 入元素 Object get(int index):获取指定位置处的元素 + int size():一种新的集合遍历方式 Object remove

2021-08-15 10:17:46 339

原创 Collection,Collection的迭代器(Iterator)

Collection的体系结构

2021-08-14 15:47:16 329

原创 Java中的对象数组

什么叫对象数组?能够存储对象的数组需求: 使用数组存储5个学生(姓名,年龄,性别),然后将数组进行遍历,获取出来每一个学生的信息! 分析: 1)创建一个学生类 name,age,gender/sex 2) 数组存储5个学生 数组的定义格式: 数据类型[] 数组名称 = new 数据类型[长度] ; 学生对象数组

2021-08-14 15:22:04 792

原创 Java中针对数学运算的工具类(java.long.Math)

java.lang.Math :针对数学运算的工具类,提供了很多方法 public static int abs(int a):绝对值方法 public static double ceil(double a):向上取整 public static double floor(double a):向下取整 public static int max(int a,int b):获取最大值 public static int min(int a,int b):获

2021-08-14 14:39:50 739

原创 Java中的日历类( java.util.Calendar 和 java.util.Date )

日历类:java.util.CalendarCalendar:提供一些诸如 获取年,月,月中的日期 等等字段值Calendar 是抽象类,不能实例化Calendar 中的静态功能,返回值是它自己本身calendar的成员方法1.public int get(int field):根据给定日历字段----获取日历字段的值(系统的日历)2.public abstract void add(int field,int amount):给指定的日历字段,添加或者减去时间偏移量 参数1:日历字段

2021-08-14 14:31:34 659

原创 Java中的Character类型( char的包装类 类型 )

Character主要功能1.public static boolean isUpperCase(char ch):判断当前字符是否大写字母字符2.public static boolean isLowerCAse(char ch):是否为小写字母字符3.public static boolean isDigit(char ch):是否为数字字符String转换的功能很类似1.public static char toLowerCase(char ch):将字符转换成小写2.public sta

2021-08-14 09:47:31 1107

原创 Java中的integer类,自动拆装箱

整数类型引用类型(默认值为Null)byteByteshortShortlongLongintInteger浮点类型floatFloatdoubleDouble字符类型charChar布尔类型booleaBoolean需要基本类型和String类型之间转换:需要中间桥梁(基本类型对应的包装类类型)需求:进制的转换----就可以使用Integer静态功能(1)public static String...

2021-08-14 09:37:51 206

原创 StringBuffer,StringBuilder和String的区别?

StringBuffer,StringBuilder和String的区别?1.String:字符串是一个常量,一旦被赋值,其值不能更改/作为形式参数属于特殊的引用类型,形式参数的改变不会实际参数2.StringBuffer:可变的字符序列,线程安全的类----同步的----->执行效率低(线程角度)3.StringBuilder:可变的字符序列.和StringBuffer具有相互兼容的api,单线程程序中(只考虑执行效率,不考虑安全问题)public class StringBufferTes

2021-08-05 21:00:33 68

原创 StringBuffer的常用功能

StringBuffer:字符串缓冲区 ---->类似于String,但是不一样 (可变的字符序列)线程安全线程依赖于进程存在!进程,能够被系统资源调用的独立单位一个进程可以有多个线程,每一个线程----->"执行单元"(任务)线程安全-----同步的-----执行效率低举例: 银行类的网站/医疗网站 ATM机取钱---插卡---输入密码---查询余额---取钱StringBuilder:和StringBuffer具有相互兼容的AP

2021-08-03 23:09:20 314

原创 Stirng类的常用功能

String类字符串是一个常量,一旦被赋值了,其值(地址值)不能被更改推荐的使用方式: String 变量名 = "xxxx" ;//xxxx代表 的当前String的实例String类常用的功能:获取功能: int length():获取字符串长度 int length():获取字符串长度 public char charAt(int index);获取指定索引处的字符 public S

2021-07-31 16:02:45 73

原创 Java的API及Object类

Java 的APIAPI (API: Application(应用) Programming(程序) Interface(接口));Java API就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来,在JDK安装目录下有个src.zip文件,这个文件解压缩后里面的内容是所有Java类的源文件。 可以在其中查看相对应的类的源码。也可以通过查帮助文档的方式,来了解Java提供的API如何使用。Object类概述Object类是Java语言中的根类,即所有类的父类。它的所有方

2021-07-31 14:46:33 71

原创 数组的选择排序

选择排序思想:依次比较,使用0角标对应的元素依次后面角标对应的元素进行对比,小的往前放,第一次比较完毕,最小值出现在最小索引处…依次这样比较.public class Array { public static void main(String[] args) { int[] arr = {12,8,34,19,57}; System.out.println("选择排序前"); printArray(arr); System.out

2021-07-28 00:03:17 572

原创 Java中的接口(Interface)

动物类—>抽象类 eat() ; sleep() ;具体的子类Cat,Dog才具备具体的吃和睡的行为,但是部分Cat或者部分Dog具备特殊的额外功能(本身不具备),跳高行为或者计算算术或者钻火圈,经过培训才能具备的功能------>接口 (比抽象类还抽象)接口---->它的本质就是体现一个现实世界事物所具有的的额外的扩展功能!定义格式: interface 接口名{} ------>接口名遵循"标识符规则"---->大驼峰命名法接口中的

2021-07-27 23:57:51 113

原创 方法重写Override

在继承父类的时候,直接将父类的功能覆盖掉在idea中,直接写方法名----->enter回车----@Override----->标记当前这个方法是重写父类的方法 (JDK的内置注解:注解的本质是接口)当前子类继承父类的时候,如果存在方法重写,那么子类重写父类该方法访问权限不能更低!要么跟父类的方法保持一直,要么带上public(推荐跟父类的方法一直即可!)class Fu{ /* public void method(){ System.out.prin

2021-07-25 23:53:45 388 2

原创 super关键字

this和super有什么区别?this:代表当前类对象的地址值引用super:代表的父类的空间标识(代表父类对象的地址值引用)访问成员变量,成员方法,构造方法 成员变量: this.变量名; 它的访问的是本类的成员变量 super.变量名; 访问父类的成员变量 成员方法: this.方法名() ;访问本类的成员方法 super.方法名() ;访问父类的成员方法 构造方法: this() ;访问的是本类的无参构造方法 sup

2021-07-25 23:26:33 36

原创 抽象类(abstract关键字)

什么是抽象类----->现实世界事物中,某个事物是比较概括性(人/水果/动物),描述为抽象事物, 只有具体的工人/苹果/猫或者狗,才具备具体的功能; 将某个事物中的一些功能仅仅给出声明即可,没有方法体----->抽象方法---->此时这个类必须为抽象类! 举例: 动物都需要吃和睡 只要看到具体的动物类:猫类/狗类,才具备吃和睡的功能 将动物类中的吃

2021-07-25 23:25:04 402

原创 Java中的多态

多态是继封装、继承之后,面向对象的第三大特性。现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。 Java作为面向对象的语言,同样可以描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。Java中多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口)变量赋值。如Student类可以为Person

2021-07-25 22:37:52 49

原创 final关键字

final关键字final的概念 继承的出现提高了代码的复用性,并方便开发。但随之也有问题,有些类在描述完之后,不想被继承, 或者有些类中的部分方法功能是固定的,不想让子类重写。可是当子类继承了这些特殊类之后, 就可以对其中的方法进行重写,需要使用到一个关键字final,final的意思为最终,不可变。 final是个修饰符,它可以用来修饰类,类的成员,以及局部变量。final的特点final修饰的变量称为常量,这些变量只能赋值一次。final int i = 20;i = 30

2021-07-24 15:07:29 48

原创 继承的概念和注意事项

继承的概念:将多个类的共性内容抽取到一个独立的类中,然后这多个类和独立的这个类产生一种关系: 继承关系!关键字: extendsclass 父类{}书写格式 :class 子类 extends 父类{}继承的好处:1)提高代码的维护性!2)提高代码的复用性!3)让类和类之间产生的关系,是"多态的前提条件"接下来通过一个案例来学习子类是如何继承父类的//接下来通过一个案例来学习子类是如何继承父类的class Employee { String name; // 定义name属性 /

2021-07-24 14:38:03 71

原创 Java代码块

代码块在Java中,使用{}包裹棋起来的内容,成为代码块!分类:局部代码块 :在方法定义中使用 ,作用:限定局部变量的生命周期构造代码块:在类的成员位置(类中,方法外),使用{}包裹起来 作用:给类中的一些成员进行数据初始化特点:每次在执行构造方法之前,如果存在构造代码块,先执行构造代码块中的内容!静态代码块:在类的成员位置,直接使用 static{},特点:随着类的加载而加载,优先于对象存在!作用:也可以通过static代码块,对一些操作(后期IO流创建文件/JDBC(Java链接数据

2021-07-24 10:36:28 54

原创 静态static关键字

静态static关键字的特点:1.随着类的加载而加载2.优先于对象存在: 它不能this共存 (this:代表当期类对象的地址值引用) 对象还没有new的时候,当前被static修饰的成员就已经内存了3.被静态修饰的 可以被多个对象共享:有共享共用的意思举例: 饮水机中的水(适合) 水杯共享(不适合!)4.被静态修饰的变量,方法----->静态变量或者静态方法 我们所说的成员变量和成员方法:都指的是非静态 静态的成员的访问

2021-07-24 10:29:25 70

原创 Java中this关键字的作用

java中this关键字的作用1.this调用当前属性:其主要作用是当需要给类中的数据进行初始化时,可以通过this来进行赋值, 而不用随便定义一个变量来进行赋值,更有利于代码的阅读与理class Book{//定义书的类 private String name;//书本名字 private int price;//书本价格 public Book(String name,int price){ //使用this对类的数据进行初始化 this.name =

2021-07-24 09:39:39 173

原创 什么是构造方法?

什么是构造方法? 什么是构造方法? 1)构造方法名和类名一致 2)没有具体的返回值类型 3)连void都没有 构造方法的目的:为了给类的成员的一些数据进行初始化给成员变量赋值有几种? 两种: 提供的公共的访问方法:setXXX() 构造方法public Student(){ System.out.println("这是Student类的无参构造方法...") ; } //定义有参构造方法(带一个String类型的参数) public Student(Strin

2021-07-24 09:38:50 491

原创 private关键字的特点 (封装)

private关键字的特点:1.可以修饰成员变量,也可以修饰成员方法,但是都只能在本类访问,外界类不能够访问2.这些被私有修饰的成员变量,或者成员方法,可以间接通过公共方法来访问!3.是一个权限修饰符使用面向对象方式:定义一个学生类来描述学生事物 并进行测试 属性:姓名,年龄 行为:学习study 测试时的问题:年龄赋值为负数----"非法数据 如何改进这个代码? 当赋值年龄的时候,在学生类中加入判断功能 如果当前学生的年龄 <0 或者 大于150 如果年龄

2021-07-24 09:10:59 164

原创 面向对象_匿名对象

什么是匿名对象?顾名知意:没有 名字的对象格式: new 类名() ; 匿名对象有一个特点: 可以作为参数进行传递 在开发中,匿名对象使用一次即可! (因为没有栈内存变量指向堆内存地址,直接是在堆内存开辟空间,使用完毕,立即被回收!)场景: 在android 应用中:匿名对象使用很多 节省内存空间 手机app:手机内存比较小的class Student{ public void study(){ System.out.println("爱生活,爱Java,

2021-07-21 00:10:52 47

原创 面向对象以及它的思想特点

描述一个学生事物:属性:姓名,年龄,性别,学号行为:吃,睡,学习分析: 1)需要使用代码描述学生事物----->定义一个类 :学生类 2)类中定义成员变量:描述学生事物的属性 成员变量:类中,方法外定义 3)描述行为----->在学生类中定义为"成员方法" 去掉了static 4)在StuentDemo类中进行测试//定义一个学生类:描述学生事物class Student{ //定义成员变量:描述学生事物属性的:属性:姓名,年龄,性别,学号 String n

2021-07-21 00:04:54 55

原创 Java中的有参构造和无参构造

无参构造方法和有参构造方法: 参构造方法要结合get xxx()方法和set xxx()方法使用 例如以创建一个学生类,该学生的属性(成员变量)有姓名,性别,年龄;行为是吃,睡觉,学习无参构造方法class Student{ private String name; private String gender; private int age; public void setName(String name) { this.name = name

2021-07-20 08:18:24 2520

原创 面向对象中成员变量和局部变量的概念

一.成员变量和局部变量的概念1.成员变量就是属于类的变量,在类中,方法体外定义的变量2.局部变量就是定义在方法体,代码块内的变量,是局部的变量,属于方法的范畴。 比如方法的形参,方法内定义的变量等等。二.成员变量和局部变量的区别? 1.在类的位置中不同: 成员变量在类中,方法外; 局部变量在方法内或方法声明上;2.在内存中的位置不同: 成员变量在堆内存; 局部变量在栈内存;3.生命周期不同: 成员变量,随着对象的存在而存在,随着对象的消失而消失;

2021-07-19 10:17:06 440

原创 方法中的形式参数

方法的形式参数问题: 1)如果方法的形式参数是基本数据类型,有什么特点? 形式参数的改变不会影响实际参数! 2)如果方法的形式参数是引用数据类型(数组),有什么特点? String类型:特殊的引用类型:它作为形式参数,效果和基本数据类型一致! 形式参数的改变不影响实际参数(String本质就是常量) 如果形式参数是数组类型(除String类型外), 实际参数传递:传递数组对象 :形式参数的改变会直接影响实际参数面试题:定义change方法public static voi

2021-07-19 09:28:20 293

原创 数组的冒泡排序

冒泡排序两两比较,较大的值往后放,第一次比较完毕,最大值出现在最大索引处依次这样比较,可以得到排好序的数组!冒泡排序的实际过程 //第一次比较 //遍历之后:获取元素并判断 //arr.length-1:为了防止角标越界 //arr.length-1-0:每次比较完毕,为了减少比较的次数 for(int x = 0 ; x < arr.length-1-0;x++){ //获取元素并判断 //如果前面的元素比后面的元素,将前面元素往后放 //采用中间变量 if(

2021-07-17 16:53:32 138

原创 数组的逆序排列

逆序排列方式1: 直接将元素进行交换(采用中间变量:保证数组长度/2) 定义一个逆序的方法: 两个明确 1)明确返回值类型:没有具体返回值类型 void 2)参数类型以及参数格式: int[] arr /1个参数for(int x = 0 ; x < arr.length/2 ; x++){ //x=0,x=1 //进行交换 int temp = arr[x] ; //将第一个值赋值给中间变量 arr[x] = arr[arr.length-1-x]

2021-07-17 16:46:32 1809

原创 数组的最值问题

数组的最值问题:给定一个数组:静态初始化int[] arr = {69,13,56,87,24} ;获取数组中的最大值分析: 1)定义max变量:将数组的第一个元素赋值给他:默认最大值 2)从角标1开始遍历其他元素 在里面判断 如果后面的元素都大于max 将后面的元素赋值给max变量 3)最终可以获取最大值 /* 定义一个获取数组最大值的方法 两个明确: 1)明确返回值类型:int 2)明确参数类型以及参数个数 int[] arr,1个

2021-07-17 11:37:50 213

原创 数组的元素遍历

什么是遍历:就是将数组中的元素一一获取到并输出到控制台上public static void main(String[] args){ //已知数组:静态初始化 int[] arr = {11,22,33,44,55} ; //原始的做法:对象名称[索引值/角标值] System.out.println(arr[0]) ; //11 System.out.println(arr[1]) ; //22 System.out.println(arr[2]) ;//33 S

2021-07-17 10:49:46 335

原创 数组 (动态数组 静态数组)

容器:就是存储数据的"工具"数组:(最基本的容器)StringBuffer:字符串缓冲区 ---->数据 ---->String:字符串类型集合:Collection,Map集合中IO:存储在文件中数据库(最终目的):存储数据的仓库数组的定义什么是数组? 就是存储多个数据的容器,必须保证容器中的数据类型一致! 数组的定义格式: 1)动态初始化 2)静态初始化 先说动态初始化: 给定了数组的长度,系统默认对元素进行初始化! 数据类型[]

2021-07-17 09:45:11 161

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除