java学习笔记
java基础学习
天赋不够努力来凑
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java单例设计模式
一、什么是单例模式 采取一定方法使类只有一个对象实例,设计一个方法才能获取该对象实例。 一、饿汉模式 特点: 构造函数私有化,使外部不能随便实例化对象 在类内部创建静态对象 创建一个静态方法使外部可以获得实例对象 示例: package com.hb.single_; public class SingleTon01 { public static void main(String[] args) { GirlFriend girlfriend=GirlFriend.getIns原创 2021-10-03 15:33:25 · 230 阅读 · 0 评论 -
java关键字final和抽象类
一、final关键字 final可以修饰类,表示该类不可被继承 final可以修饰属性,表示一个常量,并且必须赋值,可以直接赋值,或者在构造器和代码块中赋值 如果修饰的是static属性,那么不能在构造器中赋值,因为静态final属性在类加载就要被赋值。 final可以修饰方法,表示不可被重写,但是可以继承的,如果一个类是final类,他的方法 ...原创 2021-10-03 15:02:22 · 885 阅读 · 2 评论 -
java代码块
一、代码块的使用 当一个类有多个构造函数,并且构造函数都有相同的语句,可以将这些语句放入一个代码块中,提高代码重用。代码块就相当于另一种构造器的形式。 1、语法:【static】{ 语句 }; 2、分类:代码块分为静态代码块和普通代码块 二、静态代码块和普通代码块区别 static代码块随着类的加载而执行,而且只会执行一次。 普通代码块则随着对象的创建而执行,每创建一次对象,就执行一次。 什么时候类会被加载:(可能不单单以下情况,其他情况还未去了解) 创建对象实例时 创建子类对象时,父类也会被加载 使原创 2021-10-02 16:54:38 · 228 阅读 · 2 评论 -
java类变量和类方法
一、类变量 (1)、定义 类中用static关键字修饰的静态变量,为该类所有对象共享。 (1)、类变量内存布局 根据jdk版本不同,内存布局也是不一样的: 以前静态变量放在方法区的静态域中,静态变量count由child1和child2共享 现在静态变量放在堆中,类被加载后,会创建一个class对象在堆里,静态对象就存放在class对象内,由child1和child2对象共享 (3)、细节说明: 类变量被同一个类所有对象共享 类变量在类加载的时候就被初始化好了,所以使用类变量可以用类名.变量名 二、原创 2021-10-02 14:59:33 · 286 阅读 · 0 评论 -
java动态绑定机制
原理:(1)、当调用方法时,方法会跟对象的运行类型绑定。 (2)、当调用属性时,没有对象绑定机制,哪里声明哪里使用。 package com.hb.poly_; public class DynamicBinding { public static void main(String[] args) { A a=new B(); System.out.println(a.i); System.out.println(a.sum()); S原创 2021-10-01 14:50:07 · 210 阅读 · 0 评论 -
java多态:向上转型和向下转型
一、多态的向上转型 package com.hb.poly_; public class PolyDetail { public static void main(String[] args) { Animal animal=new Cat(); animal.eat(); } } class Animal{ public void eat(){ System.out.println("吃"); } } class Cat e原创 2021-10-01 09:41:23 · 393 阅读 · 0 评论 -
java继承的本质分析
分析以下代码:Son类继承Father类,Father类继承Grandpa类,当创建son对象时,内存是怎么的 package myworkspace01; public class FirstSample{ public static void main(String[] args) { Son son=new Son(); System.out.println(son.name); //System.out.println(son.age); System.out.println(so原创 2021-09-21 15:45:00 · 291 阅读 · 0 评论 -
java方法传参机制
一、基本数据类型传参机制原创 2021-09-14 15:37:10 · 483 阅读 · 0 评论 -
java方法调用的机制
我们首先来看下面一段代码,创建一个Person类对象,调用它的getSum方法 java方法调用过程 java每个方法调用时会创建一个独立的栈空间 1、main方法为程序入口,创建一个main方法栈 2、在mian方法栈中执行程序,创建Person对象,执行System语句,语句中有对象a1的getSum方法,所以执行这个方法 3、创建一个getSum方法独立栈,将实参传入后执行getSum里面语句,返回res,退出这个getSum方法栈,转而执行main方法栈,输出getSum的返回值,getSum方法原创 2021-09-13 21:53:26 · 267 阅读 · 0 评论 -
java方法的一些使用细节
一、方法重载 java允许同一个类中,有多个同名方法,但是形参列表必须不一样 构成方法重载的条件 1、方法名相同 2、形参列表不同:形参类型,顺序,数量这三个必须至少有一个不同。 3、返回类型无要求 比如void A()和int A()并没有构成方法重载 二、可变参数 java允许一个类中多个同名同功能但参数个数不同的方法封装成一个方法 例子: 使用细节: 1、可变参数实参可以为数组,而且可变参数本质就是数组(由上面例子可知) 2、可变参数可以和普通参数一起放在形参列表,但是可变参数必须放在最后 3、一个原创 2021-09-12 15:34:06 · 199 阅读 · 0 评论 -
java对象的创建机制
我们先用以下代码创建一个对象Person原创 2021-09-12 10:24:34 · 222 阅读 · 0 评论 -
java数组的赋值机制
数组是引用类型,传值机制和基本数据类型的传值机制不一样,先看以下两段代码 运行后得出这样的结论:(1)、基本数据类型赋值只是值的赋值,a2值改变,不会影响a1 (2)、数组进行赋值,arr2数组元素改变,arr1数组元素也会改变 基本数据类型赋值机制:赋值的只是值,互不影响 数组赋值机制:数组是引用类型,存放的是地址,arr1赋值给arr2,所以arr2存放的就是arr1存放的地址,所以他们都指向同一个地址,arr2指向的地址的内容改变,arr1同样也会变化,他们这种赋值机制叫引用赋值或地址赋值 ..原创 2021-09-11 16:50:24 · 609 阅读 · 0 评论 -
java基本数据类型的细节和转换
一、程序中加号的使用 1、加号左右两边都是数值型时做数值运算 2、加号左右两边有一边是字符串时做拼接运算 二、整型和浮点型的细节 三、基本数据类型的转换 1、自动类型转换 当精度小的类型转换为精度大的数据类型时可以自动转换 注意事项 (1)、多种数据类型进行运算时,系统先将各个数据类型转换成其中精度最大的数据类型再进行运算。 (2)、(byte、short)不能与char进行类型转换。 (3)、byte,short,char可以一起参加运算,在运算时首先自动转换成int类型。 (4)、自动提升原则:表达式的原创 2021-09-11 14:52:08 · 217 阅读 · 0 评论 -
java的一些运算符细节
一、算术运算符 1、进行除法运算时,整数和小数做除法是不一样的,整数做除法,会舍弃小数部分,即10/3=3 2、进行模运算时,a%b等价于a-a/b*b 二、原创 2021-09-11 15:19:07 · 264 阅读 · 0 评论 -
数组的声明
(1)、一维数组的声明 int [ ]a=new int[100];声明并初始化了一个储存100个整数的一维数组 int [ ]a=new int[n];声明并初始化了一个储存n个整数的一维数组 int [ ]a={1,2,3,4,5}; (2)、二维数组的声明 int [ ][ ]a=new int[3][4]; int [ ][ ]a=new int[m][n]; int [ ][ ]a={{1,2,3},{4,5,6},{7,8,9}}; ...原创 2021-07-09 15:35:24 · 187 阅读 · 0 评论 -
for each循环遍历数组
利用for each循环可以不用考虑下标去遍历整个数组。 使用方法: (1)、一维数组 int [ ]a=new int[10]; for(int element:a) System.out.println(element); (2)、二维数组 int [ ][ ]a=new int[3][4]; for(int row:a) for(int value:row)原创 2021-07-09 15:05:44 · 507 阅读 · 0 评论
分享