
【尚硅谷-Java学习】
文章平均质量分 71
在小破站学Java
cazenove
这个作者很懒,什么都没留下…
展开
-
【代码练习查漏补缺】获取多个输入
不确定输入有多少个是,不断获取键盘输入的方法:1.通过Scanner.hasNext()方法:import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); while(scan.hasNext()){ int num1 = scan.nextInt(原创 2021-03-29 18:01:32 · 291 阅读 · 0 评论 -
【代码练习查漏补缺】HashMap常用方法
本文章转载于 赵斌Zz 的原创文章:https://blog.youkuaiyun.com/zhaobin0731/article/details/98962624Map集合基于 键(key)/值(value)映射。每个键最多只能映射一个值。键可以是任何引用数据类型的值,不可重复;值可以是任何引用数据类型的值,可以重复;键值对存放无序。HashMap的使用 HashMap<String,Integer> map=new HashMap<String,Integer>(); Has转载 2021-03-03 17:35:10 · 353 阅读 · 1 评论 -
【尚硅谷-Java高级编程】8.1 IDEA 使用
多线程原创 2020-12-16 20:10:49 · 459 阅读 · 0 评论 -
【尚硅谷-Java学习】7 异常处理
很多问题不能靠代码能规避的:客户输入数据格式读取文件是否存在网络是否保持通畅Java程序异常事件分为两类:Error:如JVM系统内部错误、资源耗尽如栈溢出 StackOverflowError、堆溢出 OutOfMemoryError等。一般不编写针对性代码进行处理。Exception:因编程错误或偶然的外在因素导致的,可以使用针对性代码进行处理。例如运行时异常编译时异常一、常见的异常1.空指针异常 NullPointerExceptionint[] arr原创 2020-12-11 16:11:10 · 239 阅读 · 0 评论 -
【尚硅谷-Java学习】6.12类的结构之五:内部类
内部类:一个类定义于另一个类的内部。原创 2020-12-09 20:08:40 · 183 阅读 · 0 评论 -
【尚硅谷-Java学习】6.12 工厂模式(拓展了解)
工厂方法模式抽象工厂模式原创 2020-12-09 16:46:38 · 426 阅读 · 0 评论 -
【尚硅谷-Java学习】6.11 代理模式(proxy)
代理模式 就是为其他对象提供一种代理以控制这个对象的访问。原创 2020-12-09 16:38:13 · 466 阅读 · 0 评论 -
【尚硅谷-Java学习】6.10 接口 interface
一、功能多继承:Java不支持多继承,因此当需要从多个类中派生一个子类时,需要使用接口。提取多个子类共有的功能。例如子弹、气球都可以飞,将飞封装成接口。二、接口的使用使用 interface 定义:interface 接口名{ }Java中,接口和类是并列的结构定义接口中的成员:JDK 7 及以前,只能定义 全局常量public static final 和 抽象方法public abstract ,定义时可以省略,例如int MIN_SPEED = 1;以及void stop();原创 2020-12-08 20:38:12 · 295 阅读 · 0 评论 -
【尚硅谷-Java学习】6.9 模板方法设计模式--抽象类的应用
模板方法设计模式(TemplateMethod)抽象类就像是子类的通用模板,子类在抽象类的基础上扩展、改造。思想当功能内部一部分是确定的,一部分是不确定的,这时把不确定的部分暴露出去,给子类去实现。模板模式就是:实现一个算法时,整体步骤很固定,在父类中写好。某些易变的部分抽象出来供子类实现。应用数据库访问的封装Junit单元测试JavaWeb 的 Servlet 中 关于doGet/doPost方法的调用Hibernate 中模板程序Spring中JDBCTemplate、Hiber原创 2020-12-08 16:53:37 · 172 阅读 · 0 评论 -
【尚硅谷-Java学习】6.8 抽象类和抽象方法(关键字 abstract)
一、抽象类使用abstract修饰一个类,该类不能实例化。抽象类中仍然有构造器,便于子类实例化时调用二、抽象方法只有方法的声明,没有方法体,例如public abstract void eat();包含抽象方法的类,一定是抽象类。...原创 2020-12-08 15:04:01 · 492 阅读 · 0 评论 -
【尚硅谷-Java学习】6.7 关键字final
一、用法final可以修饰:类、方法、变量1.final 修饰类表明该类不能被其他类继承(不能有子类)。比如:String、System、StringBuffer类。final class FinalA{}2.final 修饰方法表明不能被重写。比如:getClass()3.final 修饰变量此时“变量”就成为常量。<1> final 修饰属性需要显式初始化。也可以在代码块、构造器中初始化。注意有多个构造器时需要在每个构造器中都写上初始化语句。<2&原创 2020-12-07 20:56:26 · 244 阅读 · 0 评论 -
【尚硅谷-Java学习】6.6 类的结构之四 代码块
格式代码块用一对大括号表示:class Person{ { //代码块 }}使用用来初始化类、对象如果有修饰的话,只能用 static非静态代码块可以有输出语句随着对象的创建而执行,每创建一个对象就执行一次可以在创建对象时,对对象的属性进行初始化如果定义了多个非静态代码块,按照先后顺序执行可以调用静态属性/方法,也可调用非静态属性/方法静态代码块可以有输出语句随着类的加载而执行。仅执行一次初始化类的属性如果定义了多个静态代码块,按照先后顺序执行静态代原创 2020-12-07 20:32:13 · 254 阅读 · 0 评论 -
【尚硅谷-Java学习】6.5 单例设计模式
单例设计模式:希望一个类只创建一个对象。1. 饿汉式:私有化类的构造器。类内部创建类的静态对象创建公共的静态方法,返回类的对象。public class Singleton { private Singleton(){ } private static Singleton s1; public static Singleton getInstance(){ return s1; }}2. 懒汉式:私有化类的构造器。声明当前类的静态对象,不初始化声明公共原创 2020-12-07 17:38:43 · 224 阅读 · 0 评论 -
【尚硅谷-Java学习】6.4 关键字 static
一、导入当某一个类的所有对象都具有同样的属性时,可以用static修饰该属性。例如类Chinese中的对象都具有属性nation = “CHINA”,因此可以创建静态属性static String nation;二、static的使用可以用来修饰:属性、方法、代码块、内部类1. static修饰属性static修饰的属性称为静态属性(类变量),相应的,没有使用static修饰的称为非静态属性(实例变量)。静态变量:①多个对象共享一个静态变量。当某一个对象修改静态变量后,其他对象调用的静态变量原创 2020-12-07 16:43:26 · 170 阅读 · 0 评论 -
【尚硅谷-Java学习】6.3 包装类
包装类Wrapper基本数据类型仅仅是变量,之前所说的面向对象相关的内容都无法使用。为使基本数据类型也能具有类的特征,针对8中基本数据类型封装了8个包装类:基本数据类型、包装类、String类的转换1. 基本数据类型 与 包装类<1>基本数据类型 —> 包装类有int num1 = 10;基本数据类型转换成包装类:Integer in1 = new Integer(num1);还可以将String转换成Integer:Integer in2 = new Integer(原创 2020-12-07 14:55:48 · 199 阅读 · 0 评论 -
【尚硅谷-Java学习】6.2 单元测试 JUnit
单元测试导入当对某个方法进行测试时,只想运行当前方法,其他方法不运行,此时就需要用到单元测试方法。步骤当前工程上右击 --> Build Path --> Add Libraries…选择JUnit,一路next到最后。完成后,当前工程会出新增:以上步骤可以简化:直接在测试方法前添加注释 @Test ,根据提示操作即可创建单元测试类JUnitTest,①必须是public的,②并提供公共的无参构造器。在其中添加测试方法testxxx,例如测试equal原创 2020-12-06 21:43:38 · 775 阅读 · 0 评论 -
【尚硅谷-Java学习】6.1 Object类的使用
Object类是所有java类的根父类。如果没有显式指明一个类的父类,那么它的父类是 java.lang.Object 。Object类中的功能具有通用性:没有定义属性,构造器只有一个空参构造器。常用方法:1. finalize():在对象被回收前会调用此方法。2. equals(Object obj):比较两个对象是否相等。(1) == 运算符基本数据类型的比较时比较两个变量保存的数据是否相等,类型不一致也可能相等。引用数据类型的比较时比较地址值是否一致。int i = 10;dou.原创 2020-12-06 21:03:53 · 340 阅读 · 0 评论 -
【尚硅谷-Java学习】5.5向下转型 及 instanceof
应用多态性时:Person p1 = new Man();堆中的对象是具有子类Man的所有结构(属性、方法)的,只是由于创建的对象p1声明为父类Person类型,导致编译时只能调用父类声明的属性和方法,无法调用子类特有的方法、属性。多态性也称为向上转型:将子类转换成父类。那么如何才能调用子类特有的属性和方法?向下转型(强制类型转换):将父类转换成子类Person p1 = new Man();Man m1 = (Man)p1;1.存在风险基本数据类型的强制转换存在精度损失,那么向下转型有什么原创 2020-12-04 17:17:38 · 312 阅读 · 0 评论 -
【尚硅谷-Java学习】5.4 面向对象的特征之三 多态性
多态性对象的多态性父类的引用 指向 子类的对象(或子类的对象赋给父类的引用)。//例如有父类Person,子类Man、Woman。Person p1 = new Man();调用子父类同名同参的方法时,实际执行的是子类重写的方法–虚拟方法调用。多态的使用:虚拟方法调用在编译期,只能调用父类所声明的方法,不能调用子类特有的方法。在运行期,实际执行的是子类重写的方法。此时父类方法称为虚拟方法。总结:编译看左边,运行看右边。对象的多态性只适用于方法,不适用于属性。public原创 2020-12-03 20:38:47 · 265 阅读 · 0 评论 -
【尚硅谷-Java学习】5.3 关键字 super
导入重写方法后,怎样调用父类中被重写的方法?A:用super修饰该方法。使用1. 对属性、方法super可以修饰属性、方法,通过super.属性或super.方法可以在子类中调用父类的属性和方法。子类中没有和父类同名的属性时,通常省略super.。子类没有对父类的方法进行重写时,也会省略super.。2. 对构造器当父类中的属性是private时,子类对该属性赋值可以用super(形参列表)的方式,调用父类中声明的指定的构造器。super(形参列表)的使用必须出现在子类构造器的首行原创 2020-12-03 17:43:57 · 220 阅读 · 0 评论 -
【尚硅谷-Java学习】5.2 方法的重写
方法的重写(overwrite/override)子类对父类中继承来的同名同参的方法进行改造。程序执行时,子类的方法会覆盖父类的方法。即通过子类对象调用父类同名同参方法时,实际执行的是子类重写的方法。重写的方法前有三角标识:规定权限修饰符 返回值类型 方法名(形参列表) throws 异常类型{ //方法体}子类中的叫:重写的方法父类中的叫:被重写的方法子类重写的方法和父类被重写的方法,方法名、形参列表相同。子类重写的方法的权限修饰符不能小于父类的。子类不能重写父类中声明为原创 2020-12-02 17:55:34 · 306 阅读 · 0 评论 -
【尚硅谷-Java学习】eclipse使用
工作空间进入eclipse时会选择工作空间。工作空间可以有多个,默认工作空间不要勾选!首次使用的设置透视图默认选择Java EE。如果不是,点左边按钮可以更改。组件在右上角搜索框里快捷搜索:Package Explore 拖到左边Navigator 拖到左边Outline 拖到左边Console 拖到下方Servers 拖到下方其他组件叉掉。修改编码集Window–>preferences–>General–>Workspace编码集默认是GBK原创 2020-12-02 16:41:46 · 456 阅读 · 0 评论 -
【尚硅谷-Java学习】5.1 面向对象的特征之二继承性
继承性(inheritance)好处减少代码的冗余,提高代码复用性便于功能的扩展为多态性的使用提供前提格式class A extends B{ }A:子类/派生类,subclassB:父类/超类/基类,superclass体现子类会继承父类所有的结构(属性和方法)。特别的,父类中声明为private的结构,子类可以获取到,由于封装性影响不能直接调用。子类可以定义自己特有的属性和方法,实现功能的扩展。规则一个类可以被多个子类继承一个类只能有一个父类(单继承性)直接父类:原创 2020-12-01 20:13:21 · 300 阅读 · 0 评论 -
【尚硅谷-Java学习】【项目2源码】客户信息管理软件
Customerpackage com.atguigu.p2.bean;public class Customer { private String name;//姓名 private char gender;//性别 private int age;//年龄 private String phone;//电话 private String email;//邮箱 public Customer() { } public Customer(String name, char g原创 2020-12-01 16:03:34 · 4393 阅读 · 4 评论 -
【尚硅谷-Java学习】【项目2】客户信息管理软件
涉及知识点需求软件结构设计三个模块Customer:实体对象,用来封装客户信息。CustomerList:Customer对象的管理模块,用数组管理一组对象,提供增、删、改、遍历方法,供CustomerView调用CustomerView:主模块,负责菜单的显示和处理用户操作。...原创 2020-12-01 16:03:29 · 2095 阅读 · 2 评论 -
【尚硅谷-Java学习】4.5 关键字this、package、import
一、关键字 this1. this修饰属性当类的方法所用到的形参和属性同名时,需要使用this加以区分。例如Person类有属性name,则方法setName(String name)class Person{ String name; public void setName(String name){ this.name = name; }}this修饰的name表示属性名,this可以理解为当前对象:this.name和p1.name。(其中Person p1 = new Per原创 2020-11-26 17:54:46 · 218 阅读 · 0 评论 -
【尚硅谷-Java学习】4.4 UML类图
+ : public类型- : private类型# : protected类型原创 2020-11-26 17:27:43 · 182 阅读 · 0 评论 -
【尚硅谷-Java学习】4.3 类的结构之三 构造器
构造器(构造方法,constructor)用来创建对象,例如一个类Person,创建对象语句Person p = new Person();中Person()即为构造器。如果没有显式定义构造器,系统默认提供一个空参的构造器。如上所示。一旦显式定义了构造器,系统不再提供空参构造器。定义构造器格式:权限修饰符 类名(形参列表){ }class Person{ Srting name; public Person(){ System.out.println("构造器"); }}一个类可以原创 2020-11-26 15:16:38 · 179 阅读 · 0 评论 -
【尚硅谷-Java学习】4.2 面向对象的特征之一封装性、权限修饰符
封装程序设计追求“高内聚、低耦合”。高内聚:类的内部数据操作不允许外部干涉。低耦合:仅对外暴露少量方法用于使用。对属性的封装使用户不能直接设置属性,而是通过创建的方法设置属性,使用户设置符合要求的属性值。属性私有化:使用private权限修饰符创建公共的设置属性的方法和获取属性的方法。class Animal{ private int legs; public void setLegs(int n){ if(n>0 ){ legs = l; }else{原创 2020-11-24 19:01:34 · 150 阅读 · 0 评论 -
【尚硅谷-Java学习】4.1 面向对象
Java类及类的成员:属性、方法、构造器、代码块、内部类面向对象的三大特征:封装性、继承性、多态性、(抽象性)其它关键字:this、super、static、final、abstract、interface、package、import面向对象的思想类是抽象概念对象是类的实例化。面向对象的重点是类的设计,即设计类的成员。属性(field):即成员变量,也称为域、字段方法(method):即成员方法类和对象的使用1.⭐设计类2.对象的创建3.通过“对象.属性”“对象.方法”调用对象结构原创 2020-11-24 17:55:09 · 173 阅读 · 0 评论 -
【代码练习查漏补缺】List 用法
1.使用1.1 List接口的常用实现类在使用List集合时,通常情况下声明为List类型,实例化时根据实际情况的需要,实例化为ArrayList或LinkedList,例如:List<String> list1= new ArrayList<String>();// 利用ArrayList类实例化List集合List<String> list2 = new LinkedList<String>();// 利用LinkedList类实例化List集合转载 2021-03-03 16:33:44 · 418 阅读 · 0 评论 -
【尚硅谷-Java学习】3.3 数组中的异常
1.角标越界合法范围 :0–length-1异常:<0或>length-12.空指针没有创建就调用。情况1:int【】 a;syso();原创 2020-11-25 16:36:19 · 259 阅读 · 0 评论 -
【尚硅谷-Java学习】3.2 Arrays工具类
java.util.Arrays类:操作数组的工具类,包含操作数组的各种方法。boolean isEquals = Arrays.equals(a,b)判断两个数组是否相等String info = Arrays.toString(a)输出数组信息Arrays.fill( a, val)将指定值填到数组中Arrays.sort(a)对数组进行排序int index = Arrays.binarySearch(a, key)对排序后的数组进行二分法检索指定的值,返回索引...原创 2020-11-23 11:43:04 · 220 阅读 · 0 评论 -
【尚硅谷-Java学习】3.1数组和排序
数组:存储相同类型的元素。相关概念:数组名、元素、角标(下标、索引)、数组长度特点:数组是有序排列的;数组是引用数据类型,元素可以是基本数据类型也可以是引用数据类型;创建数组会在内存中开辟一块连续的存储空间,长度一旦确定无法修改。分类:按照维数:一维数组、二维数组……按照数组元素类型:基本数据类型元素数组、引用数据类型数组一维数组声明和初始化 // 静态初始化:数组的初始化和元素的赋值同时进行 int[] ids = new int[]{1001,1002,1003原创 2020-11-23 11:03:57 · 168 阅读 · 0 评论 -
【尚硅谷-Java学习】几种排序算法
十大内部排序算法:十大内部排序算法:选择排序直接选择排序,堆排序交换排序冒泡排序,快速排序插入排序直接插入排序,折半插入排序,shell排序归并排序桶式排序基数排序冒泡排序:以递增为例,比较相邻元素,逆序则交换,一趟比较完成后,最大的值会被放在最右边,后续无需比较,其他元素也会像正确的位置移动;当一趟下来没有进行交换说明序列有序.package com.atguigu.java;//冒泡排序public class BubbleSortTest { public stat原创 2020-11-23 11:03:46 · 278 阅读 · 0 评论 -
【尚硅谷-Java学习】回形数
回形数题目描述输入整数n,生成n*n的二维数组,元素按照顺时针顺序从1递增。例如输入3,得到1 2 3 8 9 4 7 6 5思路定义四个变量up、down、left、right,分别表示数组的最上面、最下面、最左、最右的索引。从左到右填入第一行,然后将第一行剥离,即up++;判断up>down则break;从上到下填入最右列,然后将最右列剥离,即right–;判断left>right则break;从右到左填入最下行……从下到上填入最左列……代码import jav原创 2020-11-21 23:16:55 · 393 阅读 · 0 评论 -
【尚硅谷-Java学习】equals()方法
equals()方法将输入的字符串和指定对象比较,返回true或false。String s1 = "是";s1.equals("是");例题结婚条件(1)身高180以上;(2)财富1kw以上;(3)帅。用户输入身高、财富(单位kw)、是否帅,满足三个条件输出“一定嫁”,有满足的条件输出“嫁叭”,都不满足输出“不嫁”。import java.util.Scanner;class Marry{ public static void main(String[] args) { Sca原创 2020-11-21 22:14:45 · 229 阅读 · 0 评论 -
【尚硅谷-Java学习】Math.random()方法
Math.random()方法随机生成[0.0,1.0]之间的double类型的数字公式生成范围在[a,b]之间的随机整数的公式:(int)(Math.random() * (b-a+1) + a)例题随机生成两位数的彩票中奖号码,用户输入一个两位数,(1)与中奖号码一致奖励10000美元;(2)数字与中奖号码相同但顺序不一致奖励3000美元;(3)只有一个数字与中奖号码相同且位置一致奖励1000美元;(4)只有一位数字与中奖号码相同但位置不一致奖励500美元;(5)其他情况彩票作废。impor原创 2020-11-21 22:11:46 · 284 阅读 · 0 评论 -
【尚硅谷-Java学习】【项目】家庭记账软件
涉及知识点变量的定义基本数据类型的使用循环语句分支语句方法声明、调用、返回值的接收简单的屏幕输出格式控制需求实现1.Utility工具类将不同的功能封装成方法。获取键盘输入内容:获取长度在指定范围的输入用于界面菜单的选择:输入1–4选择功能用于收入和支出金额的输入:输入不超过4位的数字用于收入和支出的说明的输入:输入长度不超过8的说明用于确认选择的输入:是(Y/y)否(N/n)确认退出...原创 2020-11-19 17:36:31 · 607 阅读 · 0 评论 -
【尚硅谷-Java学习】【项目源码】家庭记账软件
Utility.javaimport java.util.Scanner;public class Utility{ private static Scanner scanner = new Scanner(System.in); public static char readMenuSelection(){ char c ; for (; ; ) { String str = readKeyBoard(1); c = str.charAt(0); if (c!原创 2020-11-19 17:35:48 · 835 阅读 · 1 评论