Java学习日记
文章平均质量分 77
慢慢学咯
晚来舟Mango
SE专业,SEU硕士在读
展开
-
Java学习-Day23(IO流)
IO流文件什么是文件文件是保存数据的地方文件流文件在程序中是以流的形式来操作的流:数据在数据源(文件)和程序(内存)之间经历的路径输入流:数据从数据源(文件)到程序(内存)的路径输出流:数据从程序(内存)到数据源(文件)的路径常用的文件操作创建文件对象相关构造器和方法相关方法new File(String pathname)//根据路径构建一个File对象new File(File parent,String child)//根据父目录文件+子路径构建new原创 2022-04-29 00:08:47 · 145 阅读 · 0 评论 -
Java学习-Day22(线程)
线程基础概念程序程序是为完成特定任务、用某种语言编写的一组指令的集合。简单的说:就是我们写的代码进程1.进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存空间。当我们使用迅雷,又启动了一个进程,操作系统将为迅雷分配新的内存空间。2.进程是程序的一次执行过程,或是正在运行的一个程序。是动态过程 : 有它自身的产生、存在和消亡的过程线程1.线程由进程创建的,是进程的一个实体2.一个进程可以拥有多个线程其他1、单线程:同一时刻只允许执行一个原创 2022-04-27 23:58:50 · 819 阅读 · 0 评论 -
Java学习-Day21(泛型)
泛型使用传统方法出现的问题:不能对加入到集合ArrayList中的数据类型进行约束(不安全)遍历的时候,需要进行类型转换,如果集合中的数据量较大,对效率有影响//使用传统的方法来解决===> 使用泛型//老韩解读//1. 当我们 ArrayList<Dog> 表示存放到 ArrayList 集合中的元素是 Dog 类型 (细节后面说...)//2. 如果编译器发现添加的类型, 不满足要求, 就会报错//3. 在遍历的时候, 可以直接取出 Dog 类型而不是 Object原创 2022-04-26 16:37:09 · 543 阅读 · 0 评论 -
Java学习-Day20(Set、Map、HashTable、Properties)
Set接口实现类——LinkedHashSet(HashSet的子类)基本介绍LinkedHashSet是 HashSet的子类LinkedHashSet底层是一个 LinkedHashMap(HashMap的子类),底层维护了一个数组+双向链表LinkedHashSet根据元素的 hashCode值来决定元素的存储位置,同时使用链表维护元素的次序(图),这使得元素看起来是以插入顺序保存的。(添加顺序和取出顺序一致)LinkedHashSet不允许添重复元素/*源码:添加第一次原创 2022-04-24 12:12:59 · 1097 阅读 · 0 评论 -
Java学习-Day19(集合、List、Vector、Set)
集合数组的不足:创建时长度必须指定,而且指定了不能更改保存的必须为同一类型的元素使用数组增加删除比较麻烦(数组扩容要新创建一个数组)集合:可以动态保存任意多个对象,使用方便提供了一系列方便的操作对象的方法:add、remove、set、get使用集合添加删除新元素的代码简洁集合的框架体系Java的集合类很多,主要分为两大类:单列集合双列集合Collection接口有两个重要的子接口 List Set,他们的实现子类都是单列集合Map接口实现的子类是双列集合,存放的K-原创 2022-04-23 23:49:57 · 908 阅读 · 0 评论 -
Java学习-Day18(包装类、String类、Math类、Arrays类)
常用类包装类(Wrapper)分类针对霸总基本数据类型相应的引用类型——包装类有了类的特点,就可以调用类中的方法基本数据类型包装类booleanBooleancharCharacterbyteByteintIntegerlongLongfloatFloatdoubleDoubleshortShortByte…Short,他们的父类都是Number包装类和基本数据类型的转换jdk5之前手动装箱和拆原创 2022-04-21 21:52:20 · 205 阅读 · 0 评论 -
Java学习-Day17(异常)
异常如果程序员认为一段代码可能出现异常/问题,可以使用try-catch异常处理机制来解决步骤:选中代码块->ctrl + alt + t ->选中try -catch如果进行了异常处理,即使出现了异常,程序可以继续执行基本概念Java语言中,将程序执行中发生的不正常情况称为异常(开发过程中的语法错误和逻辑错误不是异常)执行过程中所发生的异常事件可分为两大类:Error(错误)Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如栈溢出(S原创 2022-04-20 22:09:30 · 384 阅读 · 0 评论 -
Java学习-Day16(内部类、枚举、注解)
内部类基本介绍一个类的内部又完整的嵌套了另一个类结构,被嵌套的类称为内部类,嵌套其他类的类称为外部类,是我们类的第五大成员。内部类的最大特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。(难且重要,底层源码有大量内部类)基本语法class Outer{ //外部类 class Inner{ //内部类 }}class Other{ //外部其他类 }内部类的分类定义在外部类的局部位置上(比如方法内):局部内部类(原创 2022-04-19 23:46:00 · 309 阅读 · 0 评论 -
Java学习-Day15(final、接口)
final关键字final可以修饰类、属性、方法和局部变量在某些情况下,程序员可能有以下需求,就会使用到final:当不希望类被继承时,可以用final修饰.当不希望父类的某个方法被子类覆盖/重写(override)时,可以用final关键字修饰。当不希望类的的某个属性的值被修改,可以用final修饰当不希望某个局部变量被修改,可以使用final修饰注意事项和细节:final修饰的属性又叫常量,一般用XX_XX_XX来命名final修饰的属性在定义时,必须赋初值,并且以后不能再原创 2022-04-18 18:40:51 · 76 阅读 · 0 评论 -
Java学习-Day14(静态方法、main方法、代码块、单例设计模式)
类方法(静态方法)形式如下访问修饰符 static 数据返回类型 方法名(){} 推荐static 访问修饰符 数据返回类型 方法名(){}类方法调用类名.类方法名 或者 对象名.类方法名当方法使用了static修饰后,该方法就是静态方法静态方法就可以访问静态属性/变量使用场景:当方法中不涉及到任何和对象相关的常用,则可以将方法设计成静态方法,提高开发效率注意事项和细节类方法和普通方法都是随着类的加载而加载,将结构信息存储在方法区;类方法中无this的参数,普通原创 2022-04-18 12:16:25 · 245 阅读 · 0 评论 -
Java学习-Day13(静态变量)
类变量(静态变量)static变量是同一个类所有对象共享static类变量在类加载的时候就生成了,不创建对象也可以访问什么是类变量类变量也叫静态变量/静态属性,是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。如何定义类变量访问修饰符 static 数据类型 变量名;(推荐)static 访问修饰符 数据类型 变量名;如何访问类变量类名.变量名(推荐)对象名.类变量名(静态变量的访问修饰符权原创 2022-04-15 23:09:13 · 768 阅读 · 0 评论 -
Java学习-Day12(动态绑定机制、Object类方法)
多态习题小结调用属性看编译类型,调用方法看运行类型java的动态绑定机制(重要)当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定当调用对象属性时,没有动态绑定机制,哪里声明哪里使用(在哪个类里调用就用哪个类里的属性)简而言之,只要是调用方法,先去看运行类型是否有,如果有,直接使用;若没有,再找编译类型多态的应用多态数组数组的定义类型为父类类型,里面保存的实际元素类型为子类类型多态参数方法定义的形参类型为父类类型, 实参类型允许为子类类型Object类原创 2022-04-10 20:53:55 · 249 阅读 · 0 评论 -
Java学习-Day11(多态、向上转型、向下转型)
多态背景:代码的复用性不高,而且不利于代码维护介绍:方法或对象具有多种形态,是面向对象的第三大特征,多态是建立在封装和继承基础上的多态的具体体现:方法的多态:重载和重写体现多态对象的多态:一个对象的编译类型和运行类型可以不一致Animal animal = new Dog();//animal编译类型是Animal,运行类型是Dog 编译类型在定义对象时,就确定了,不能改变运行类型是可以变化的animal = new Cat();//animal的运行类型变成了原创 2022-04-09 23:41:51 · 140 阅读 · 0 评论 -
Java学习-Day10(包、访问修饰符、继承、super、重写)
包包的三大作用:区分相同名字的类当类很多时,可以很好的管理类控制访问范围包基本语法:package com.wanlaizhoupackage 关键字,表示打包com.wanlaizhou 表示包名包的本质分析(原理)包的本质就是创建不同的文件夹/目录来保存类文件包的命名:命名规则:只能包含数字、字母、下划线、小圆点,但不能以数字开头,不能是关键字或保留字命名规范:小写字母+小圆点一般是com.公司名.项目名.业务模块名如:com.sina.crm.user原创 2022-04-08 22:24:21 · 237 阅读 · 0 评论 -
Java学习-Day09(IDEA快捷键、模板)
IDEA快捷键删除当前行:CTRL + Y复制当前行:CTRL + D补全代码:ALT + /添加注释/取消注释:CTRL + /快速格式化代码:CTRL + ALT+ L快速运行程序:自己定义,搜run生成构造器: ALT + INSERT查看类的层级关系:CTRL + H光标放方法上,快速定位方法:CTRL + B自动分配变量名:后面加.varnew Scanner(System.in).var//相当于 Scanner scanner = new Scanner(System原创 2022-04-04 00:11:10 · 234 阅读 · 0 评论 -
Java学习-Day08(作用域、构造方法、this关键字)
作用域在java编程中,主要的变量就是属性(成员变量)和局部变量局部变量一般是指才成员方法中定义的变量java中的作用域的分类:全局变量:也就是属性,作用域为整个类体局部变量:也就是除了属性之外的其他变量,作用域为定义它的代码块中全局变量(属性)可以不赋值,直接使用,因为有默认值。局部变量必须赋值后才能使用,因为没有默认值。注意事项和细节:属性和局部变量可以重名,访问时遵循就近原则在同一个作用域中,两个局部变量不能重名属性生命周期较长,伴随着对象的创建而创建,伴随着对象的销毁原创 2022-04-02 23:20:36 · 425 阅读 · 0 评论 -
Java学习-Day07(类与对象构建流程、this关键字、重载)
类与对象对象(属性、行为)类是抽象的、概念的,代表一类事物,即它是数据类型对象是具体的,实际的,代表一个具体事务,是实例类是对象的模板,对象是类的一个个体,对应一个实例对象在内存中的存在形式:jdk1.8 常量池位置有所变动,不再深究。属性=成员变量=field属性是类的一个组成部分,一般是基本数据类型,也可以是引用类型(对象、数组)属性注意事项和细节:访问修饰符 属性类型 属性名;public/private/protected/默认属性的类型可以为任意类型,可以原创 2022-04-01 23:43:50 · 471 阅读 · 2 评论 -
Java学习-Day06(数组)
数组数组可以存放多个同一类型的数据,数据也是一种数据类型,是引用类型。即:数组就是一组数据。array.length => 数组长度动态初始化 int a[] = new int [5];动态初始化 int a[]; //或者 int[] a; a = new int [10];静态初始化 int a[] = { 1,2,3,4,5,6,7,8,9 };相当于先new再赋值注意事项和细节:数组是多个相同类型数据的组合,实原创 2022-03-31 18:18:08 · 440 阅读 · 0 评论 -
Java学习-Day05(控制结构:顺序分支循环)
控制结构顺序控制程序从上到下逐行执行,中间没有任何判断和跳转Java中定义变量时采用合法的前向引用(先定义再使用)分支控制if-else单分支if(条件表达式){}双分支if(条件表达式){}else{}多分支if(条件表达式1){}else if(条件表达式2){}else if(条件表达式3){}else{}嵌套分支(不要超过三层)switch分支switch(表达式){case 常量1:语句块1;break;case 常量2:语句块2;br原创 2022-03-30 22:48:10 · 714 阅读 · 0 评论 -
Java学习-Day04(进制转换与运算符)
进制二进制0b或者0B十进制八进制以0开头表示十六进制0x或0X,A-F不区分大小写进制的转换二转十从最低位开始,将每个位上的数提取出来,乘以2的(位数-1)次方,求和八转十从最低位开始,将每个位上的数提取出来,乘以8的(位数-1)次方,求和十六转十从最低位开始,将每个位上的数提取出来,乘以16的(位数-1)次方,求和十转二将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制十转八将该数不断除以8,直到商为原创 2022-03-29 23:43:12 · 113 阅读 · 0 评论 -
Java学习-Day03(运算符)
在java中取模的本质 a % b = a - a / b * b&&短路与: (开发常用)前面的条件为false,后面的条件不执行不判断,效率高&逻辑与:前面的条件为false,后面的条件仍然会判断执行,效率低||短路或:(开发常用)前面的条件为true,后面的条件不执行不判断,效率高|逻辑或:前面的条件为true,后面的条件仍然会判断执行,效率低!取反:T->F,F->T^逻辑异或: 相同为真,不同为假赋值运算符:= , += , -.原创 2022-03-29 11:14:41 · 4340 阅读 · 0 评论 -
Java学习-Day02(类型转换)
自动类型转换int n1 = 10;float d1 = n1 + 1.1 ; //❌ 1.1是double类型,转为float精度会丢失精度大→精度小:报错精度小→精度大:自动转换(byte,short)和char之间不会自动转换byte:-128~+127byte b1=10;//当把数赋值给byte时,先判断该数是否在byte范围内,如果是就可以赋值byte b1 = 10; int n2 = 1; byte b2 = n2? //如果是变量赋值,直接判断char c原创 2022-03-29 11:10:23 · 316 阅读 · 0 评论 -
Java学习-Day01(JDK与数据类型)
1、 Java 基础1、Java语言特性1、面向对象;2、具有健壮性;3、跨平台性,依靠JVM(JDK中带有)实现,JVM相当于Java的虚拟机,可以实现一次编译,到处运行;4、解释型语言(C/C++是编译型语言,编译型语言运行速度更快)。2、Java文件执行过程3、JDK1、JDK是Java开发工具包;2、JDK=JRE+java开发工具(java,javac,javadoc,javap等);3、JRE是Java运行环境;4、JRE=JVM+Java的核心类库;运行开发完成的程序原创 2022-03-08 22:54:23 · 232 阅读 · 0 评论