java基础
小富富
这个作者很懒,什么都没留下…
展开
-
java进阶之垃圾回收机制
垃圾回收机制关键点 1.垃圾回收机制只回收JVM堆内存里的对象空间。 2.对其他物理连接,比如数据库连接、输入流输出流、Socket连接无能为力 3.现在的JVM有多种垃圾回收实现算法,表现各异。 4.垃圾回收发生具有不可预知性,程序无法精确控制垃圾回收机制执行。 5.可以将对象的引用变量设置为null,暗示垃圾回收机制可以回收该对象。 6.程序员可以通过System.gc()或者Runtime.getRuntime().gc()来通知系统进行垃圾回收,会有一些效果,但是系统是否进行垃圾回收依然不确定。 7原创 2020-12-12 10:39:33 · 162 阅读 · 1 评论 -
java进阶之有意义的命名
1.1 介绍 软件中随处可见命名。我们给变量、函数、参数、类和包命名。我们给源代码及源代码所在目录命名。 这么多命名要做,不妨做好它。下文列出了取个好名字的几条简单规则。 1.2 名副其实,见名知意 变量名太随意,haha、list1、ok、theList 这些都没啥意义 1.3 避免误导 包含List、import、java等类名、关键字或特殊字; 字母o与数字0,字母l与数字1等 提防使用不同之处较小的名称。 1.4 做有意义的区分 反面教材,变量名:a1、a2、a3 避免冗余,不要出现Variable原创 2020-12-12 10:32:57 · 274 阅读 · 0 评论 -
java进阶之面试题-算法之排序(一)
比较一下几种常用的排序算法,简单的写一下你知道的几种排序算法? 比较: 1.稳定性比较 插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的选择排序、希尔排序、快速排序、堆排序是不稳定的。 2.时间复杂性比较 插入排序、冒泡排序、选择排序的时间复杂性为O(n2)其它非线形排序的时间复杂性为O(nlog2n) 线形排序的时间复杂性为O(n)。 3.辅助空间的比较 线形排序二路归并排序的辅助空间为O(n);其它排序的辅助空间为O(1)。 4.其它比较 插入、冒泡排序的速度较慢,但参加排序的序列.原创 2020-12-05 11:24:31 · 112 阅读 · 0 评论 -
java升级之object, 静态,代码块
一.static关键字的使用 *1.static:静态的 *2.static可以用来修饰:属性、方法、代码块、内部类 *3.使用static修饰属性:静态变量(或类变量) 3.1 属性,按是否使用static修饰,又分为:静态属性 vs 非静态属性(实例变量) 实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性。当修改其中一个对象中的 非静态属性时,不会导致其他对象中同样的属性值的修改。 静态变量:我们创建了类的多个对象,多个对象共享同一个静态变量。当通过某一个对象修改静态变量时,原创 2020-08-01 11:16:54 · 126 阅读 · 0 评论 -
java升级之抽象和接口
一.abstract关键字的使用 *1.abstract:抽象的 *2.abstract可以用来修饰的结构:类、方法 *3.abstract修饰类:抽象类 > 此类不能实例化 > 抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程) > 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作 *4.abstract修饰方法:抽象方法 > 抽象方法只有方法的声明,没有方法体 > 包含抽象方法的类,一定是一个抽象类。反之,抽象类中可以没有抽象方法的。原创 2020-08-01 10:58:11 · 189 阅读 · 0 评论 -
java升级之多态
一.面向对象特征之三:多态性 1.理解多态性:可以理解为一个事物的多种形态。 2.何为多态性: 对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用) 3.多态的使用:虚拟方法调用 有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。 ------------- 总结:编译,看左边;运行,看右边。-------------------------------------- 4.多态性的使用前提: ① 类的继承关系 ② 方法的重写原创 2020-08-01 10:48:50 · 106 阅读 · 0 评论 -
java升级之封装,继承
面向对象的特征一:封装与隐藏 3W:what? why? how? 一、问题的引入: 当我们创建一个类的对象以后,我们可以通过"对象.属性"的方式,对对象的属性进行赋值。这里,赋值操作要受到 属性的数据类型和存储范围的制约。除此之外,没有其他制约条件。但是,在实际问题中,我们往往需要给属性赋值 加入额外的限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。(比如:setLegs()) 同时,我们需要避免用户再使用"对象.属性"的方式对属性进行赋值。则需要将属性声明为私有的原创 2020-08-01 10:25:57 · 100 阅读 · 0 评论 -
java升级之面向对象
一、设计类,其实就是设计类的成员 属性 = 成员变量 = field = 域、字段 方法 = 成员方法 = 函数 = method 创建类的对象 = 类的实例化 = 实例化类 二、类和对象的使用(面向对象思想落地的实现): 1>创建类,设计类的成员 2>.创建类的对象 3>通过“对象.属性”或“对象.方法”调用对象的结构 三、如果创建了一个类的多个对象,则每个对象都独立的拥有一套类的属性。(非static的) 意味着:如果我们修改一个对象的属性a,则不影响另外一个对象属性a的原创 2020-08-01 09:50:58 · 116 阅读 · 0 评论 -
java升级之方法
一、类中方法的声明和使用: 方法:描述类应该具有的功能。 比如:Math类:sqrt()\random() … Scanner类:nextXxx() … Arrays类:sort() \ binarySearch() \ toString() \ equals() \ … 1.举例: public void eat(){} public void sleep(int hour){} public String getName(){} public String getNati原创 2020-07-25 13:04:12 · 327 阅读 · 0 评论 -
java入门之数组
一、数组的概述 1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名, 并通过编号的方式对这些数据进行统一管理。 2.数组相关的概念: >数组名 >元素 >角标、下标、索引 >数组的长度:元素的个数 3.数组的特点: 1)数组是有序排列的 2)数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型 3)创建数组对象会在内存中开辟一整块连续的空间 4)数组的长度一旦确定,就不能修改。 4. 数组的分类: ① 按照维数原创 2020-07-25 11:35:50 · 154 阅读 · 0 评论 -
java入门之条件和循环
一、for循环结构的使用 1、循环结构的4个要素 ① 初始化条件 ② 循环条件 —>是boolean类型 ③ 循环体 ④ 迭代条件 2、for循环的结构 for(①;②;④){ ③ } 执行过程:① - ② - ③ - ④ - ② - ③ - ④ - … - ② 说明: 1. else 结构是可选的。 2. 针对于条件表达式: > 如果多个条件表达式之间是“互斥”关系(或没有交集的关系),哪个判断和执行语句声明在上面还是下面,无所谓。 > 如果多个条件表达式之间有交原创 2020-07-25 11:05:58 · 197 阅读 · 0 评论 -
java入门之基本数据类型,运算符
Java定义的数据类型 一、变量按照数据类型来分: 基本数据类型(八种): 整型:byte \ short \ int \ long 浮点型:float \ double 字符型:char 布尔型:boolean 引用数据类型: 类(class) 接口(interface) 数组(array) 二、变量在类中声明的位置: 成员变量 vs 局部变量 基本数据类型之间的运算规则: 前提:这里讨论只是7种基本数据类型变量间的运算。不包含boolean类型的。 自动类型提升: 结论:当容量原创 2020-07-25 10:30:22 · 119 阅读 · 0 评论 -
入门级知识
第一天的知识: 对java程序进行总结 1. Java程序编写-编译-运行的过程: 编写:我们将编写的java代码保存在以".java"结尾的源文件中 编译:使用javac.exe命令编译我们的java源文件。格式:javac 源文件名.java 运行:使用java.exe命令解释运行我们的字节码文件。 格式:java 类名 在一个java源文件中可以声明多个class。但是,只能最多有一个类声明为public的。 而且要求声明为public的类的类名必须与源文件名相同。 程序的入口是main原创 2020-07-25 10:15:24 · 90 阅读 · 0 评论