自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2. 字节码指令

2. 字节码指令2.1 入门public cn.itcast.jvm.t5.HelloWorld();构造方法的字节码指令​ 2a b7 00 01 b12a=> aload_0加载slot 0的局部变量,即this,做为下面的invokespecial 构造方法调用的参数b7 =>invokespecial预备调用构造方法,哪个方法呢?00 01引用常量池中#1项,即【Method Java/lang/Object.""????)V】b1表示返回(return)另一个是

2021-12-31 18:19:57 516

原创 类与字节码技术

类文件结构1.1 魔数0-3字节,表示它是否是【class】类型的文件​ |java|0000000 ca fe ba be 00 00 00 34 00 23 0a 00 06 00 15 091.2 版本4-7字节,表示类的版本00 34 (52) 表示是Java80000000 ca fe ba be 00 00 00 34 00 23 0a 00 06 00 15 091.3 常量池8-9字节,表示常量池长度,00 23(35)表示常量池#.

2021-12-31 11:27:31 329

原创 排序数据.

排序1、查询所有员工工资,排序?​ select​ ename,sal​ from​ emp​ order by​ sal;//默认是升序!!!2. 怎么降序?、​ 指定降序:​ select​ ename,sal​ from​ emp​ order by​ sal desc;​ 指定升序:select​ ename,sal​ from​ emp​ order by​ sal asc;3. 可以

2021-12-25 16:34:11 742

原创 简单查询(DQL)

简单查询(DQL)1. 查询一个字段?​ select 字段名 form 表名;​ 其中要注意:​ select 和 form 都是关键字​ 字段名和表名都是标识符强调:所有SQL语句都是“;”结尾2.查询两个字段,或者多个字段怎么办?​ 使用“,”号隔开​ select 字段名,字段名 form 表名;3.查询所有字段怎么办?方法一:(开发用)​ 把每个字段都写上方法二:​ 用*​ select * form 表名;这种方法的缺点

2021-12-23 10:15:35 616

原创 Mysql常用语句

Mysql**关闭服务器:**net stop mysql;**开启服务器:**net start mysql;**登陆mysql:**mysql -uroot -p123456隐藏密码登录mysql -uroot -p**Enter password: **123456退出mysql: exit查看mysql中有哪些数据库?​ show databases;怎么选择使用某个数据库呢?usemysql> use sysDatabase changed怎么创建数据库呢

2021-12-22 19:56:28 282

原创 java12/6作业1

