
Java核心技术
java基础篇
one_2_one
这个作者很懒,什么都没留下…
展开
-
第十章--Java数据结构 第六节--工具类
(1)JCF的工具类:JCF提供了很多数据结构,除了这些数据结构,还提供了两种工具类----工具类不存储数据,而是在数据容器上,实现高效操作(主要是排序操作和搜索操作)---- Arrays类和 Collections类Arrays:处理对象是数组----排序:对数组排序,sort / parallelSort----查找:从数组中查找一个元素,binarySearch----批量拷贝:从源数组批量复制元素到目标数组,copyOf----批量赋值:对数组进行批量赋值,fill原创 2020-08-16 16:23:46 · 189 阅读 · 0 评论 -
第十章--Java数据结构 第五节--映射Map
映射(1)----Map映射数学定义:两个集合之间的元素对应关系一个输入对应到一个输出{ 1,张三},{2,李四},{Key,Value},键值对,K-V对----Java中的Map(1)Hashtable:同步,性能比较慢,适合处理数据量小(2)HashMap:不支持同步,快,数据量大(3)Properties:同步,文件形式存储的,数据量小映射(2):Hashtable---- K-V对,K和V都不允许为null----同步,多线程安全----无序的-原创 2020-08-15 23:37:11 · 217 阅读 · 0 评论 -
第十章--Java数据结构 第四节--集合Set
集合(1):集合Set的三个性质:(1)确定性:对任意对象都能判定它是否属于某一个集合(2)互异性:集合内每个元素都是不相同的,注意是内容互异的(比如说)原创 2020-08-14 23:29:38 · 182 阅读 · 0 评论 -
第十章--Java数据结构 第三节--列表List
List(1):----List:列表有序的Collection允许有重复的元素,也允许嵌套举个例子:{ 1, 2, 4, { 5, 2 }, 1, 3 }----List主要实现有三个类:(1)ArrayList (非同步的)(2)LinkedList (非同步的)(3)Vector(同步的)List(2): ArrayList----以数组实现的列表,不支持同步----利用索引位置可以快速定位访问----不适合指定位置的插入、删除操作(大量的数据后移..原创 2020-08-11 23:16:05 · 242 阅读 · 0 评论 -
第十章--Java数据结构 第二节--JCF
JCF(1):----容器:能够存放数据的空间结构(1)数组 / 多维数组,只能线性存放(2)列表 / 散列集 / 树 / ......----容器框架:为表示和操作容器而规定的一种标准体系结构(简单说,有一些容器,并且在其之上有算法实现)(1)对外的接口:容器中所能存放的抽象数据类型(2)接口的具体实现:可以复用的数据结构(3)算法:对数据的查找和排序----容器框架的优点:提高数据存取效率,避免程序员重复劳动----C++的STL(标准模板库),Java的JCFJ原创 2020-08-10 22:59:33 · 292 阅读 · 0 评论 -
第十章--Java数据结构 第一节--数组
数组(1):数组是一个存放多个数据的容器----数据是同一种类型----所有的数据是线性规则排列----可通过位置索引来快速定位访问数据----需要明确容器的长度数组(2):Java数组定义和初始化数组(3):数组索引----数组的length属性标识数组的长度----从0开始,到length-1---- int[] a = new int[5] ; // a[0] ~ a[4] , not a[5]----数组不能越界访问,否则会报Arr...原创 2020-08-09 23:19:45 · 126 阅读 · 0 评论 -
第九章 --Java异常和异常处理 第三节--自定义异常
自定义异常(1):----Exception类是所有异常的父类----Exception继承自java.lang.Throwable,同时它有一个兄弟Error----Error是更严重的问题,一般是系统层面的,无需程序处理----程序只需要处理Exception自定义异常(2):----自定义异常,需要继承Exception类或者其子类(1)继承自Exception,就变成Checked Exception(2)继承自RuntimeException,就变成Unchecke原创 2020-08-08 23:24:55 · 106 阅读 · 0 评论 -
第九章--Java异常和异常处理 第二节--Java异常处理
异常处理(1):异常处理(的目的):(1)允许用户及时保存结果(2)抓住异常,分析异常内容(3)控制程序返回到安全状态异常处理(2):---- try - catch - finally :一种保护代码正常运行的机制---- 异常结构:(1)try ... catch(可以有多个,下同)(2)try ... catch ... finally(3)try ... finally注意:try必须有,catch和finally至少要有一个异常处理(3):--.原创 2020-08-08 15:20:07 · 150 阅读 · 0 评论 -
第九章 Java异常和异常处理 第一节 Java异常分类
异常概述:异常:程序不正常的行为或者状态---- int a = 5 / 0 ;----数组越界访问---- 读取文件,结果该文件不存在异常处理(处理整个异常):希望可以做到----程序返回到安全状态----允许用户保存结果,并以适当方式关闭程序举个例子:早期的时候,windows98一旦出现错误,系统直接蓝屏,所有的东西如编辑的文档,编写的代码全都没有(没有来得及保存)现在的win7 / win10,如果程序出现错误,就会弹出一个错误警告,问你发送不发...原创 2020-08-07 23:35:33 · 230 阅读 · 0 评论 -
第八章 Java常用类 第四节 时间相关类
时间类(1):--java.util.Date(基本废弃,Deprecated)getTime(),返回自从1970.1.1以来的毫秒数--java.sql.Date(和数据库对应的时间类)--Calendar是目前程序中最常用的,但是是抽象类Calendar gc = Calendar.getInstance();Calendar gc = new GregorianCalendar();简单工厂模式时间类(2):Calendar类的相关函数--...原创 2020-06-23 20:27:01 · 159 阅读 · 0 评论 -
第八章 Java常用类 第三节 字符串相关类
字符串(1)String--Java中使用频率最高的类--是一个不可变对象,加减操作性能较差--以下方法需要牢记:charAt, concat, contains, endsWith, equals, equalsIgnoreCase, hashCode, indexOf, length matches, replace, replaceAll, split, startsWith, subString, trim, v...原创 2020-06-22 17:09:13 · 141 阅读 · 0 评论 -
第八章 Java常用类 第二节 数字相关类
--Java数字类(1)整数 Short, Int, Long(2)浮点数 Float, Double(3)大数类 BigInteger(大数类),BigDecimal(大浮点数)(4)随机数类 Random(5)工具类 Math--java.math包在Java类库中,整数类和浮点数类所表示的数字都有界限范围,如Int是-2147483648至2147483647。而大数类则没有限制,可以表示无穷大的数字。整数类型(1):整数类型(2):整数...原创 2020-06-21 16:51:31 · 152 阅读 · 0 评论 -
第八章 Java常用类 第一节 Java类库概述
Java类库统计:--Java8有217个包,4240个类,主要是java,javax,org三个包Java类库文档(1):--Java类库文档:https://docs.oracle.dom/javase/8/docs/api/--官方文档目前以英文为主--非官方的文档版本有中文(社区自己翻译的)--可以下载文档离线版本(chm格式)--这些文档原先是程序中的注释。利用JavaDoc技术,将这些注释抽取出来,组织形成的以HTML为表现形式的API(Application原创 2020-06-20 16:31:02 · 230 阅读 · 0 评论 -
第七章 package,import和classpath 第四节 Java访问权限
Java访问权限(1):--Java访问权限有四种:(1)private:私有的,只能本类访问(2)default(通常忽略不写,写了编译不通过):同一个包内访问(3)protected:同一个包,或者子类均可以访问(4)public:公开的,所有类都可以访问--使用范围:(1)四种都可以用来修饰成员变量、成员方法、构造函数(2)default和public可以修饰类Java访问权限(2):总结:...原创 2020-06-20 16:02:04 · 148 阅读 · 0 评论 -
第七章 package,import和classpath 第三节 package和import----命令行
package和import(1):--Java支持多个目录放置Java,并且通过package / import / classpath / jar等机制配合使用,可以支持多处地方放置和调用Java类--利用Eclipse等IDE可以快速生成包、类和jar文件,可以快捷import所需要的classpackage和import(2):--包名:和目录层次一样cn.com.test.Man.java必须放在cn \ com \ test目录下--类的完整名字:包名 + 类名c..原创 2020-06-17 20:18:09 · 198 阅读 · 0 评论 -
第七章 package,import和classpath 第二节 jar文件导出和导入
jar(1):-- .java文件最终会被编译成 .class文件(二进制),并被分发到其他机器上使用。--jar文件,一种扩展名为jar的文件,是Java所特有的一种文件格式,用于可执行程序文件的传播。--jar文件实际上是一组class文件的压缩包(可以用压缩软件打开)--项目引入一个jar文件,就可以使用该jar文件中的所有类(.class文件),无需类的源码文件(.java文件)--jar文件本质上和C++中的DLL文件类似jar(2):jar文件优势(1)jar文件原创 2020-06-17 15:58:13 · 212 阅读 · 0 评论 -
第七章 package,import和classpath 第一节 package和import
package(1):--所有的Java类都是放置在同一个目录下面的,因此类之间的相互调用无需显式声明调用。注意:(1)同一个目录下,两个类的名字不能相同 (2)文件过多,查找和修改都不易,且容易出错--Java支持多个目录放置Java文件,并且通过package / import / classpath / jar等机制配合使用,可以支持跨目录放置和调用Java类package(2):--package包,和C++中的namespace类似--在...原创 2020-06-14 16:55:59 · 301 阅读 · 0 评论 -
第六章 static、final和常量设计 第五节 不可变对象和字符串
常量是不会被修改的,在内存空间中,只需要保留一份、只读。Java语言设计对只读的对象进行了设计,叫做不可变对象不可变对象(1):(Immutable Object)--一旦创建之后,这个对象的值或者对象的状态就不能被更改了--其内在的成员变量的值就不能修改了--八个基本型别的包装类属于不可变对象--String、BigInteger和BigDecimal等属于不可变对象可变对象(Mutable Object):与不可变对象相对应。--普通对象(Man、Human都属于普通对象..原创 2020-06-13 19:18:21 · 151 阅读 · 0 评论 -
第六章 static、final和常量设计 第四节 常量设计和常量池
常量设计(1):常量:一种不会修改的变量--Java没有constant关键字--不能修改,final--不会修改 / 只读 / 只要一份,static--方便访问publicJava中的常量:--public static final--建议变量名字全部大写,以连字符相连,比如UPPER_BOUND常量设计(2):如果变量是static且final的,static保证只有一份,final保证值不会被修改,那么这个变量就是常量。常量设计(3)...原创 2020-06-11 20:56:59 · 274 阅读 · 0 评论 -
第六章 static、final和常量设计 第三节 final
--Java的final关键字同样可以用来修饰(1)类(2)方法(3)字段--final修饰类时:final修饰的类,不能被别的类继承,查看FinalFather.java--final修饰方法时:父类中如果有final的方法,呢么子类中不能重写此方法,查看FinalMethodSon.java--final修饰变量时:final的变量,不能再次赋值。这里分为两种情况:(1)如果是基本型别的变量,不能修改其值;查看FinalPrimitive.java(2)如果是对象实例原创 2020-06-10 16:00:44 · 116 阅读 · 0 评论 -
第六章 static、final和常量设计 第二节 单例模式
static关键字作用于变量时,该变量在内存中只有一个拷贝,由此特点,衍生出设计模式当中一种经典的设计模式---单例模式。单例模式(1):--单例模式,又名单态模式,Singleton。--限定某一个类在整个程序运行过程中,只能保留一个实例对象在内存空间。(对象是new出来的,那么new的话限定只能new一次不能new多次。) 内存空间中,一个类只有一个对象存在,这就是单例模式。--单例模式是GoF的23种设计模式(Design Pattern)中经典的一种,属于创建型模式类型。单例..原创 2020-06-09 17:28:53 · 151 阅读 · 0 评论 -
第六章 static、final和常量设计 第一节 static
static(1):--static:静态的,Java中特殊的关键字--Java中的static关键字(可以作用在):(1)变量(2)方法(3)类(4)匿名方法块static(2):--静态变量,类共有成员(1)查看例子Potato.java(2)static变量只依赖于类存在(通过类就可访问),不依赖于对象实例存在。也就是说,如果类中存在一个static变量,那么可以通过 类名.变量名 就可以访问,也可以通过 对象名.变量名 访问。(3)所有的对象实例,...原创 2020-06-08 16:50:13 · 155 阅读 · 0 评论 -
第五章 继承、接口和抽象类 第三节 转型、多态和契约设计
类转型(1):--变量支持互相转化,比如 int a = ( int ) 3.5 ; (转型意味着两个数据有共同点,如3和3.5的整数部分相同,才能转型)--类型可以相互转型,但是只限制于有继承关系的类。(1)子类可以转换成父类,而父类不可以转为子类。(2)子类继承父类所有的财产,子类可以变成父类(从大到小,因此子类肯定大。即向上转型);从父类直接变成子类(从小变大,即向下转型)则不允许。 从大的东西(子类)转为小的东西(父类)是可以的,因为可以把多余的东西屏蔽掉。类转型(2...原创 2020-06-07 19:00:17 · 176 阅读 · 0 评论 -
第五章 继承、接口和抽象类 第二节 抽象类和接口
抽象类(1):--类:属性(0个或多个)+方法(0个或多个)--一个完整(健康)的类:所有的方法都有实现(方法体)--类可以没有方法,但是有方法就肯定要有实现,这才是一个完整的类--一个完整的类才可以被实例化,被new出来--如果一个类暂时有方法未实现,需要被定义为抽象类(若方法只有方法名字,形参列表,没有方法体,那所在的类就被定义为抽象类)抽象类(2):当图形未知时(如三角形、正方形),无法给出calArea的具体实现,因此此方法被定义为abstract。--抽象类关键原创 2020-06-06 17:36:31 · 195 阅读 · 0 评论 -
第五章 继承、接口和抽象类 第一节 继承
继承(1):--面向对象编程语言和面向过程的编程语言最突出的特点就是变量类型的继承--继承更符合大自然规律:父亲有的,儿子就有举个例子:继承(2):继承(3):--面向过程编程语言没有继承,导致出现很多类型重复定义--物以类聚,世间万物皆对象,对象也可以分成若干类别--类别内的对象属性和方法都具有一定的共同点--将共同点提取出来,即形成了父类/基类/超类(三种定义等价的)Parent class / Base class / Super class-...原创 2020-06-05 17:31:25 · 166 阅读 · 0 评论 -
第四章 面向对象思想、类和对象 第四节 信息隐藏和this
信息隐藏原则(1):面向对象有一个法则: 信息隐藏--类的成员属性,是私有的private--类的方法是公有public的,通过方法修改成员属性的值打个比方:朋友在熟悉,也不会到他抽屉直接拿东西,而是通过他的公开接口(公开方法)来访问、修改东西。信息隐藏原则(2):所谓信息隐藏:通过类的方法来间接访问类的属性,而不是直接访问类的属性。信息隐藏原则(3):--类成员是私有private的--get和set方法是公有public的,统称为getter和setter--原创 2020-06-04 20:57:00 · 740 阅读 · 0 评论 -
第四章 面向对象思想、类和对象 第三节 构造函数
构造函数(1):构造函数(2):--Java构造函数的名称必须和类名一样,且没有返回值。但是可以用public或者private修饰。--Java有构造函数,但是没有析构函数(C++中有)。注意:构造函数是在内存中开辟一个空间存储数据;析构函数是将一个数据对象清空。--每个变量都是有生命周期的,它只能存储在离他最近的一对{}中。--当变量被创建时,变量将占据内存;当变量消亡时,系统将回收内存。构造函数(3):--Java具有内存自动回收机制的,当变量退出其生命周期后,JV原创 2020-06-04 17:14:44 · 140 阅读 · 0 评论 -
第四章 面向对象思想、类和对象 第一节 面向对象思想
面向对象(1):--现实世界是由对象和对象之间相互作用共同组成的。--每个对象有自己的特有特性,也有自己专有的方法。外部对象想要调用这些方法,可以向它请求并传入参数,等方法执行结束后,返回结果。--对象 = 属性 + 方法--对象的规范 = 属性定义 + 方法定义面向对象(2):Java中,引入对象和类的概念--对象是一个变量(具体的东西)--类就是类型(是规范,是定义),从万千对象中抽取共性--类规定了对象应该有的属性内容和方法--对象是类的具体实现,是活生生的原创 2020-06-02 21:25:29 · 129 阅读 · 0 评论 -
第三章 类基础知识 第四节 自定义函数
自定义函数--函数必须放在类的范围内--修饰词(public或者static),返回值(int或者void),函数名(形参列表){函数体}--通常情况下,我们都建议方法是public--函数可以调用其他的函数,例如上例中,main函数调用了add函数--递归函数调用,需要注意终止性函数的重载:--同一个类中,函数名称可以相同,即重载函数(overload),但是函数参数的个数或者类型必须有所不同--不能以返回值来区分同名的函数...原创 2020-05-31 22:17:23 · 158 阅读 · 0 评论 -
第三章 类基础知识 第三节 选择和循环结构
选择结构:if(布尔表达式) 单种caseif(布尔表达式) ... else 两种caseif(布尔) ... else if (布尔) ...else 可以多种case多重选择结构:switch(表达式)--多个case分支--满足一个分支后,需要break--最后一个分支为default循环结构:whiledo...whileforbreak // 中断循环并退出continue // 跳出本次循环,继续下次循环...原创 2020-05-31 21:05:25 · 136 阅读 · 0 评论 -
第三章 类基础知识 第二节 Java基本类型和运算符
基本类型/基本型别:--boolean 布尔--byte 字节--short/int/long 短整数/ 整数/ 长整数--float/double 浮点数--char 字符布尔类型:boolean:只有true,或者false两种值,默认是false。字节类型:byte:--byte字节, 1 byte = 8 bits (8位)--存储有符号的,以二进制补码表示的整数--最小值-128,最大值127, 默认值为0--byte类型用在大型数组中可以显著节原创 2020-05-31 20:12:15 · 296 阅读 · 0 评论 -
第三章 Java类基础知识 第一节 java类结构和main函数
1.Class类:Java文件必须以.java作为扩展名。一个Java文件只能有一个public classpublic class的名字必须和文件名字一样,大小写都要完全一致一个文件可以有多个class,但是只能有一个是public。不提倡一个文件里面放多个类(内部类除外)System.out.println 换行输出System.out.print 输出2.类是Java中的最基础逻辑单位--Java所有的内容都是需要放在类的范围中--内容不允许游离在类之外--换言原创 2020-05-30 21:24:25 · 178 阅读 · 0 评论 -
第二章 HelloWorld程序的编写、编译和运行
Java从编写到运行编写:利用记事本/vi/IDE等完成代码文件(.java)编写编译:利用JDK中javac.exe将代码(.java)编译成字节码文件(.class)运行:java.exe读入并解释字节码文件(.class),最终在JVM上运行程序编写需要遵循编码标准--类名首字母大写,后面单词驼峰命令--方法名和变量名首字母小写,后面单词驼峰命名--阿里巴巴编程标准https://yq.aliyun.com/articles/69327注意:编译HelloWorld原创 2020-05-29 23:50:21 · 916 阅读 · 0 评论