自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java多线程3 线程的同步

/*Java多线程: 线程的生命周期与线程安全一,线程的分类Java中的线程分为两类:一种是守护线程,一种是用户线程。 它们在几乎每个方面都是相同的,唯一的区别是判断JVM何时离开。守护线程是用来服务用户线程的,通过在start()方法前调用thread.setDaemon(true)可以把一个用户线程变成一个守护线程。Java垃圾回收和异常处理就是典型的守护线程,main方法时用户线程...

2020-03-08 22:19:16 222

原创 Java多线程2 线程创建的两种方式与Thread类常用方法

/*线程的创建方式一 Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread类来体现。Thread类的特性1,每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常把run()方法的主体称为线程体2,通过该Thread对象的start()方法来启动这个线程,而非直接调用run()3,构造器*Thread():创建新的Thread对象*...

2020-03-06 21:37:57 248

原创 Java 多线程1 IDEA快捷键和多线程的理解

package leanthread;/*ideal 常用快捷键https://blog.csdn.net/houfeng30920/article/details/79037647-----------自动代码--------常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码例如要输入for(User user...

2020-03-03 22:05:11 783

原创 java练习项目三 团队成员调度程序

主要目的,练习多态性,异常处理,设计模式创建bean包,包含基础对象创建员工类package bean;public class Employee { private int id; private String name; private int age; private double salary;public int getId() { return id;}...

2020-02-29 21:46:06 395

原创 java异常4 手动抛出异常与自定义异常类

/*手动抛出异常:throw(注意throws是处理异常,throw是抛出异常)1,Java异常类对象除在程序执行过程中出现异常时由系统自动生成并抛出,也可根据需要使用人工创建并抛出。2首先要生成异常类对象,然后通过throw语句实现抛出操作(提交给Java运行环境)。可以抛出的异常必须是Throwable或其子类的实例。否则将会产生语法错误:通常使用RuntimeExceptio...

2020-02-25 21:59:56 2524

原创 java异常3异常处理之throws结构

/**异常处理方式2 throws*1,throws + 异常类型写在方法的声明处,指明此方法执行时,可能会抛出的异常。当方法执行出现异常时,会在异常处生成一个异常类的对象,当此对象匹配到throws后声明的异常类型时,就会被抛出,由此方法的调用者处理异常,异常代码之后的语句不再执行。2,throws后面的异常类型可以有多个,使用,隔开。异常类型可以是方法中产生的异常类型,也可以是它...

2020-02-25 16:43:13 210

原创 java异常2 异常处理之try-catch-finally结构

/*异常处理方式1 try-catch-finally1,Java采用的异常处理机制,是将异常处理的程序代码集中在一起,与正常的程序代码分开,过多的if-else分支会导致程序的代码加长、臃肿,可读性差。因此采用异常处理机制。使得程序简洁、优雅,并易于维护。2,Java提供的是异常处理的抓抛模型。步骤一:抛出异常程序在执行过程中如出现异常,会生成一个异常类对象,该异常对象将被提交...

2020-02-25 11:50:13 856

原创 java异常1 异常概述与分类

/*异常的概述与分类1,在Java语言中,将程序执行中发生的不正常情况称为“异常”。 (开发过程中的语法错误和逻辑错误不是异常)2,Java程序在执行过程中所发生的广义异常事件可分为两类:2.1Error(也叫错误):Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError和OutOfMemoryError。一般不编写...

2020-02-24 16:32:49 167

原创 java前期补遗--编译过程与关键字的书写规范

/*1.java程序编写-编译-运行的过程编写:将编写的java代码保存在以.java为后缀的源文件中编译:使用java.exe命令编译java源文件。格式为 javac 源文件名.java运行:使用java.exe命令解释运行我们的字节码文件。格式: java 类名2.在一个java源文件中可以声明多个class,但是最多只能有一个类被声明为public被声明的类名称应该跟文件名一致...

2020-02-23 12:45:50 158

原创 java前期补遗--运算符的使用

/*java中的运算符1,算数运算符正+负- 加+ 减-乘*除/ 取模%自增(前)++a 先运算后取值 自增(后)a-- 先取值后运算自减(前)–a 先运算后取值 自减(后)a-- 先取值后运算字符串连接+*/class ArythmeticTest{ public static void main(String[] args) { //除法 / int num1 = 12...

2020-02-23 12:43:48 515

原创 java前期补遗--基本数据类型与自动类型提升

/*java定义的数据类型java属于强类型语言,对于每一种数据都定义了明确的具体类型,并在内存中分配不同大小的内存空间。按照数据类型分一,基本数据类型(primitive type)1数值型(整数型 byte short int long,浮点型float double)内存空间有小到大2字符型 char3布尔型 boolean二,引用数据类型(reference type)1...

2020-02-23 12:36:23 169

原创 java面向对象24 内部类(InnerClass)的使用

/*类成员结构之内部类的使用1,Java中可以在一个类A中定义一个类B,类A为外部类,类B为内部类,注意内部类B的类名不能与外部类A重名编译以后生成 外部类名$内部类名.class字节码文件2,内部类按照声明的位置分为:成员内部类(静态的与非静态的)1,作为外部类的成员可以调用外部类的结构不同于外部类不能被static修饰,内部类可以声明为static的。...

2020-02-23 10:30:01 219

原创 java面向对象23 JDK8中关于接口的新特性

/*JDK8中关于接口的新特性JDK8以后的版本中接口内的结构除了可以定义全局常量和抽象方法外,还可以定义静态方法与默认方法静态方法:使用 static 关键字修饰。可以通过接口直接调用静态方法,并执行其方法体。经常在相互一起使用的类中使用静态方法。可以在标准库中找到像Collection/Collections或者Path/Paths这样成对的接口和类。默认方法:默认方法使用 ...

2020-02-21 16:56:15 187

原创 java面向对象22 接口的应用:工厂模式

/*接口的应用:工厂模式1工厂模式:实现了创建者与调用者的分离,即将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。用工厂方法代替 new 操作。将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。2工厂模式的分类:2.1简单工厂模式:用来生产同一等级结构中的任意产品。简单工厂模式也叫静态工厂模式,就是工厂类一般是使用静态方法,通过接收的参数的不同来返回不...

2020-02-21 14:22:31 124

原创 java面向对象21接口interface的使用

/*接口(interface)的使用1,使用 interface 接口名{} 的格式来定义一个接口,接口的主要用途就是被实现类实现。(面向接口编程)2,在java中接口与类是并列的结构,3,接口里面的成员3.1在JDK7及以前的版本中,接口里面只能定义全局常量和抽象方法全局常量:public static final 变量类型 变量名 = 值;因为默认是公共的静态常量,前面...

2020-02-21 10:11:46 342

原创 java面向对象20抽象类abstract的使用

/*抽象类与抽象方法,abstract关键字abstract可以修饰类与方法,不能t修饰变量、代码块、构造器,不能用abstract修饰私有方法、静态方法、final的方法、final的类。1,用abstract关键字来修饰一个类,这个类叫做抽象类.1.1抽象类不能被实例化1.2类中一定要有构造器,便于子类实例化时调用。1.3应用中都会提供抽象类的子类,让子类对象实例化。2...

2020-02-19 16:57:37 229

原创 java面向对象19 final关键字的使用

/*final关键字的使用在Java中声明类、变量和方法时,可使用关键字final来修饰,表示“最终的”。1,当用final来修饰一个类时,此类不能被继承,例如:String,System,StringBuffer。2,当用final来修饰一个方法时,此方法无法被重写,例如Object类中的getClass().3,当用final来修饰一个变量时,表明此为常量,值无法修改3.1当f...

2020-02-17 09:09:43 115

原创 java面向对象18 代码块的使用

/*类成员之代码块代码块也叫初始化块,作用是对Java类或对象进行初始化一个类中代码块若有修饰符,则只能被static修饰,称为静态代码块(static block),没有使用static修饰的,为非静态代码块。静态代码块可以有输出语句。可以对类的属性、类的声明进行初始化操作。不可以对非静态的属性初始化。即:不可以调用非静态的属性和方法。若有多个静...

2020-02-15 17:15:51 124

原创 java个人项目,股票资金模拟

第一个版本在学习java面向对象之前编写,比较初级,直接在控制台输入参数,在main方法中完成数据的模拟与输出package stocktradingsimulation;/*此程序用于虚拟股票交易数值结果,模拟四只股票的交易情况@author:wisdomcodeinside@version:1.0.0.1*/import java.util.Scanner;import ja...

2020-02-14 16:28:59 787

原创 java面向对象17static关键字与单例模式

/*static关键字的使用1,static(静态的),关键字可以用来修饰属性,方法,代码块,内部类,不能用来修饰构造器2,使用static修饰属性:静态变量,或者叫类变量2.1属性按照是否使用static修饰分为静态属性(类属性)和非静态属性(实例变量)。实例变量:创建类的多个对象,每个对象都有独立的一套类中的非静态属性,修改其中一个对象的非静态属性不影响其他的对象,不会导致其他...

2020-02-14 09:49:23 141

原创 java面向对象16 包装类的使用

/*包装类(Wrapper Class)1,针对八种基本数据类型定义相应的引用类型—包装类(封装类),有了类的特点,就可以调用类中的方法,Java才是真正的面向对象byte–Byte,short–Short,int–Integer,long–Long,float–Float,double–Double,这些类的直接父类都是Number。boolean–Boolean,char–Chara...

2020-02-06 14:51:49 128

原创 java面向对象15 Object类 和 JUnit单元测试

/*Object类1,Object类是所有Java类的根父类,如果在类的声明中未使用extends关键字指明其父类,则默认父类 为java.lang.Object类也就是说所有类的对象都可以使用Object类定义的方法,Object类只提供一个空参构造器。2,Object类中的方法:常用 equals()比较,toString()输出,clone()复制对象,hashCode()集合使...

2020-02-03 22:04:58 309

原创 java面向对象14多态性与instanceof关键字的理解

/*java面向对象三大特性之多态性1,多态性可以理解为一个事物的多种形态2,对象的多态性:父类的引用指向子类的对象或者说子类的对象赋给父类的引用。3,多态的使用:虚拟方法调用子类中定义了与父类同名同参数的方法,在多态情况下,将此时父类的方法称为虚拟方法,父类根据赋给它的不同子类对象,动态调用属于子类的该方法。这样的方法调用在编译期是无法确定的。所以多态性是运行时行为,而非编译时行...

2020-02-01 13:35:33 174

原创 java 面向对象13 方法的重写和super关键字

/*方法的重写1,定义:在子类中可以根据需要对从父类中继承来的方法进行改造,也称为方法的重置,覆盖。在程序执行时,子类的方法会覆盖父类的方法。2,重写的规则2.1 子类重写的方法必须和父类被重写方法具有相同的方法名称,参数列表方法的重载是同类下,同名方法参数列表不同2.2子类重写的方法返回值类型不能大于父类被重写方法的返回值类型1,父类返回值类型为void,子类重写的返回值类型也...

2020-01-30 17:48:59 165 1

原创 java面向对象12继承性

/*面向对象特性之继承*1.为什么要有继承?多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。此处的多个类称为子类(派生类),单独的这个类称为父类(基类 或超类)。2.类继承语法规则:class Subclass extends SuperClass{}一旦子类继承父类以后,子类就获取了父类中声明的所有属性和方...

2020-01-29 11:19:18 80

原创 java基础项目练习二-客户信息管理程序,实现基本的增删改查

练习基本的MVC设计模式,创建customer类,提供基本属性和对应的存取方法package bean;public class Customer { private String name; private int age; private char gender; private String phone; private ...

2020-01-27 21:37:19 981

原创 java面向对象11综合练习 账户建立和操作

建立账户类,封装属性:ID,余额,利率提供相应接口,提供存取款方法,加入判断限制package bank;public class Account{ private int id; private double balance; private double annualInterestRate; public Account() { } public Account(d...

2020-01-22 08:48:15 271

原创 java面向对象练习10 this关键字

/*java关键字之this1,this可以修饰属性,方法,构造器。2,当this修饰属性和方法时,this可以理解为当前对象(在方法内)或正在创建的对象(在构造器内)2.1在类的方法中,我们可以使用“this.属性”或者“this.方法”的方式,调用当前对象属性或方法。但是通常情况下,都会选择省略“this”。特殊情况下,如果方法的形参与类的属性重名时,必须显示的使用“this...

2020-01-21 21:09:46 331

原创 java面向对象练习9 构造器的定义,javaBean,UML类图

/*类的结构之构造器的使用构造器的作用是为了创建对象,给对象进行初始化,使用参数给属性赋值构造器语法格式:修饰符 类名(参数列表){初始化语句}构造器分类:1,隐式无参构造器,由系统默认提供。2,显示定义一个或多个构造器(可以无参,可以有参)*构造器特征:1.1具有与类相同的名称1.2不声明返回值类型(与声明为void不同)1.3不...

2020-01-20 21:14:30 261

原创 java面向对象练习8 封装性与权限修饰符

/*封装的含义和作用1,隐藏对象内部的复杂性,只对外公开简单的接口便于调用,从而提高系统的可扩展性,可维护性。把该隐藏的隐藏起来,把该暴露的暴露出来。就是封装性设计的思想。2,程序设计追求高内聚,低耦合高内聚:类内部的数据操作细节在内部完成,不允许外部干涉低耦合:仅对外暴露少量方法用于调用4,具体情况:当创建一个类的时候,里面的成员变量可以通过“对象.属性”的方式调用赋值。赋...

2020-01-20 15:41:22 176

原创 java面向对象练习7 递归方法

/*递归方法,一个方法体内调用其自身。递归方法包含了一种隐式循环,它会重复执行某段代码,但这种重复执行无需循环控制;递归一定要想已知方向进行,否则这种递归就变成了无穷递归,类似死循环。*/package com.atguigu.contact;import java.util.*;public class ObjectRecursion { public static voi...

2020-01-20 09:24:13 115

原创 java面向对象练习6 方法形参的值传递机制测试

/*变量的赋值变量是基本数据类型时:此时赋值的是变量所保存的数据值变量是引用数据类型时:此时赋值的是变量所保存的数据的地址值方法中参数的传递机制方法必须由其所在类或对象调用才有意义。若方法含有参数:实参:方法调用时实际传递给形参的参数值形参:方法声明时的参数Java中方法的参数传递方式只有一种:值传递。将实际参数值的副本传入方法内,而参数本身不受影响。形参是基本数据类型时:...

2020-01-17 16:47:15 175

原创 java 面向对象练习5 方法重载与可变形参

/*方法的重载:1在同一个类中允许存在一个以上的同名方法,前提是他们的参数个数或者参数类型不同(两同一不同:类相同,名相同,参数列表不同)2重载特点: 与返回值的类型无关,只看参数列表,参数列表必须不同(参数个数与参数类型)调用时,根据方法参数列表的不同区分方法3判断是否重载:跟方法的权限修饰符,返回值类型,形参的变量名,方法体都无关。只用两同一不同判断4在通过对象调用方法时,如...

2020-01-16 10:01:12 202 1

原创 java 面向对象练习4 匿名对象与自定义数组工具类

/*一,理解万事万物皆对象1,在java中,我们将功能,结构等封装到类中,通过类的实例化来调用具体的功能结构例如Scanner,String文件路径file,网络地址 URL都是类2,在java语言与前端(html,css,js),后端数据库交互时,前后端的结构在java端交互时,都体现为类,对象。二,匿名对象1,通过new 类名()来创建一个对象,没有显式的赋一个变量名,直接调...

2020-01-15 17:21:34 196

原创 java 面向对象练习3 对象数组

/*对象数组题目1,创建学生类:包含三个属性,学号number,int型,年级 state int型,成绩score int型创建60个对象,学号为1到60,年级和成绩由随机数确定2,打印3年级所有学生的信息3,使用冒泡排序给学生成绩排序,并遍历所有学生信息随机数生成:Math.random(),返回值类型double随机数组范围[0,1),映射到[a,b]则表达式为 (Math...

2020-01-15 11:16:55 504

原创 java 面向对象练习2

/*类中属性的声明与使用属性(成员变量)与局部变量的区别1,相同点1.1定义变量的形式都是:数据类型 变量名 = 变量值1.2都需要先声明,再使用1.3变量都有其对应的作用域和生命周期。2,不同点2.1 位置不同属性(成员变量):直接声明在类的一对{}内部局部变量:声明在方法内,方法形参,代码块内,构造器形参,构造器内部的变量2.2 权限修饰符不同属性:可以在声明属性的同...

2020-01-14 19:57:03 117

原创 java 面向对象练习1

/*java面向对象三条主线1,java类以及类的成员类的成员:属性,方法,构造器,代码块,内部类2,面向对象的三大特征封装性(Encapsulation),多态性(Polymorphism),继承性(Inheritance),(抽象性abstractness)3,其他关键字的使用this,super,static,final,abstract,interface,package...

2020-01-14 19:56:12 175

原创 java 数组练习3

/*排序算法通常排序的目的是为了快速查找衡量排序算法的优劣1,时间复杂度:分析关键字的比较次数和记录的移动次数2,空间复杂度:分析排序算法需要多少辅助内存3,稳定性:若两个记录A和B的关键字值相等,但排序后A,B的先后次序保持不变,则称这种排序算法是稳定的*排序算法分类:内部排序,外部排序*1,内部排序:排序过程不需要借助外部储器,所有排序操作在内存中完成*2,外部排序:参...

2020-01-12 14:22:13 151

原创 java数组练习2

/*数据结构简析1数据与数据的逻辑关系分类:1.1集合1.2一对一关系(数组,链表)1.3,一对多(二叉树,三叉树)1.4,多对多(人际关系图)2二数据的储存结构2.1一对一: 线性表,分为顺序表(例如数组),栈(先进后出),队列(先进先出)),链表2.2一对多:树形结构,二叉树,三叉树,b+树等2.3多对多:图形结构,分有向图与无向图基本算法1,排序算法2,检索算...

2020-01-11 07:12:25 167

原创 java数组练习1

/*数组数组概念:是多个相同类型数据按照一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理数组常见名词:数组名,角标或下标(索引),元素,数组的长度数组特点,1数组是有序排列的2数组本身是引用数据类型,但数组中的元素可以使任何数据类型,包括基本数据类型和引用数据类型3创建数组对象会在内存中开辟一整块连续的空间(不连续的如链表),而数组名中引用的是这块连...

2020-01-07 13:45:26 196

空空如也

空空如也

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

TA关注的人

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