作业1package com.hspjava.Day01;public class Homework01 { //定义Person类{name,age,job},初始化Person对象数组,有3个person对象,并按照age从大到小进行排序 public static void main(String[] args) { //初始化Person 对象数组,有3个person对象 Person[] persons = new Person[3];

2021-12-06 10:04:20 140

原创 零钱通OOP编程

零钱通OOP编程package com.hspedu.smallchange.oop;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;/*** *该是完成零钱通的各个功能类 * 使用OOP(面向对象编程) * 将各个功能对应一个方法 */public class SmallChangSysOOP { //属性 boolean loep=true;

2021-12-03 21:34:19 503

原创 项目-零钱通

项目-零钱通package com.hspedu.smallchange;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;public class SmallCanapeSays { //化繁为简 //1.先完成显示菜单,并且可以选择菜单,给出对应提示 //2.完成零钱通明细 //3.完成收益入账 //

2021-12-03 14:01:41 228

原创 GUI编程

GUI编程1.AWT2.1AWT介绍1. 包含了很多类和接口!GUI!2. 元素:窗口,按键,文本框2.2组件和容器1.Framepackage com.liuzhisheng.lesscn01;import java.awt.*;//GOI第一个界面public class TestFrame { public static void main(String[] args) { //Frame,JDK 看源码! Frame frame

2021-11-30 13:01:54 215

原创 自定义异常和经验小结

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

2021-11-25 17:02:13 372

原创 捕获和抛出异常(Ctrl+Alt+T)

捕获和抛出异常(Ctrl+Alt+T)异常处理五个关键字try、catch、finally、throw、throwspackage com.exception;public class Test { public static void main(String[] args) { //假如要捕获多个异常:从小到大!// int a=1;// int b=0;// System.out.println(a/b);

2021-11-25 16:03:03 360

原创 Error和Exception(异常)

Error和Exception(异常)掌握以下三种类型的异常:检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。运行时异常:运行异常是可能被程序员避免异常。与检查性异常相反,运行时异常可以在编译时被忽略。错误ERROR:错误不是异常,而是脱离了程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到。异常体系结构ErrorError类对

2021-11-25 15:14:10 298

原创 N种内部类

N种内部类内部类就是一个类的内部在定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类了。成员内部类静态内部类局部内部类匿名内部类package com.oop;import com.oop.Demo10.Outer;//一个项目应该这存在一个main方法public class Application { public static void main(String[] args) {

2021-11-23 12:19:39 159

原创 接口的定义与实现(重要)

接口的定义与实现(重要)普通类:只有具体实现抽象类:具体实现和规范(抽象方法)都有!接口:只有规范!自己无法写方法接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…"思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你好人,则必须干掉坏人;如果你是坏人,则必须欺负好人。接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。OO的精髓,是对对象·的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比如

2021-11-21 20:14:42 85

原创 java抽象类

抽象类abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。抽象类,不能使用new关键字来创建对象,它是靠子类去实现它:约束。抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。抽象类中可以写普通方法抽象方法必须在抽象类中抽象的抽象:约束子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类

2021-11-21 11:20:33 185

原创 static关键字详解

static关键字详解package com.oop.Demo07;public class Person {// {// //代码块(匿名代码块)// }//// static {// //static代码块(静态代码块)// } //2:赋初始值 { System.out.println("匿名代码块"); } //1 :只执行一次 static {

2021-11-21 10:42:18 182

原创 instanceof和类型转换

instanceof和类型转换instanceof:判断一个对象是什么类型public class Person { public void run(){ System.out.println("ss"); }}public class Student extends Person { public void go(){ System.out.println("gg"); }}public class Teacher ext

2021-11-21 00:50:50 301

原创 java多态

java多态即同一方法根据发送对象的不同而采用多种不同的行为方式。一个对象的实际是正确的,但可以指向对象的引用的类型有很多(父类或者有关系的类)3.多态存在的条件(1)有继承关系(2)子类重写父类方法(3)父类引用指向子类对象4.注意:(1) 多态是方法的多态,属性没有多态性。(2)父类和子类,有类型 类型转换异常!(ClassCastException!)(3)存在的条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1=new Son();方法不能被重

2021-11-21 00:01:21 65

原创 方法重写(重点)-->多态

方法重写(重点)–>多态总结重写:需要有继承关系,子类重写父类的方法! 1. 方法名必须相同 2. 参数列表必须相同 3. 修饰符:范围可以扩大:public>Protected>Default>private 4. 抛出异常:范围可以被缩小但不能扩大;ClassNotFoundException -->Exception(大)重写:子类的方法和父类必须要一致;方法体不同;为什么需要重写:父类的功能,子类不

2021-11-20 21:12:18 44

原创 Super详解(重点)

Super详解(重点)super注意点; 1. super调用父类的方法,必须在构造方法的第一个 2. super必须只能出现在子类的方法或者构造方法中! 3. super和this 不能同时调用构造方法!Vs this:​ 代表的对象不同:​ this:本身调用者这个对象​ super:代表父类对象的应用​ 前提​ this:没有继承也可以使用​

2021-11-20 01:46:34 174

原创 java继承

java继承1.继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模2.extends的意思是“扩展”。子类是父类的扩展。3.JAVA中类只有单继承,没有多继承!4.继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。5.继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。6.子类和父类之间,从意义上讲应该具有“is a"的关系。7.object类package com.oop;import com.

2021-11-20 01:06:35 41

原创 封装详解。

封装详解1.该露的露,该藏的藏​ 我们程序设计的追求“高内聚,低耦合”。​ 高内聚:就是类的内部数据操作细节自己完成,不允许外部干涉;​ 低耦合:仅暴露少量的方法给外部使用。2封装(数据的隐藏)​ 通常,应禁止直接访问一个对象的数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。记住这句话就够了:属性私有,get/set封装的意义:1.提高程序的安

2021-11-20 00:15:12 60

原创 简单小结类与对象

简单小结类与对象1.类与对象​ 类是一个模板:抽象对象是一个具体的实例2.方法​ 定义、调用!3.对应的引用​ 引用类型: 基本类型(8)​ 对象是通过引用来操作的: 栈——>堆(地址)4:属性:字段Field 成员变量​ 默认初始化:​ 数字: 0 0.0​ char :u0000​ boolean: false​

2021-11-19 12:15:57 273

原创 创建对象内存分析

创建对象内存分析package com.oop.demo03;public class Pet { public String name; public int age; public void shout(){ System.out.println("叫了一声"); }}/*//一个项目应该这存在一个main方法public class Application { public static void main(String[]

2021-10-26 18:25:18 24

原创 构造器详解(重要)

构造器详解(重要)构造器快捷键 alt+insert构造器:1. 和类名相同2. 没有返回值作用:1.new 本质在调用构造方法2.初始化对象的值注意点:1.定义有参构造之后,如果想使用无参构造,必须显示的定义一个无参构造this. = ;package com.oop.demo02;//java--》classpublic class Person { //一个类即使什么都不写,它也会存在一个方法(构造器) //显示定义一个构造器 //可以初始化信

2021-10-26 17:54:13 46

原创 类与对象的关系

类与对象的关系类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表一个具体的事物。​ 1.动物、植物、手机、电脑……​ 2.Person类、Pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为对象是抽象概念的具体实例​ 1.张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例。​ 2.能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念。创建与初始化对象

2021-10-25 22:22:17 70

原创 回顾方法及加深

回顾方法及加深方法的定义​ 1.修饰符​ 2.返回类型package com.oop.demo01;//Demo1 类public class Demo01 { //main 方法 public static void main(String[] args) { } /* * 修饰符 返回值类型 方法名(……){ * //方法体 * return 返回值; * }

2021-10-25 17:50:25 44

原创 面向对象编程(OOP)

面向对象编程(OOP)面向过程&面向对象面向过程思想(线性)​ 1.步骤清晰简单,第一步做什么,第二步做什么……​ 2.面对过程适合处理一些较为简单的问题面向对象思想(分类)​ 1.物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。​ 2.面向对象适合处理复杂的问题,适合处理需要多人协作的问题!对于描写复杂的事务,为了

2021-10-25 00:22:56 47

原创 稀疏数组(数据结构)

稀疏数组(数据结构)需求:编写五子棋游戏中,有存盘和续上盘的功能0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

2021-10-24 17:35:05 42

原创 冒泡排序(重要)

冒泡排序(重要)冒泡排序无疑是最为出名的排序算法之一,一共有八大排序!冒泡代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人尽皆知。我们看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为O(n2)。思考:如何优化?package com.boss.array;import java.util.Arrays;//冒泡排序//1.比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置//2.每一次比较,都会产生出一个最大或者最小的数字;//3.下

2021-10-24 15:55:15 50

原创 Arrays类解析

Arrays类解析数组的工具类java.util.Arrays由于数组对象本身并没有什么方法可以供我们调用,但API中提供一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。查看JDK帮助文档Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而”不用“使用对象来调用(注意:是”不用“而不是”不能“)具有以下常用功能:给数组赋值:通过fill方法。对数组排序:通过sort方法,按升序。比较数组:通过equa

2021-10-23 10:26:06 45

原创 二维数组使用

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

2021-10-23 09:39:21 39

原创 数组的使用

数组的使用数组使用普通的For循环package com.boss.array;public class ArrayDemo04 { public static void main(String[] args) { int[] arrays={1,2,3,4,5}; //打印全部的数组元素 for (int i = 0; i <arrays.length ; i++) { System.out.printl

2021-10-22 20:08:12 45

原创 数组,下标越界及小结

数组,下标越界及小结数组的四个基本特点其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。其元素必须是相同类型,不允许出现混合类型。数组中的元素可以任何数据类型,包括基本类型和引用类型。数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。​ 数组本身就是对象,java中对象是在堆中的,因此数字无论保存原始类型还是其他对象类型,​ 数组对象本身是在堆中的。数组边界下标的合法区间:【0,length-1],如果越界就会报错:

2021-10-22 00:06:45 319

原创 数组,三种初始化和内存分析

数组,三种初始化和内存分析Java内存分析:堆:存放new的对象和数组​ 可以被所有的线程共享,不会存放别的对象引用栈:存放基本变量类型(会包含这个基本类型的具体数值)​ 引用对象的变量(会存放这个引用在堆里面的具体地址)方法区:可以被所有线程共享​ 包含所有的class和static变量最早错误:java.lang.ArraylndexOutOfBoundsExcetion:1//数组下标越界了,超过范

2021-10-21 23:40:37 61

原创 数组和声明数组

数组和声明数组数组的定义数组是相同类型数据的有序集合。数组描述的是相同类型若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。数组声明创建首先必须声明数组变量,才能在程序中使用数组。下面是数组变量的语法:dataType[] arrayRefvar;//首选的方法或dataType arrayRefvar[];java语言使用new操作符来创建数组,语法如下:dataType[] arrayRefvar=n

2021-10-21 00:13:49 54

原创 递归(特别重要,小计算用)

递归(特别重要,小计算用)递归就是:A方法调用B方法,就是自己调用自己。利用递归可以简单的程序来解决一些复杂的问题。它通常把一个大型的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可以描叙出解题过程过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。递归结构包括两个部分: 1. **递归头:什么时候不调用自身方法。如果没头,将陷入死循环。** 2. **递归体:什么时候

2021-10-16 17:16:00 100

原创 可变参数(不定项参数)

可变参数(不定项参数)JDK1.5开始,java支持传递同类型的可变参数给一个方法。在方法声明,在指定参数类型后加一个省略号(…)。一个方法中只能指定一个可变参数,它必须是方法最后一个参数。任何普通的参数必须在它之前声明。可变参数:package com.boss.medhod;public class Demo04 { public static void main(String[] args) { Demo04 demo04= new Demo04();

2021-10-15 18:29:50 50

原创 命令行传参

命令行传参有时候你希望运行一个程序时候再传递他的消息。这要靠命令行传参数给main()函数实现。public class CommandLine{ public static void main(String args[]){ for(int i=0;i<args.length;i++){ Systm.out.println("args["+i+"]:"+args[i]); } }}命令行D:\java学习\代码\

2021-10-15 17:54:32 58

原创 方法的重载

方法的重载重载接收在一个类中,有相同的函数名称,但是形参不同的函数。方法的重载的规则 1. **方法名称必须相同。** 2. **参数列表必须不同(个数不同,或类型不同,参数排列顺序不同等)。** 3. 方法的返回类型可以相同也可以不相同。 4. 仅仅返回类型不同不足以成为方法的重载。实现理论​ 方法名称相同时,编译器会根据调用方法的参数个数,参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错方法的重载:pa

2021-10-15 17:31:26 52

空空如也

空空如也

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

TA关注的人

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