自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Day50(Map接口,HashMap,LinkedHashMap,TreeMap,Hashtable,Collections工具类,数据结构)

Map接口Map接口概述y=f(x)(x1,y1) (x2,y2),…Map与Collection并列存在。用于保存具有映射关系的数据:key-valueMap 中的key 和value 都可以是任何引用类型的数据Map 中的key 用Set来存放,不允许重复,即同一个Map 对象所对应的类,须重写hashCode()和equals()方法常用String类作为Map的“键”key 和value 之间存在单向一对一关系,即通过指定的key 总能找到唯一的、确定的valu

2021-02-26 20:46:32 109

原创 Day49(Set接口练习题)

Set练习题第一题:定义一个Employee类。该类包含:private成员变量name,age,birthday,其中birthday 为MyDate 类的对象;并为每一个属性定义getter, setter 方法;并重写toString 方法输出name, age, birthdayMyDate类包含:private成员变量year,month,day;并为每一个属性定义getter, setter 方法;创建该类的5 个对象,并把这些对象放入TreeSet 集合中(下一章:TreeSe

2021-02-25 19:47:31 218

原创 Day48(List接口,ArrayList,LinkedList,Vector,Set接口,HashSet,LinkedHashSet,TreeSet,自然排序,定制排序)

Collection子接口之一:List接口List接口概述鉴于Java中数组用来存储数据的局限性,我们通常使用List替代数组List集合类中元素有序、且可重复,集合中的每个元素都有其对应的顺序索引。List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。JDK API中List接口的实现类常用的有:ArrayList、LinkedList和Vector。List接口方法List除了从Collection集合继承的方法外,List 集

2021-02-24 18:32:55 211

原创 Day47(注解,集合,Collection接口,Collection方法,Iterator迭代器接口,foreach循环)

利用反射获取注解信息JDK 5.0 在java.lang.reflect包下新增了AnnotatedElement接口, 该接口代表程序中可以接受注解的程序元素当一个Annotation 类型被定义为运行时Annotation 后, 该注解才是运行时可见, 当class 文件被载入时保存在class 文件中的Annotation 才会被虚拟机读取程序可以调用AnnotatedElement对象的如下方法来访问Annotation 信息JDK8中注解的新特性Java 8对注解处理提供

2021-02-23 23:31:33 204

原创 Day46(枚举类,enum,Enum类方法,注解,常见的注解示例,自定义注解,元注解)

枚举类枚举类的使用主要内容:如何自定义枚举类如何使用关键字enum定义枚举类Enum类的主要方法实现接口的枚举类类的对象只有有限个,确定的。举例如下:星期:Monday(星期一)、…、Sunday(星期天)性别:Man(男)、Woman(女)季节:Spring(春节)…Winter(冬天)支付方式:Cash(现金)、WeChatPay(微信)、Alipay(支付宝)、BankCard(银行卡)、CreditCard(信用卡)就职状态:Busy、

2021-02-21 18:30:17 342

原创 Day45(DateTimeFormatter类,Comparable,Comparator,System,Math,System,BigInteger,BigDecimal)

java.time.format.DateTimeFormatter类该类提供了三种格式化方法:预定义的标准格式。如:ISO_LOCAL_DATE_TIME;ISO_LOCAL_DATE;ISO_LOCAL_TIME本地化相关的格式。如:ofLocalizedDateTime(FormatStyle.LONG)自定义的格式。如:ofPattern(“yyyy-MM-dd hh:mm:ss”)方法描述ofPattern(String pattern)静态方法,返

2021-02-20 19:06:38 224

原创 Day44(String练习题,Jdk8时间日期API,SimpleDateFormat类,Calendar类,LocalDateTime,Instant)

2.将一个字符串进行反转。将字符串中指定部分进行反转。比如“abcdefg”反转为”abfedcg”//2.将一个字符串进行反转。将字符串中指定部分进行反转。比如“abcdefg”反转为”abfedcg” public String test02(String string,int startIndex,int endIndex){ if (string != null) { String st1 = new String(string.substring(

2021-02-19 22:58:48 313

原创 Day43(StringBuilder,时间,java.lang.System,java.util.Date,String练习题)

字符串相关的类:StringBuilderStringBuilder和StringBuffer 非常类似,均代表可变的字符序列,而且提供相关功能的方法也一样面试题:对比String、StringBuffer、StringBuilderString(JDK1.0):不可变字符序列StringBuffer(JDK1.0):可变字符序列、效率低、线程安全StringBuilder(JDK 5.0):可变字符序列、效率高、线程不安全注意:作为参数传递的话,方法内部String不会改变其值

2021-02-18 20:12:32 132

原创 Day42(StringBuffer,StringBuilder,常用方法)

StringBufferStringBuffer的特性StringBuffer类不同于String,其对象必须使用构造器生成。有三个构造器:StringBuffer():初始容量为16的字符串缓冲区StringBuffer(int size):构造指定容量的字符串缓冲区StringBuffer(String str):将内容初始化为指定字符串内容String s= newString("我喜欢学习"); StringBuffer buffer= newStringBuffer(

2021-02-17 22:01:23 108

原创 Day41(String常用方法,String与基础数据类型、包装类、字符数组、字节数据之间的转换)

替换:String replace(char oldChar,char newChar):返回一个新的字符串,它是通过用newChar替换此字符串中出现的所有oldChar得到的。String replace(Char Sequence target,CharSequence replacement):使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。String replaceAll(String regex,String replacement):使用给定的replacemen

2021-02-13 00:51:13 160

原创 Day40(String的特性,String常用方法)

字符串相关的类:StringString的特性String类:代表字符串。Java 程序中的所有字符串字面值(如"abc" )都作为此类的实例实现。String是一个final类,代表不可变的字符序列。字符串是常量,用双引号引起来表示。它们的值在创建之后不能更改。String对象的字符内容是存储在一个字符数组value[]中的。String对象的创建String str = "hello";//本质上this.value = new char[0];String s1 = newSt

2021-02-12 02:27:06 144 1

原创 Day39(生产者/消费者问题,实现Callable接口,线程池,FutureTask,ExecutorSevice,Executors)

经典例题:生产者/消费者问题生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员处取走产品,店员一次只能持有固定数量的产品(比如:20),如果生产者试图生产更多的产品,店员会叫生产者停一下,如果店中有空位放产品了再通知生产者继续生产;如果店中没有产品了,店员会告诉消费者等一下,如果店中有产品了再通知消费者来取走产品。这里可能出现两个问题:生产者比消费者快时,消费者会漏掉一些数据没有取到。消费者比生产者快时,消费者会取相同的数据。/** * 经典例题:生

2021-02-11 01:53:47 187

原创 Day38(Lock锁,线程的通信,wait()方法,notify()方法,notifyAll()方法)

Lock(锁)从JDK 5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当。java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对象加锁,线程开始访问共享资源之前应先获得Lock对象。ReentrantLock 类实现了Lock ,它拥有与synchronized 相同的并发性和内存语义,在实现线程安全的控制中,比较常用的是

2021-02-10 02:20:59 429 1

原创 Day37(单例设计模式,懒汉式,饿汉式,死锁)

单例(Singleton)设计模式设计模式**是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。**设计模免去我们自己再思考和摸索。就像是经典的棋谱,不同的棋局,我们用不同的棋谱。“套路”所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类**只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造器的访问权限设置为private**,这样,就不能用new操作符在类的外部

2021-02-09 01:28:21 142

原创 Day36(线程的同步,线程安全,synchronized关键字,同步代码块,同步方法,锁)

线程的同步synchronized的使用方法Java对于多线程的安全问题提供了专业的解决方式:同步机制1.同步代码块:synchronized (对象){// 需要被同步的代码;}2. synchronized 还可以放在方法声明中,表示整个方法为同步方法。例如:public synchronized void show (String name){….}同步代码:同步代码块解决实现Runnable接口创建多线程中的安全问题的操作(包含synchronized的详细使用方法):/

2021-02-08 02:25:01 152

原创 Day35(继承Thread和实现Runnable接口的区别,线程的生命周期)

继承方式和实现方式的联系与区别:继承方式和实现方式的联系与区别public class Thread extends Objectimplements Runnable区别继承Thread:线程代码存放Thread子类run方法中。实现Runnable:线程代码存在接口的子类的run方法。实现方式的好处避免了单继承的局限性多个线程可以共享同一个接口实现类的对象,非常适合多个相同线程来处理同一份资源。开发中:优先选择”实现Runnable接口的方式“原因:

2021-02-07 01:00:38 111 1

原创 Day34(Thread方法,线程的调度,优先级,实现Runnable接口创建多线程)

Thread方法Thread类的有关方法void start(): 启动线程,并执行对象的run()方法run(): 线程在被调度时执行的操作String getName(): 返回线程的名称void setName(String name):设置该线程名称static Thread currentThread(): 返回当前线程。在Thread子类中就是this,通常用于主线程和Runnable实现类static void yield():线程让步,暂停当前正在执行的

2021-02-06 02:06:57 181

原创 Day33(线程的创建方式一,Thread类,继承重写Thread类的run方法,start方法启动,通过创建Thread类的匿名子类创造线程)

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

2021-02-05 01:57:21 639

原创 Day32(项目二:客户信息管理系统,多线程,基本概念:程序、进程、线程,使用多线程的优点)

项目二 客服信息管理系统共有四个Java文件:一,CustomerViewpublic class CustomerView { private CustomerList customerlist = new CustomerList(10); public CustomerView(){ Customer cust = new Customer("柯基",'女', 20,"13910001000","13910001000@163.com"); cus

2021-02-03 23:35:29 176

原创 Day31(自定义异常)

自定义异常使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,值需继承Exception类即可。在程序中使用自定义异常类,大体可分为以下几个步骤:创建自定义异常类。在方法中通过throw关键字抛出异常对象如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。在出现异常方法的调用者中捕获并处理异常。package com

2021-02-03 03:06:51 114

原创 Day30(项目一练习:家庭记账系统,异常机制,Error,Exception,try,catch,finally,throw,throws)

项目一(家庭记账)自己发生的一些小问题:1,粗心写成了public + 类名+ class2,main( ) 括号内的参数忘记写了3,Scanner in = New scanner( ); 漏写了System.in4,缺少了:import java.util.Scanner;5,判断变量char的时候,值没有加 ’ ’Utility工具类的代码尚未全部理解public class FamilyAccount{ public static void main(String[]

2021-02-02 03:35:20 206

原创 Day29(内部类)

内部类内部类就是在一个类的内部再定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相比B类来说就是外部类了。1,成员内部类2,静态内部类3,局部内部类4,匿名内部类public class Outer { private int Id; public void out(){ System.out.println( "这是外部类的方法"); } class Inner { public void in(

2021-02-01 05:35:20 93

原创 Day28(抽象类,abstract关键字,接口,interface关键字,implements)

抽象类//抽象类//使用abstract关键字创建抽象类 JAVA中的类都是单继承的public abstract class Action { //约束~有人帮我们实现 public void doSth(){ } //加abstract关键字的方法是抽象方法,只有方法的声明,没有方法的实现 public abstract void doSomething(); //public abstract void doingIt(){ }

2021-01-31 01:59:27 149

原创 Day27(多态,instanceof,引用类型转换,static,静态非静态,静态代码块,匿名代码块,静态导入包,有final关键字的类不能被继承)

多态即同一方法可以根据发送对象的不同而采用多种不同的行为方式。一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多多态存在的条件有继承关系子类重写父类方法不能被重写的代码:1,static 属于类,它不属于实例2,final 常量3,private 私有的父类引用指向子类对象注意:多态是方法的多态,属性没有多态性类型转换异常 ClassCastExceptioninstanceof1,子类转换为父类,向上转型,可以直接转换2,父类转换为子类,向下转型,需要强制

2021-01-30 02:05:58 285 1

原创 Day26(方法的重写,自制勤学奖日期计算,Dos下Java编译时的编码修改)

方法的重写需要有继承关系,子类重写父类的方法方法名必须相同参数列表必须相同修饰符:范围可以扩大不能缩小:public>Protected>Default>private抛出的异常:范围可以被缩小,但不能扩大;重写,子类的方法和父类必须要一致:方法体不同为什么需要重写:父类的功能,子类不一定需要,或者不一定满足IDEA调用父类方法:Code—— Generate…Override Methods// 父类public class A { pub

2021-01-29 02:58:16 83

原创 Day25(创建对象内存分析,封装,继承,super关键字,get/set)

创建对象内存分析public class Pet { String name; int age; public void shout(){ System.out.println("叫了一声!"); }}public class Application { public static void main(String[] args) { Pet dog = new Pet(); dog.name="旺财"

2021-01-28 02:30:17 171

原创 Day24(回顾方法及加深,静态方法和非静态方法,值传递和引用传递,this关键字,类和对象的关系,创建与初始化对象,构造器)

回顾方法及加深方法的定义修饰符返回类型break和return的区别方法名参数列表(参数类型,参数名,…无限量)异常抛出方法的调用静态方法非静态方法形参和实参package com.lingxiang.data.January;//学生类public class A0126Student {//静态方法(+static):public static void sleep() { System.out.println("咋又趴桌睡觉了!");}//非静态方法:(没

2021-01-27 00:20:40 93 1

原创 Day23(稀疏数组,什么是面向对象)

稀疏数组稀疏数组介绍public class A0125SparseArray { public static void main(String[] args) { //1.创建一个二维码数组 int[][] array01 = new int[11][11]; array01[1][2] = 1; array01[2][3] = 2; /*for (int i=0;i<array01.length;i++){

2021-01-26 02:13:54 114

原创 Day22(冒泡排序)

冒泡排序public class A0124ArrayDemo02 { public static void main(String[] args) { int[] a = {11,2,5,6,1,7}; sort(a); }//自己写的冒泡排序 public static void sort(int[] a){ boolean con=true; //优化方法 //外层循环,判断我们要走多少次

2021-01-25 02:01:13 120 1

原创 Day21(多维数组,Arrays类)

多维数组多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。二维数组:int a[][] = new int[2][5];解析:以上二维数组a可以看成一个两行五列的数组。思考:多维数组的使用?public class A0124ArrayDemo01 { public static void main(String[] args) { int[][] a; a = new int[3][3]; // int

2021-01-24 01:36:24 114

原创 Day20(内存分析,数组三种初始化,数组的四个基本特点,数组的边界,数组使用)

内存分析见图:数组三种初始化静态初始化int[] a = {1,2,3};Man[] mans = {new Man(1,1),new Man(2,2)};动态初始化int[] a = new int[2];a[0]=1;a[1]=2;数组的默认初始化数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。public class A0122Array { public static void main

2021-01-23 02:13:59 94

原创 Day19(计算器~未完善,数组的定义,数组声明创建,数组求和)

计算器小练习基础语法小练习://自己做的简陋低端计算器^-^import java.util.Scanner;public class A0121Calculator { public static void main(String[] args) { Scanner num= new Scanner(System.in); double b=0; double e=0; while (num.hasNextDouble()){

2021-01-22 03:00:52 122

原创 Day18(递归,阶乘(n!),求积)

递归public class A0120Recursion { public static void main(String[] args) { A0120Recursion melon = new A0120Recursion(); int num=melon.abc(4,5,6); System.out.println(num); int num1=melon.rec(4); System.out.println(num1);

2021-01-21 02:10:32 180

原创 Day17(打印三角形,方法,方法的调用,方法的重载,命令行传参,可变参数)

打印三角形 for (int a= 1; a <= 5; a++) { for (int b = 5; b>=a ; b--) { System.out.print(" "); } for (int c = 1; c <= a; c++) { System.out.print("*"); }

2021-01-20 00:58:40 238

转载 Day16(增强for循环,break,continue,goto关键字,标签)

增强 for 循环数组中重点使用Java5引入了一种主要用于数组或集合的增强型for循环Java增强for循环语法格式:for(声明语句:表达式){//代码}声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。表达式:表达式是要访问的数组名,或者是返回值为数组的方法。public class A0119 { public static void main(String[] args) { in

2021-01-19 01:58:01 136

原创 Day15(for循环,输出99乘法表,输出1000内能被5整除的数)

for 循环所有结构都可以用while或者do…while表示,不过for循环使一些循环结构变得更加简单。for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。for循环执行的次数是在执行前就确定的。语法格式如下:for(初始值;布尔表达式;更新)//代码语句练习1:计算0到100之间的奇数和 以及 偶数和:public static void main(String[] args) { int oddsum = 0; int evensum =0

2021-01-18 01:43:12 358

原创 Day14(循环结构,while循环,do...while循环)

循环结构while 循环结构为:while(布尔表达式){//循环内容}只要布尔表达式为true,循环就会一直执行下去。我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。少部分情况需要循环一直执行,比如服务器的请求响应监听等。循环条件一直为true就会造成无限循环(死循环),我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死奔溃。计算1+2+3…+100://输出1加到100:public class A0117

2021-01-17 01:26:37 117

原创 Day13(switch,反编译,查看class文件)

switch多选择结构多选择结构还有一个实现方式就是switch case 语句。switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。switch 语句中的变量类型可以是:byte , short , int 或者 char从Java SE 7 开始 switch 支持字符串 String 类型了同时 case 标签必须为字符串常量或字面量。语法:switch(expression){case value: //语句 break;

2021-01-16 01:38:39 258 1

原创 Day12(Scanner,求和,计算平均数,顺序结构,if的选择结构)

Scanner 进阶判断是否是整数:public class A1014 { public static void main(String[] args) { Scanner a = new Scanner(System.in); System.out.println("请输入整数:"); int Num1 = 0; float Num2 = 0.0f; if (a.hasNextInt()){Num1=a.nextI

2021-01-15 02:01:20 216

原创 Day11(Scanner:next,nextLine,hasNext,hasnextLine)

Scannerjava.util.Scanner 是 Java5的新特征。可以通过Scanner类来获取用户的输入。基本语法:Scanner x = new Scanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()来判断是否还有输入的数据。凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉next():一定要读取到有效字符后才可以结束输

2021-01-14 02:28:49 153

空空如也

空空如也

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

TA关注的人

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