自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IDEA中打不开JSB页面的解决办法

一、首先将web-app中的都删除,我这里的jsp是在main文件夹下二、一定要先配置好tomcat,启动好tomcat后就会跳转到这个jsp页面了三、后续我又把web-app中的内容恢复了,正常启动tomcat后还是可以打开jsp,估计还是因为Tomcat的原因...

2022-01-07 10:33:29 1018 1

原创 Java集合,集合的方法,集合的遍历

package com.atgui.java;import org.junit.Test;import java.util.ArrayList;import java.util.Collection;import java.util.Date;/** * 一、集合框架的概述 * 1.集合、数组都是对多个数据进行存储操作的结构,简称Java容器。 * 说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中的) * &l...

2021-09-05 15:49:47 47

原创 注解(Annotation)

如何自定义注解:参照@SuppressWarnings定义注解声明为:@interface内部定义成员,通常使用value表示可以指定成员的默认值,使用default定义如果自定义注解没有成员,表明是一个标识作用如果注解有成员,再使用注解时,现需要指明成员的值注意:自定义注解必须配上注解的信息处理流程(使用反射)才有意义自定义注解通常都会指明两个元注解:Retention Targetjdk 提供的4种元注解元注解对现有注解进行解释说明的注解Retention:指定所修...

2021-08-30 17:34:04 29

原创 枚举类及Enum

package com.atguigu.java;/** * 一、枚举类的使用 * 1.枚举类的理解:类的对象只有有限个,确定的,我们称此类为枚举类 * 2.当需要定义一组常量时,强烈建议使用枚举类 * 3.如果枚举类种只有一个对象,则可以作为单例模式的实现方式 * <p> * 二、如何定义枚举类 * 方式一:jdk5.0之前,自定义枚举类 * <p> * 方式二:jdk5.0之后,可以使用enum关键字自定义枚举类 * <p> * 三、E...

2021-08-30 15:10:33 31

原创 Java比较器

对象之间的比较自然排序:Comparable接口定制排序:Compartor接口package com.ayguigu.java;import java.util.Date;/** * 商品类 * * @author shkstart * @create 2021-08-30 9:07 */public class Goods implements Comparable { private String name; private double price;

2021-08-30 11:14:42 32

转载 JDK5.0之后新增的线程创建方式

package com.atguigu.java2;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;/** * 创建线程的方式三:实现Callable接口, ---JDK5.0新增 * 1.创建一个实现Callable接口的实现类 * 2.实现call方法,将此线程需要执行的操作声明在call.

2021-08-27 15:02:58 20

原创 线程的通信

wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器notify():一旦执行此方法,就会唤醒被wait的一个线程,如果有多个线程被wait,就会唤醒优先级高的线程。notifyAll():一旦执行此方法,就会唤醒所有被wait的的线程案例1:package com.atguigu.java2;/** * 线程通信的例子:使用两个线程打印1-100.线程1,线程2交替打印 * 涉及到的三个方法 * wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器.

2021-08-27 13:36:49 14

原创 面向对象-封装-构造器- JavaBean-this关键字

区分构造器和方法,我new对象的时候new的是一个构造器构造器的作用:创建对象初始化一个类中可以定义多个构造器这些构造器之间彼此构成重载一旦我们显示的定义了类的构造器之后,一旦我们显示的定义了类的构造器之后,系统就不在提供默认的空参构造器。JavaBean实际工作中经常使用反射来造对象。一般用空参this可以理解为当前对象。加了this 能区分前面是属性,后面是形参。当形参和属性重名的时候需要区分。this可以用来修饰属性。在类的方法中,我们可以使用 “this.属性” .

2021-08-27 09:14:37 20

原创 线程的同步安全解决方式二

用接口lock的实现类ReentrantLock的两个方法lock()和unlock()package com.atguigu.java1;import java.util.concurrent.locks.ReentrantLock;/** * lock是个接口,我们用他的实现类ReentrantLock * 解决线程安全问题的方式三:lock锁-->JDK5.0新增 * 1.面试题:synchronized于lock的异同? * 同:二者都可以解决线程的安全问题 * 不同:..

2021-08-27 09:13:55 22

原创 线程的死锁问题

等待同步锁的时候是阻塞状态,当需要很多锁的时候。package com.atguigu.java1;/** * 演示线程的死锁问题 * 1.关于死锁的理解:不同的线程分别占用对方需要的同步资源不放弃; * 都在等待对方放弃自己需要的同步资源,就形成了线程的死锁 * 2.说明: * 1.出现死锁后,不会出现异常,不会出现提示,只是所有的线程都属于阻塞状态无法继续 * @author shkstart * @create 2021-08-26 16:36 */public class..

2021-08-26 17:00:16 12

原创 单例模式:懒汉式线程安全问题的解决

懒汉式线程安全问题的解决及优化。public class BankTest {}class Bank{ private Bank(){ } private static Bank instance = null; public static Bank getInstance(){ if (instance == null){ instance = new Bank(); } return inst

2021-08-26 16:30:51 52

转载 线程的同步,线程的安全问题解决方式

package com.atguigu.java;/** * 例子:创建三个窗口卖票,总票数为100张,使用实现Runnable接口的方式 * 1.问题:卖票过程中,出现了重票、错票-->出现的线程的安全问题 * 2.问题出现的原因:当某个线程操作车票的过程中,尚未操作完成时。其他的线程参与进来,也操作车票 * 3.如何解决,当一个线程在操作ticket的时候,其他线程不能参与进来,直到线程A操作完ticket的时候 * 其他线程才可以开始操作ticket,这种情况即使线程A出现了阻塞.

2021-08-26 15:58:24 14

原创 线程的生命周期

Thread.State中的State是内部类(状态)

2021-08-25 13:24:51 16

原创 程序、进程、线程

程序:静态代码。进程:程序的一次执行过程,或是正在运行的一个程序程序是静态的,进程是动态的线程:可以根据360安全卫士来理解。可以同时扫描木马,清理垃圾等一个程序内部的执行路径。main方法就是一个线程。方法区和堆属于线程都可以共享的可以理解收费站模式,一个通道排队过是单核,多个通道同时过时多核Thread :线程...

2021-08-25 10:19:49 173

原创 异常的相关知识

异常有个类Throwable该类下面有两个子类Error和Exception。Error直接修改代码根据程序的运行状况分为编译时异常和运行时异常

2021-08-21 14:17:21 15

原创 复习抽象,接口

abstract能修饰哪些结构?修饰以后,有什么特点?类、方法。类不能实例化,提供子类,让子类实例化抽象方法,没有方法体,通关方法名参数了解,也可以理解为一个标准抽象方法:只定义了一种功能的标准,具体的执行需要子类去实现接口是否能继承接口:抽象类是否能实现(implements)接口?抽象类是否能继承非抽象的类?能继承:能实现 : 能继承抽象类和接口的共同点和区别?相同点:都不能实例化,都可以被继承。不同点:抽象类有构造器,接口不能声明构造器接口可以多继承,抽象类只能单继承如何创建静态

2021-08-19 16:59:27 16

原创 内部类的简单说明

内部类:功能比较多:没有必要放在外边,只供本类调用package com.atguigu.java11;/* * 类的内部成员之五 * 1.Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类 * 2.内部类分类:成员内部类vs局部内部类(方法内,代码块内,构造器内) * 3.成员内部类 * 一方面,作为外部类的成员: * >调用外部类的结构 * >可以被static修饰 * >可以被四种不同.

2021-08-19 14:56:37 15

原创 接口:代理模式:工厂模式

package com.atguigu.java10;import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;/* * 接口的使用 * 1.接口使用interface来定义 * 2.Java种,接口和类是并列的两个结构 * 3.如何定义接口:定义接口种的成员 * JDK7及以前:只能定义全局常量和抽象方法 * 全局常量:public static final的但是书写时可以省略不写 * 抽象方法:pu.

2021-08-18 17:13:41 30

原创 模板方法设计模式

2021-08-17 16:17:40 16

原创 抽象类与抽象方法

package com.atguigu.exer3;/* * abstract关键字的使用 * 1.abstract:抽象的 * 2.abstract可以用来修饰的结构:类、方法 * 3.abstract修饰类:抽象类 * 此类不能实例化 * 抽象类中一定有构造器,便于子类实例化时调用(涉及,子类对象实例化的全过程) * 开发中,都会提供抽象类的子类,让子类对象实例化完成相关的操作 * 4.abstract类修饰方法:抽象方法 * 抽象方法只有方法的声明,没有方法体.

2021-08-17 11:12:29 25

原创 复习面向对象

static : 静态的可以用来修饰的结构:主要用来修饰类的内部结构属性、方法、代码块、内部类、构造器。随着类的加载而加载;早于对象的创建;只要权限允许,可以通过对象.static属性的方式进行调用;存在于方法区的静态域static修饰属性:静态变量(或者类变量)static关键字的使用static:静态的static可以用来修饰:属性,方法,代码块,内部类。使用static修饰属性:静态变量(类变量)属性:按是否使用了static修饰,又分为:静态属性:非静态属性(实例变量)

2021-08-17 09:02:44 16

原创 final关键字

package com.atguigu.exer3;/* * final:最终的 * 1.final可以用来修饰的结构:类,方法,变量 * 2.final用来修饰一个类:此类不能被其他类所继承 * 比如String类 System类 StringBuffer类 * 3.final用来修饰方法:表明此方法不可以被重写 * 比如:Object类中的getClass()方法 * 4.final用来修饰一个变量:此时的“变量”就称为是一个常量 * final修饰属性:可以考虑赋值的位置有:

2021-08-16 18:37:00 11

原创 代码块的使用

package com.atguigu.exer3;/* * 类的成员之四:代码块(或初始化块) * 1.代码块的作用,用来初始化类或者对象 * 2.代码块如果有修饰的话,只能用static * 3.分类:静态代码块和非静态代码块 * 4.静态代码块 * 内部可以有输出语句 * 随着类的加载而执行,而且只执行一次 * 作用:初始化类的信息 * 如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行 * 静态代码块的执行要优先于非静态代码块的执行 * 静态代

2021-08-16 17:35:32 27

原创 单例设计模式

package com.atguigu.exer1;/* * 单例设计模式 * 如何实现? * 饿汉式vs懒汉式 * 饿汉式:坏处 对象加载时间过长 * 好处 饿汉式是线程安全的 * 懒汉式:好处 延迟对象的创建 * 坏处 目前的写法,线程不安全。--》到多线程内容时,在修改 * * */public class SingletonTest1 { public static void main(String[] args) {..

2021-08-16 13:32:47 22

原创 static关键字

static关键字的使用static:静态的static可以用来修饰:属性,方法,代码块,内部类。使用static修饰属性:静态变量(类变量)属性:按是否使用了static修饰,又分为:静态属性:非静态属性(实例变量)实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性,当修改其中一个对象的非静态属性时,不会导致其对象中同样的属性值的修改静态变量:我们创建了类的多个对象,多个对象共享同一个静态变量,当通过某一个对象修改静态变量时,会导致其他对象调用此静态变量时,

2021-08-16 09:27:38 17

原创 包装类的说明

package com.atguigu.java7;import org.junit.Test;import java.util.Date;//包装类的使用:/* * 1. java提供了8种基本类型对应的包装类,使得基本数据类型的变量具有类的特征 * 2.掌握的,基本数据类型、包装类、String三者之间的相互转换 * 3.自动装箱与自动开箱 * */public class WrapperTest { //String 类型--》基本数据类型、包装类、调用包装类的par.

2021-08-15 11:36:33 16

原创 Object类及equals和toString方法

Object类中只声明了一个空参的构造器Object类中的功能(属性、方法)具有通用性

2021-08-15 09:17:58 17

原创 如何学习项目,复习继承性

至少完成一遍以上的项目代码积累完成项目的过程中常见的bug调试方式一:“硬看”,必要时,添加输出语句方式二:Debug捋顺思路,强化逻辑对象、数组等内存结构的解析遵守编码的规范,标识付的命名规范等在类前,方法前,方法内具体逻辑的实现步骤等添加必要的注释类前,方法前、属性前:文档注释:逻辑步骤:单行多行注释为什么要有继承性?...

2021-08-10 08:08:10 15

原创 继承性,单继承多继承

一、继承性的好处:减少了代码的冗余,提高了代码的复用性。便于功能的扩展为之后的多态性的使用,提供了前提。二、继承性的格式:class A extends B{}A:子类、派生类、subclassB:父类、超类、基类、superclass体现:一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有结构,属性,方法。 特别的:父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构,只是因为封装性的影响。使得子类不可以直接调用父类的结构而已。子类继承父.

2021-08-09 23:53:01 70

原创 多态的向下转型instanceof关键字的使用

如何才能调用子类特有的属性和方法?Man m1 = (Man)p2;使用强制类型转换符 向下转型Man m1 = (Man)p2;m1.earnMoney();m1.isSmoking =true;Woman w1 = (Woman)p2;w1.goShopping();报错使用强转时,可能会出现ClassCastException的异常instanceof:a instanceof A:判断对象a是否是A的实例,如果是,返回true,如果不是,返回falseif(p2 insta

2021-08-05 08:52:27 20

原创 复习多态性

什么是多态性Person p = new Man(); 对象的多态性,父类的引用指向子类的对象p.eat();调用方法时,编译看左边,运行时看右边一个类只有一个直接父类,一个父类可以有多个子类,子类能获取到直接父类的父类中的结构(间接父类)子类能够获取父类中private权限的属性或者方法,根据public get 或是set方法方法的重写规则?权限修饰符,子类的权限修饰符不小于父类形参列表相同返回值抛出的异常super调用构造器,注意的点this(形参列表):本类重载的其他的构造

2021-08-04 19:01:22 25

原创 面向对象-多态

面向对象三大特征之一:多态性理解多态性:可以理解为一个事物的多种形态对象的多态性:父类的引用指向子类的对象,子类的对象赋给父类的引用。Person p2 = new Man();Person p3 = new Woman();多态的使用,当调用子父类同名同参数的方法时,实际执行的时子类重写父类的方法----虚拟方法调用有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但是在运行期,我们实际执行的是子类重写父类的方法总结:编译看左边,执行看右边。多态性的使用前提:1. 类的继承关系

2021-08-04 18:00:54 14

原创 super关键字-子类对象实例化的过程

super关键字的使用: 重写重写的是方法体super理解为:父类的super可以用来调用:属性、方法、构造器特殊情况:当子类和父类中定义了同名的属性时,我们想要在子类中调用父类中声明的属性,则必须显示的使用“super.属性”的方式,表明调用的是父类中声明的属性。特殊情况:当子类重写了父类中的方法以后我们想在子类中调用父类中被重写的方法时,则必须显示使用“super.方法”的方式,表明调用的是父类中被重写的方法super调用构造器...

2021-08-04 14:31:37 44

原创 面向对象继承性-Object类的简单说明-重写的定义

面向对象特征之二:继承性 why?一、继承性的好处减少代码的冗余,提高了代码的复用性便于功能的扩展为之后的多态性的使用,提供了前提二、继承性的格式:class A extends B{ }A:子类、派生类、subclassB:父类、超类、基类、superclass体现:一旦子类A继承父类B以后,子类A中就获取了父类B中声明的结构:属性,方法...

2021-08-03 22:24:42 27

原创 案例解析1

一、在一个自定义的类中可以声明另外一个类的属性的这两个类的关系叫关联关系 Account 和Customer声明什么类型的形参传进来的就是什么类型的形参对象数组数组本身是引用类型,可以当作属性出现连续操作,前面bank.getCustomer是一个对象,这个是有返回值的。没有返回值的不能....

2021-07-31 18:20:46 6

原创 面向对象复习构造器

一、构造器的作用创建对象初始化对象结构构造器使用中的注意事项:二、 关于类的属性的赋值 ,有几种赋值的方式,谈谈赋值的先后顺序默认初始化》显示初始化》构造器中初始化》对象.方法或对象.属性 给属性赋值。this 可以调用属性、方法、构造器。主要区别于形参和属性。this 理解为当前对象,当前正在创建的对象。Java的四种权限修饰,三种权限修饰符权限从小到大排序为:private<缺省<protected<public封装思想具体的代码体现将类的属性xx私有

2021-07-31 17:55:26 15

原创 MVC设计模式

2021-07-30 09:56:42 18

原创 Package关键字的使用

Package关键字的使用为了更好的实现项目中类的管理,提供包的概念使用Package声明类或接口所属的包,声明在源文件的首行包,属于标识符,遵循标识符的命名规则、规范(xxxyyyzz)、“见名知意”每“.”一次,就代表一层文件目录注意:同一个包下,不能命名同名的类或者接口不同的包下,可以命名同名的接口或者类...

2021-07-30 09:43:18 180

原创 方法参数的值传递机制

方法参数的值传递机制1. 形参:方法定义时,声明的小括号内的参数实参:方法调用时,实际传递给形参的数据的地址值2. 值传递机制如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值如果参数是引用数据类型,此时实参赋给形参的是实参存储数据package top.lay888.www.exer;//关于变量的赋值//如果变量是基本数据类型的,此时赋值的是变量所保存的数据值//如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。public class ValueTra

2021-07-29 17:02:45 33

原创 面向对象前面知识复习

2021-07-29 11:01:29 15

空空如也

空空如也

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

TA关注的人

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