Java基础部分
Java学习笔记
老坛吖
这个作者很懒,什么都没留下…
展开
-
(十九)GC
内存管理管理的方式通常有两种显式的内存管理(C/C++)内存管理(内存的申请和释放)是程序开发者的职责常见问题:内存泄漏:内存空间已经申请,使用完毕后未主动释放野指针:使用了一个指针,但是该指针指向的内存空间 已经被free隐式的内存管理(Java/C#)内存的管理是由垃圾回收器自动管理的优点:增加了程序的可靠性(和野指针相对),减小了memory leak缺点:无法控制GC的时间,耗费系统性能(stop the world)二、GCGC——Garbage Collecti原创 2020-06-25 19:03:36 · 118 阅读 · 0 评论 -
(十八)注解
回忆一下,在Java文件中,除了我们的代码,还能“合法”的存在别的东西吗?——注释注释是Java语言提供给我们的,在代码中增加“额外”信息的一种方式,这些额外信息,有时不太合适,或不能用Java代码来表示。注释中的描述,是一种人为的约定javac在编译时,对其“视而不见”只有固定语法,没有标准形式因此,注释中表达的描述代码或者代码之外的信息,只有人能看懂。一、注解的引入注解:为我们在代码中添加信息,提供了一种形式化(标准化,甚至连额外信息的表示都是通过java相应的数据类型的值来表示)的方法,原创 2020-06-25 18:38:12 · 183 阅读 · 0 评论 -
(十七)反射
一、类加载过程1.步骤加载通过一个类的全限定名来获取定义此类的二进制字节流 ;在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口 ;连接通过一系列的检查,确保被加载类的正确性 ;负责为类的静态成员分配内存并设置默认初始化值;将类中的符号引用替换为直接引用 ;初始化给静态成员变量赋初值,执行静态代码块内容2.类加载时机(何时加载)创建类的实例访问类的静态变量调用类的静态方法使用反射方式来强制创建某个类或接口对应的java.l原创 2020-06-23 08:39:51 · 143 阅读 · 0 评论 -
(十六)网络编程
一、网络编程概述基于OSI模型的网络通信过程举例网络编程三要素UDP编程TCP编程网络参考模型OSI七层模型物理层:关注在一条通信信道上传输原始比特(01序列)其功能是确保当一方发送了比特1,另一方收到的也是比特1,而不是0。这里面涉及到的典型问题包括:a. 用什么样的电信号表示0和1 数据0和1——>电信号 高电平0,低电平1b. 一个bit持续多少纳秒c. 传输是否可以在两个方向同时进行d. 初始连接如何建立,传输结束之后如何如何撤销连接 对于建立连接而言,要规定一个原创 2020-06-23 08:39:25 · 154 阅读 · 0 评论 -
(十五)多线程
一、为什么引入多线程假如我要实现如下功能:程序不停地在屏幕上输出一句问候的语句(比如“你好”)。同时,当我通过键盘输入固定输入的时候,程序停止向屏幕输出问候的语句(比如说输入stop)。好像很简单,那我们就来实现一下吧。public class SingleThread { static boolean flag = true; public static void main(String[] args) throws InterruptedException { sayHell原创 2020-06-23 08:36:59 · 287 阅读 · 0 评论 -
(十四)I/O流-字符流
一、字符流产生的原因如果通过已经学习的字节流,实现如下功能:向文本中写入数字或英文字符,然后将其读入内存,并在控制台上显示。向文本中写入中文字符,将其读入内存,并在控制台上显示。是否两次都能正确的显示呢?第一次能够正确显示,第二次会出现乱码。通过刚刚的例子,得出结论: 在某些情况下,用字节流来操作中文不太方便。核心原因在于:数据单位不一致。那如何解决这个问题呢?很显然,我们需要流中数据的逻辑单位不再是字节而是字符。因此,就产生了字符流。由此我们就可以看到,字节流和字符流的区别:两种流中原创 2020-06-23 08:35:32 · 197 阅读 · 0 评论 -
(十三)I/O流-字节流
一、I/O的概念I/O:Input/Output为什么需要I/O?在操作系统中,一切需要永久保存的数据都以文件的形式存储。需要长久保存的文件数据,存储在外部设备(硬盘)。但是,程序在运行的时候,相关的数据必须被读取到内存中才能运行,同时,内存的大小有限,远小于外部设备,因此常常需要在内存和外设之间交换数据,即I/O。二、Java I/O流为了在Java语言层面实现I/O功能,Java语言引入了流,基于流模型来完成I/O功能。Java语言主要通过输入流和输出流完成I/O的功能,从而实现和外设的数据交原创 2020-06-23 08:34:33 · 219 阅读 · 0 评论 -
(十二)File类
为什么要学习File类?……一、概述File类:文件和目录路径名的抽象表示形式。抽象的含义和物理存在的含义相对一个File类对象,表示操作系统中(路径名所指向的逻辑上存在的,而不一定是物理上真实存在的)的一个文件或者一个目录。所以,可以认为,一个File对象和路径名……一个File类对象,表示操作系统中的一个文件或者一个目录。它描述的就是一个路径名字符串所表示一个文件或目录。二、文件路径1.路径名绝对路径:绝对路径名是完整的路径名,不需要任何其他信息就可以定位它所表示的文件。windo原创 2020-06-23 08:33:22 · 145 阅读 · 0 评论 -
(十一)异常-Exception
一、基本概念二、JVM的默认异常处理原创 2020-06-05 22:34:42 · 225 阅读 · 0 评论 -
(十)Java常用类
一、Object apiObject类是类层次结构的根类,所有类都直接或者间接的继承自该类。Object类中,没有定义成员变量,但有构造方法 public Object();为什么所有类都会有一个默认的无参构造方法? 与子类对象默认初始化有关无参默认构造方法1.当一个类没有定义构造方法的时候,就会自动添加默认构造方法;2. 一旦有默认构造方法,在创建子类对象的时候,就会执行子类对象的隐式初始化;3. 隐式初始化,默认调用父类的无参构造;4. 所以最终,一定能保证,调用到Object类的无参原创 2020-06-03 22:20:33 · 265 阅读 · 1 评论 -
(九)Java面向对象03_Java语言基础部分_学习笔记
一、抽象类二、接口三、内部类原创 2020-05-30 18:24:23 · 138 阅读 · 0 评论 -
(八)Java面向对象02_Java语言基础部分_学习笔记
一、访问权限修饰符在Java语言中,一切事物(类所有成员)都具有(显示定义或隐式定义的)访问权限,而这种语言层面的访问权限控制,是由访问权限修饰符实现。1.访问权限修饰符的访问控制,分为2个层面:修饰类中成员(field & method)控制类中的成员(成员变量 & 成员方法),对其他类可见性(其他类是否可以直接使用到);修饰类通常用来限定类库中的类(自定义数据类型),对于外部使用者的可见性(是否能使用该类型)。2.对类中成员的访问控制对于类中成员的访问,可以使用的访问原创 2020-05-29 14:07:38 · 236 阅读 · 0 评论 -
(七)Java面向对象01_Java语言基础部分_学习笔记
一、面向对象引入回想一下客观世界,我们的客观世界是由两种东西所组成的:生活在客观世界中的个体(客体,或物体)以及个体之间的联系。正是由于现实世界中的个体们,“各司其职”, 直接或间接的“相互协作”,才保证了这个世界的正常,有序的流转。面向对象的程序世界和现实世界也极其相似:运行中的程序,由多个个体(也就是对象)组成;运行中的个体,需要相互协作,共同完成程序的功能。二、面向对象基本概念类比于现实世界中的个体(客体),运行中的面向对象程序也是由一个一个的对象(个体)组成。所以,要想写出面向对象的程序,必原创 2020-05-25 22:39:38 · 274 阅读 · 0 评论 -
(六)Java二维数组和递归_Java语言基础部分_学习笔记
一、二维数组1.二维数组的实质:一维数组的数组2.二维数组的初始化格式二维数组的初始化格式1:数据类型[][] 变量名 = new 数据类型[m][n];m代表二维数组中一维数组的个数;n代表二维数组中包含的每个一维数组,所能包含的元素个数;例如:int[][] arr = new int[3][2] ;二维数组定义的格式2:数据类型[][] 变量名 = new 数据类型[m][];m表示这个二维数组有多少个一维数组;这一次没有直接给出一维数组的元素个数,可以动态的给出。举原创 2020-05-24 12:38:07 · 236 阅读 · 0 评论 -
(五)Java方法和数组_Java语言基础部分_学习笔记
一、方法为什么要使用方法?我们可以将实现相同功能的重复代码写到一个方法中,通过调用这个方法实现相关功能,可减少代码的冗余。1.方法定义:方法就是完成特定功能的代码块(在有些其他语言中,也被成为函数)。2.方法定义的格式 修饰符 方法返回值类型 方法名(参数1类型 参数1名称, 参数2类型 参数2名称, ……) { 方法体语句; return 返回值; }方法定义的格式说明:修饰符:现在先认为是固定的 public static返回值类型:原创 2020-05-23 17:00:28 · 148 阅读 · 0 评论 -
(四)Java流程控制_Java语言基础部分_学习笔记
一个Java程序,通常是由多条符合Java语法规则的语句组成的。一个Java程序的执行,一定意味着多条Java语句的执行。既然是多条Java语句的执行,执行的结果就一定与语句执行的顺序有关,同样的语句,不同的执行顺序,结果可能不同。因此我们需要知道,Java语言如何控制多条语句的执行顺序——通过流程控制(具体来说,是通过3种结构)。一、顺序结构顺序结构描述的是Java语句之间,从上到下(或从左到右)依次执行的执行顺序。顺序结构是程序中最简单最基本的流程控制,没有特定的语法,就是按照代码书写的顺序执原创 2020-05-20 21:53:42 · 169 阅读 · 0 评论 -
(三)Java运算符_Java语言基础部分_学习笔记
一、算术运算符1.对于+运算符的功能:加法运算正数表示字符串拼接:操作数1 + 操作数2 两个操作数中,只要至少有一个是字符串,+操作执行的就是字符串拼接,如"hello" + ‘a’ + 1 = “helloa1”2.对于/运算符:整数相除只能得到整数3.++和-- :单独使用效果是自增或自减后的结果, 若参与运算,位置不同,效果不同。“++”: 让一个变量自增1 a++ <-> a = a + 1“- -” : 让一个变量的值自减1 b- -:原创 2020-05-19 22:01:36 · 221 阅读 · 0 评论 -
(二)Java语言基础数量部分_Java语言基础部分_学习笔记
一、修饰符publicJava语言语法(硬性规定):在Java语言中,一个Java文件中只能定义一个被public修饰的类且被public修饰的类的类名必须和Java文件的文件名相同。二、关键字1.定义:被Java语言赋予特殊含义的单词。2.特点:组成关键字的字母全部小写。注意事项:高级的编辑器或者专门的开发工具中,关键字会有高亮效果goto和const作为保留字存在,目前并不使用三、标识符1.定义:标识符(我们自己起的一个名字)就是给类,接口,方法,变量等起名字时使用的字符序列。2.组原创 2020-05-16 18:51:07 · 168 阅读 · 0 评论 -
(一)Java语言概述_Java语言基础部分_学习笔记
Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。一、Java分为三个体系:JAVASE(Java Platform Standard Edition)标准版。是为开发普通桌面和商务应用程序提供的解决方案。JAVAME(Java Platform To Micro Edition)小型版。是为开发电子消费产品和嵌入式设备提供的解决方案。JAVAEE(Java原创 2020-05-16 12:25:13 · 383 阅读 · 0 评论