![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 76
一天创建一个对象
不会Java,但也不是一点都不会
展开
-
Java学习day23--网络编程
网页编程 : 关注上层应用网络编程 : 关注底层数据的传输IP地址 : 定位网络中的节点...(电脑,手机....)端口号 : 区分软件URL : 同一资源定位符传输层协议 : (标准,合同,规范) UDP : 邮寄包裹|写信 不安全,协议简单,开销小,效率高 大小限制一般不超过60k TCP : 打电话 基于连接 安全,效率低 没有大小限制IP : 定位网络中的节点...(电脑,手机....) IPV4 4个字节32位 IPV6128位 特殊的IP :原创 2023-03-13 20:38:03 · 44 阅读 · 0 评论 -
Java学习day19--集合
扩容机制 : 通过Arrays.copyOf方法实现创建新数组拷贝数据,每次扩容原容量的1.5倍 int newCapacity = oldCapacity + (oldCapacity >> 1);所有实现了Collection接口的容器类都有一个 iterator 方法用以返回一个实现了Iterator接口的对象。特点 : 根据索引查询效率高,做增删效率低,因为大量的涉及到新数组创建,数据的拷贝。引用场景 : 适合应用在存储多个单个值的数据的集合,去重的,自动升序排序的场景。底层用数组实现的List。原创 2023-03-07 22:31:32 · 83 阅读 · 0 评论 -
Java学习day18--序列化、认识集合、泛型
ObjectOutputStream(OutputStream):创建一个可以写入指定的OutputStream的ObjectOutputStream。1)编译期间无法对集合中存储数据的类型进行检查,可以实现存储任意引用数据类型的数据。,可以使用流的文件来实现对象的永久存储,如果流是网络套接字流,则可以在另一个主机或者进程中重构对象。4.有些集合有序,有些集合无序,有些可以根据索引进行操作,有些不可以。3.可以任意引用数据类型的数据,存储的多个数据类型可以不同。2.集合长度的跟随数据的增删进行改动。原创 2023-03-07 14:21:10 · 185 阅读 · 0 评论 -
Java学习day17--IO
输出流写出数据时,如果源文件存在并且有内容,会默认覆盖,如果想要实现追加,使用重载构造器,boolean append->true追加,false覆盖(默认)abstract void write(char[] cbuf, int off, int len) 写一个字符数组的一部分。void write(String str, int off, int len) 写一个字符串的一部分。1、使用read()一个字节一个字节读取,重复读取多个字节数据,可以使用循环。FileReader : 文件字符输入流。原创 2023-03-05 14:35:41 · 52 阅读 · 0 评论 -
学习Java第7天--Date类、File类、流
File getParentFile() 返回此抽象路径名父项的抽象路径名,如果此路径名未指定父目录,则返回 null。getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。String getParent() 返回此抽象路径名父项的路径名字符串,如果此路径名未指定父目录,则返回 null。String[] list() 返回一个字符串数组,用于命名此抽象路径名表示的目录中的文件和目录。File[] listFiles() 返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件。原创 2023-02-05 15:29:09 · 151 阅读 · 2 评论 -
Java学习day16--StringBuilder与StringBuffer、枚举
一个可变的字符序列,此类提供与StringBuffer兼容的API,但不保证同步,在可能情况下,建议使用此类优先于StringBuilder类,因为它支持所有的相同的操作,但速度更快,因为它不支持同步。通常应优先使用StringBuilder类,因为它支持所有相同的操作,但速度更快,因为它不执行同步。枚举类型的实例是由枚举类内部提供,不允许外部创建,只能获取使用-->所以枚举类默认构造器是private修饰。枚举是一种特殊的类型,定义特殊,特点特殊,使用特殊。:线程安全,可变字符序列,可供多个线程使用。原创 2023-03-02 20:35:07 · 81 阅读 · 0 评论 -
Java学习day15--异常、Java中的常用类
String(char[] value, int offset, int count) 分配一个新的 String ,其中包含字符数组参数的子数组中的字符。try中代码一旦遇到异常,try后面的代码不再执行,从上到下执行catch判断哪一个catch所捕获的异常类型满足,执行对应的catch后的语句体。需求 : 想要输出对象的字符串表现形式时|引用时,输出的是对象所有的属性值---->子类中进行重写toString。异常一旦出现: 1)程序无法执行 2)终止程序的继续执行,抛出异常的信息展示给程序猿。原创 2023-02-28 20:18:40 · 47 阅读 · 0 评论 -
Java学习day14--内部类、接口与抽象类区别
内部类定义在外部类的成员位置,可以被成员修饰符所修饰,可以继承其他父类,实现需要的接口,具有成员的特点,具有类的特点。在所在外部类中需要通过成员内部类的对象访问其成员(包括私有成员),可以通过类名访问其静态的常量。在所在外部类中可以通过类名访问静态内部类中的静态内容,需要通过对象访问静态内部类中的非静态成员。只能在所在的方法中通过对象访问局部内部类的成员,在外部类中的其他方法中|其他类中都无法使用局部内部类。在其他类中可以通过new 外部类类名.内部类类名()的内部类对象访问静态内部类中的成员内容。原创 2023-02-27 23:04:18 · 91 阅读 · 0 评论 -
Java学习day13--二维数组遍历、list集合概念和HashSet集合概念
数据类型[][] 数组名 = new 数据类型[][]{{值列表},{值列表},....};数据类型[][] 数组名 = new 数据类型[外层二维数组长度][内层一维数组长度];数据类型[][] 数组名 = {{值列表},{值列表},....};数据类型[][] 数组名 = new 数据类型[外层二维数组长度][];数组名[二维数组的索引] = new 一维数组[]{数据值....};数组名[二维数组的索引] = new 一维数组[长度];数组名[外层二维数组索引][内层一维数组索引]原创 2023-02-26 20:16:46 · 265 阅读 · 0 评论 -
Java学习day12--转型、抽象类、接口
被abstract修饰的类-->抽象类被abstract修饰的方法-->抽象方法特点:没有方法体必须定义在抽象类中注意 :1.抽象类不能实例化2.抽象类中可以定义 : 属性,构造器,功能,抽象方法...3.抽象方法必须定义在抽象类中(接口)4.抽象方法使用之前必须被重写5.抽象类需要根据具体子类对象进行使用 :具体子类 : 重写所有的抽象方法 + 按需新增抽象子类 : 按需重写 + 按需新增6.abstract不能与private,static,final与native一起使用。原创 2023-02-24 20:53:29 · 57 阅读 · 0 评论 -
Java学习day11--面向对象之继承、封装、多态
在异包下的子类中,通过继承关系访问,即不能通过父类对象访问-->不能访问父类中被protected修饰的成员,因为不是通过继承关系访问(父类的私生子,要通过创建异包子类对象访问protected修饰的成员)不能在子类构造器的首行同时通过this(实参)与super(实参)调用其他构造器,可以先执行this(实参),调用本类中其他构造器后,在其他构造器的首行通过super(实参)调用父类构造器。3.被static修饰的方法不能被重写。通过子类对象,调用子类中重写的方法,对父类中的被重写的方法进行屏蔽。原创 2023-02-23 20:07:14 · 88 阅读 · 0 评论 -
Java学习day10--静态代码块、局部代码块及Java中包和导包
-> 模糊导入,模糊匹配当前包下的所有类型,只会影响编译效率,不会影响运行效率。构造块会被编译到要执行的构造器内部,构造器代码的上面,先于构造器代码的执行。为什么在创建类的时候需要给当前类指定包?区分不同的类,管理不同的类。import static 包名.类名.静态变量|方法;1、导包就是为了使用类,在使用类的时候需要通过包名.类名去确定。一般命名规则: 公司域名倒着写 com.xxx。静态块在第一次加载完成之后执行,并且只执行一次。做成员的初始,先于构造器的统一初始。import 包名.类名;原创 2023-02-22 20:00:46 · 71 阅读 · 0 评论 -
Java学习day9--Java中的构造器、static修饰符、this关键字用法
被static修饰的方法(或者变量),隶属于类,类只要加载,就会加载内存的静态区中,并且只有一份可以被多个对象共用,优先于对象(实例)存在内存中。成员变量在对象的堆内存中,有对象,才有堆内存,就有成员变量,有多少对象,就有多少块对象的堆内存,就有多少分成员变量。成员成员在执行到new对象的时候,才会开辟对象的堆内存,在会存在成员变量。指代当前对象(构造器中指代当前new的对象|在成员方法中指代调用成员方法的对象)不被static修饰的成员变量 -->成员变量|实例变量。原创 2023-02-20 23:35:47 · 70 阅读 · 0 评论 -
Java学习day8--面向对象基本概念
Java面向对象是一种编程范式,它强调把程序组织成对象,每个对象具有特定的属性和方法,使用这种编程模型可以更快、更容易地编写出可维护的代码。用面向对象思维解决:张三具有把大象装进冰箱里的功能,让张三帮我把大象装进冰箱里,大象被装进冰箱了,问题解决。面向对象->”我该找谁实现?“,只关心对象,实现结果,不关心实现的过程。注意 : 成员是属于对象的,需要跟随对象使用成员(成员变量|成员方法)行驶 跑(成员方法:定义在类中方法外,不被static修饰的方法):抽取了一系列对象的共性-->图纸|模板|实体类。原创 2023-02-19 15:39:44 · 76 阅读 · 0 评论 -
Java学习day6--Java中方法的重载、递归调用、认识数组
引用数据类型 [](基本数据类型的数据为对应类型数据值 ,引用数据类型的数据为对象数据 )参数列表不同 | 方法签名不同(参数个数不同、参数类型不同、不同类型的参数顺序不同)数据类型[] 数组名 = new 数据类型[]{数据1,数据2,数据3....};递归前进段:从第一次调用方法,到临界条件之间,不停的自己调用自己的过程。数据类型[] 数组名 = {数据1,数据2,数据3....};有序的,索引,根据根据索引区分数组中的每一个空间。间接递归:A方法中调用B方法,B方法中调用方法。原创 2023-02-17 20:50:29 · 80 阅读 · 1 评论 -
学习Java第5天--Java中的循环、嵌套循环、方法
分析功能执行完毕之后是否需要得到一个结果,如果需要就定义为有返回值类型的方法,如果不需要就定义为没有返回值类型的方法。: 分析方法执行过程中|定义时,是否存在位置的数据|有可能改变的数据|不确定的数据,如果存在,定义在方法的参数列表中。在重复执行多次代码的时候,如果能够确定循环次数|确定变量变化的区间与规律---->for循环。不确定循环次数 | 变量的变化情况,根据条件判决循环是否结束 | 执行。作用域:从变量的声明开始,到包裹他的离他最近的}结束(实际参数(实参) : 调用方法时候()中的参数。原创 2023-02-16 21:18:31 · 212 阅读 · 0 评论 -
学习Java第4天--Java中的变量、数据类型及类型转换
实际开发中也会存在long类型存储不下的情况,解决方案就是修改单位,如果这种大数运批次很高,欢迎修改技术栈,不要用java。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。变量:就是程序运行期间,其值可以发生改变,需要先声明变量的类型,声明一个变量后,这个变量可以理解为用来存储数据的容器。原因在于,使用补码,可以将符号位和数值域统一处理;当将一个超过了int范围的字面值赋值给long类型的变量的时候,需要将这个字面值后加L(推荐)或者是l。原创 2023-02-11 13:37:22 · 116 阅读 · 1 评论 -
学习Java第2天--Java中的注释、标识符、关键词
Java基础内容,新手必学原创 2023-02-10 20:58:18 · 40 阅读 · 0 评论 -
学习Java的第1天--Java历史、概述、JDK安装
编写的java文件/程序,通过编译器(javac.exe)将其转换为对应的字节码文件(.class),通过解释器(java.exe)将其交由JVM解释执行。跨平台的基石是JVM,真正和平台无关的文件是(字节码文件)。java虚拟机,他是一个虚拟的计算机。hotspot是基于这个标准实现的产品,目前主流的java虚拟机都是hotspot。目前Oracle公司发行Java语言的版本是1年2个版本,3月份发布一次和6月份发布一次。SUN这家公司是Java语言的老东家,是由 詹姆斯 · 高斯林 开发。原创 2023-02-10 20:21:14 · 72 阅读 · 0 评论