Java基础
纵横阡陌
青春需奋斗!
展开
-
java就业班,学习中,学习目录
我要学习的内容,太多了:阶段一:步骤1:Java基础语法步骤2:Java面向对象步骤3:Java常用工具类阶段二:从网页搭建入门JavaWeb步骤1:网页搭建入门之HTML与CSS步骤2:网页搭建入门之JavaScript与前端案例步骤3:Java Web入门步骤4:Java Web进阶阶段三:Java 数据库开发与实战应用阶...转载 2019-07-07 10:07:18 · 246 阅读 · 0 评论 -
Java-初步认识-常用对象API(集合框架-迭代器的原理)
一.现在讨论一下,迭代器是怎么设计出来的。迭代器是取出元素的方式,这个接口有一个方法专门是用来取出元素用的。但是这个方法呢,每个集合中怎么取,它知道吗?它不知道(这个方法也是从众多子类中抽象出来的)。不知道,所以这个迭代器对象是怎么实现的?是依赖于子类实现的。更具体的说,一个容器,它里面装着东西,那么我们要取里面这些东西,是不是要依赖于这个容器?换一个容器,取得动作就不一样了。为什么?因为每个容器...转载 2018-06-03 22:29:36 · 198 阅读 · 0 评论 -
Java-初步认识-常用对象API(集合框架-迭代器使用)
一.我们完善完集合框架顶层接口Collection中常见方法学习以后,准备把存储在Collection集合中的元素给它取出来,因为存的目的就是为了方便取出来使用元素。这个取得动作,Colection给我们提供了一个迭代器的方法(迭代器是一个专业术语,意为取出集合中元素的方式)。取出元素的方式是个方法完成的,现在来演示一下。new谁不重要,只要能new就可以(Collection接口的子类很多,挑选...原创 2018-06-03 22:24:37 · 216 阅读 · 0 评论 -
Java-初步认识-常用对象API(集合框架-方法演示1,2)
一. 对于上一节讲述的集合类中的常用方法进行了演示。Collection是接口,在使用的时候需要调用。 看上面的截图,有人说连对象都没有怎么就开始调用add方法?调用show方法的时候,需要往里面传递对象,这里写的是show中的方法,而且show方法的参数列表中的Collection coll是多线程的知识点。无论定义的什么子类对象,都具备Collection接口中的方法。截图中的黄色下滑波浪线以...转载 2018-06-03 21:57:24 · 215 阅读 · 1 评论 -
Java-初步认识-常用对象API(集合框架-体系共性功能)
一.集合是个容器,用来存储对象的。当我们存储的对象数目变多的时候,会带来一些问题。对象在集合里面装的时候,到底是如何进行存储的?有人说直接往里扔就是了,要注意,对于对象而言,不止集合这么一种容器。对于对象的存储方式,每一个集合都有自己独特的定义,是根据某些需求而定的。举例子来谈:用水杯泡茶,必须有过滤网,不然喝茶会有茶叶,如果只是喝白开水那么就不需要过滤网。这说明容器自身都有其特定的结构,这种结构...转载 2018-06-03 21:53:10 · 251 阅读 · 0 评论 -
Java-初步认识-常用对象API(集合框架-概述)
一.(API (Application Program Interface):应用程序接口;是Java提供很多类和接口以来帮助我们编程)接下来学习一下API中的其他常用对象,这里介绍一个日后使用频率相当高的一个对象,叫做集合。这个集合是什么呢?它其实是个容器 。它为什么要出现?我们之前已经接触过一些容器了,比如说数组,StringBuffer类,其中还有一个就是对象。把容器的特点介绍一下,感受它们...转载 2018-06-03 21:40:54 · 159 阅读 · 0 评论 -
Java-初步认识-常用对象API(StringBuilder类-练习)
package stringbuffer.demo;/** * jdk1.5以后出现了功能和StringBuffer一模一样的对象。就是StringBuilder 不同的是: StringBuffer是线程同步的。通常用于多线程。 StringBuilde是线程不同步的。通常用于单线程。它的出现提高效率。 jdk升级: 1.简化书写 ...原创 2018-05-27 20:56:33 · 262 阅读 · 0 评论 -
Java-初步认识-常用对象API(StringBuffer类-可变长度数组)
一.在介绍一个字符串缓冲区的小插曲。new了一个StringBuffer,就是相当于一个长度为16的数组,如果装入第个字17符怎么办呢?给大家介绍一下可变程度数组,说一下其原理。首先一点,数组必须是固定长度的。如果输入的字符变多,系统会将原有的长度变长,一般会增加一倍。如何将原有的字符串导入新的字符串缓冲区中呢?采用遍历的方法(遍历没有理解深刻)。多出来的字符就输入增加的后半段中,这就叫做可变长度...转载 2018-05-27 20:52:53 · 293 阅读 · 0 评论 -
Java-初步认识-常用对象API(StringBuffer类-插入删除查找修改)
一.说完了添加,现在说一下删除。用操作容器的方法进行删除的话,方法不外乎两个,要么是delete,要么是remove。一般是delete.xxxx,或者是remove.xxxx。delete貌似包含头不包含尾。DOS结果显示为ae。现在想要将字符串缓冲区里的内容全部删除,这个动作叫做清空缓存区。缓冲区清空后,容器还在。也可以直接重新定义sb字符串缓冲区,(相当于重新定义了一个缓冲区,原先的缓冲区废...转载 2018-05-27 20:50:35 · 207 阅读 · 0 评论 -
Java-初步认识-常用对象API(StringBuffer类-特点添加功能)
一.这个对象以后开发中很常用,Buffer是缓冲区的意思,字符串缓冲区对象。在java.lang包中,有StringBuffer类。缓冲区就是容器,对数据进行了临时存储,StringBuffer做就得就是这个事情。之前学习的数组也是个容器,它也能存储东西,区别在哪里?数组是固定长度的,StringBuffer是可变长度的。容器知识点要重点掌握,以后数据多了要存储起来使用。数组定义完了之后,只能往里...转载 2018-05-27 20:48:29 · 233 阅读 · 0 评论 -
Java-初步认识-第十三章-验证静态同步函数的锁
一.接下来更加深入地讲解一下,示例还是卖票,但是程序稍作了修改。也就是调用的同步函数有多个修饰符,有了static的存在。由于show函数是静态的,访问的num,那么num也要修改为静态的变量。其实num静不静态都一样,都是共享数据。在加了两个静态修饰符后,再次编译运行一下程序。DOS结果显示又出现了安全问题。为啥?就是验证一点,静态同步函数用的锁绝对不是this,静态方法当中根本就没有this。...转载 2018-05-16 17:26:32 · 198 阅读 · 0 评论 -
Java-初步认识-第十三章-多线程(验证同步函数的锁)
一.至于同步函数用的是哪个锁,我们可以验证一下,借助原先卖票的例子 对于程序中的num,从100改为400,DOS的结果显示的始终都是0线程,票号最小都是1。票号是没有问题的,因为同步了。有人针对只出现0线程,说是票数太少,0线程都给操作完了。即使改成四万张票,也是0线程操作。正常来说,四个线程0~3,谁抢到谁就运行。问题出现在哪儿?程序中run函数是public synchronized voi...转载 2018-05-16 16:10:29 · 214 阅读 · 0 评论 -
Java-初步认识-常用对象API(String类-常见功能-比较)
一.这个方法比较特殊,单独来说。字符串还能进行比较,a和b比较一下谁大谁小。4.比较比较方法返回的是什么类型?比较有三种结果,要么大,要么小,要么相等。因此不能采用boolean类型,换成其他类型。什么叫字典顺序比较?就是按照阿斯科码表的顺序来比较,此字符串就是this,this和传递进来的字符串参数进行比较。结果为-1,如果是a和c进行比较,结果则是-2。如果是a和A进行比较,则是32。其实结果...转载 2018-05-26 20:22:51 · 184 阅读 · 0 评论 -
Java-初步认识-常用对象API(String类-常见功能-intern方法)
一.对于字符串内存进行一个剖析。现在介绍一个方法,一会儿要用到,但是实际开发并不多见。 intern()可以对常量池进行操作,s1是个对象,接着用s1对象去调用操作常量池中的方法,调用这个方法返回了池子中的对象。接着进行对比,s1==s2么?结果是false,跟下图中的写法是一回事。这里的s1是堆里面的一个对象,我这对象到池子里面去找寻了,池子里没有,然后就在池子里建了一个返回去了。池子里有就拿回...转载 2018-05-26 20:20:33 · 294 阅读 · 0 评论 -
Java-初步认识-常用对象API(String类-常见功能-判断)
一.字符串上的最后一个功能,就是判断。3. 判断3.1 两个字符串内容是否相同返回类型是boolean类型,boolean equals(Object obj)。这是覆写父类的方法,父类中参数列表是什么样的,子类中也要是什么样的。因此,参数列表必须是Object obj。截图中的结果为false,两个字符串的内容不相同。但是,现在要求无论是大写还是小写,只要是abc都是一样的。无论输入的是大写还是...转载 2018-05-26 20:18:30 · 203 阅读 · 0 评论 -
Java-初步认识-常用对象API(集合框架-List和Set的特点)
一.之前是介绍了Collection里面的一些常用东西,接下来看一下体系结构,集合框架的分类构成图。这里面东西全部都会都会涉及到, 查看API文档,在Collecntion接口下面除了众多的子类外,还有很多子接口。这些子接口中和我们开发中最常相关的是有两个,一个是list,另一个是set。一个是列表,一个是集。可以说Collection接口下面有两个分支,list和set。我们要重点学习一下两个子...转载 2018-06-03 22:31:49 · 242 阅读 · 0 评论 -
JAVA-初步认识-常用对象API(集合框架-List集合的常用方法)
一.现在重点学习一下List,List是Collection的子接口,那么Collection的方法,List都具备,共性方法就不讲述了。讲述一下List中特有的方法,这些特有方法的共性就是可以对角标进行操作。(以下讲述的都是list中的方法,我觉着还是基于操作元素的角标)1. 添加截图中的第一个方法是父类Collection中的添加方法,第二个方法是自己特有的。给定一个角标位置,插入一个元素或者...原创 2018-06-03 22:36:37 · 165 阅读 · 0 评论 -
深入剖析Java中的装箱和拆箱
阅读目录•一.什么是装箱?什么是拆箱?•二.装箱和拆箱是如何实现的•三.面试中相关的问题自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。一.什么是装箱?什么是拆箱?我们知道 Java为每种基本数据类型都提供了对应的包装器类型,至于为什么会为每种基本数据类型提供包...转载 2018-06-04 20:33:47 · 201 阅读 · 0 评论 -
Java-初步认识-常用对象API(集合框架-LinkedHashset集合)
一. 刚才已经讲述了set下面的hashset了,但是hashset有一点不好,它是无序的。现在有这么一个想法,想保证唯一,还要有顺序。hashset已经考虑了这一点,并在丰富集合框架的功能,它给我们提供了一个小插曲。hashset是无序的,但是通过下面的子类来进行扩展,基于父类再产生一个新功能。就是linkedhashset,本来哈希表,元素算完有存储位置,接着元素和元素之间再用链子串起来了。哈...转载 2018-06-04 20:14:31 · 269 阅读 · 0 评论 -
Java-初步认识-常用对象API(集合框架练习)
package collectiontest;import java.util.ArrayList;import java.util.Iterator;/** * * @author 高硕 * 利用ArrayList搞一个无重复数据的集合 * */public class ArrayListTest2 { public static void main(String[]...原创 2018-06-04 20:00:55 · 226 阅读 · 0 评论 -
Java-初步认识-常用对象API(集合框架-HashSet存储自定义对象)
一.往hashset中存储自定义对象。既然存储的自定义对象,我们就要定义一个条件,什么条件呢?条件如截图中所示先往里面存储自定义对象,通过迭代器将它们取出来(这是对之前所学的一个回顾)。在这里想问一句,迭代器将集合中的元素输出后,元素还存在么?存入的是4,7,1,9但是输出的是4,7,9,1。这是无序的,无序的原因就是,体系采用算法得出存储的位置。现在对程序做修改,添加了两次lisi7输出的结果中...原创 2018-06-04 19:54:12 · 240 阅读 · 0 评论 -
Java-初步认识-常用对象API(集合框架-Hashset集合)
一.我们已经将collection下面左边部分全部讲完了,接下来讲述的就是右边的set部分。 接下来切换到集合框架2。set存和取的顺序不一致。set:元素不可以重复,是无序的。学习set集合怎么学?之前已经学了collection和list了,原理都一样,先看这个集合的固定内容。 从它的方法摘要中可以看出,它和collection是一样的。它的方法不用再去学了,因为collection全都讲过...转载 2018-06-04 19:40:39 · 277 阅读 · 0 评论 -
Java-初步认识-常用对象API(集合框架-ArrayList集合存储自定对象)
一.回过来说一下ArrayList,现在用ArrayList对象,来完成一些我们实际开发中的动作。(ArrayList中的方法也不多,特有的方法一般也用不上。)通常我们往集合中存储的更多是自定义对象,光存储字符串没什么意思。 现在我们存自定义对象,比如说person,person要单独写一个类出来,这个类存储在哪儿呢?为了其它的包也能使用到person,直接建立p包,其中是bean目录。这个bea...原创 2018-06-04 19:36:45 · 307 阅读 · 0 评论 -
Java-初步认识-常用对象API(集合框架-LinkedList集合-练习栈堆和队列)
一. 练习对于面试常出现的问题进行介绍。这里有两个数据结构,对两者进行一个介绍。队列像管子,从左端开始进入,随着后面的进入,先进入的被挤到右端,直到先从右端挤出。为了符合项目中的需求,现在准备做这两个机构,完成我们的实际需求。有人说,采用前一节讲述的removeFisrt,不是这样来操作的,需求是指让你做个具备特定功能的容器出来,而不是自己书写一下这样的操作。我们应该描述这样一个容器,给使用者提供...原创 2018-06-04 19:29:01 · 291 阅读 · 0 评论 -
JAVA-初步认识-常用对象API(集合框架-LinkedList集合)
一.接下来讲述另外一个,看一下框架中有哪些? 先说LinkedList,ArrayList有机会再说。ArrayList就是数组,没什么好说的。List下面有个小弟,就是LinkedList,也就是链表。一般方法中有两个addFirst和addLast,这是链表特有的。如果你手里面有一个链子的话,中间的环是一个扣一个,要是添加的话,从头或者尾操作是最方便的。因此,提供了头或者尾添加的方法。链表对外...原创 2018-06-04 19:23:41 · 209 阅读 · 0 评论 -
Java-初步认识-常用对象API(集合框架-数组和链表)
一.重点介绍ArrayList和LinkedList查询快慢的原因,两者增删快慢已经介绍过了。数组是一个连续的空间,放置在堆内存中,数组里面放置着元素。讲解数组的查询为什么快(都是相对而言),为什么链表查询慢。堆内存中,很多数据都是随机放置的,但是如果某一部分是以数组的形式存放时,里面存放的都是角标。在连续的部分上进行查询,速度快于在众多随机的位置上查找。但是如果是增删的话,那么对数组的操作则是牵...转载 2018-06-04 19:12:20 · 197 阅读 · 0 评论 -
Java-初步认识-常用对象API(集合框架-List常用子类的特点)
一.凡是虚线框都是接口,我们真正在使用的时候,用的是接口中的子类,List接口中,有一堆子类,是我们开发中常用的容器。ArrayList,LinkList,Vecter这三个算是开发中比较常用的。(list下面有三个常用的对象)具体的容器必须明确其特点,那么你才知道什么时候该用这容器。1. vector容器之所以能够进行区分,是因为容器的内部的数据结构不一样,现在vector内部用的就是一个数组。...转载 2018-06-04 19:10:22 · 183 阅读 · 0 评论 -
Java-初步认识-第十三章-单例模式涉及的多线程问题
一.单例设计模式之前在谈论的时候,有一部分涉及线程的问题,因此只讲述了一半。现在将其重新描述一下。单例分为两种表现形式,懒汉和饿汉。二. 多线程下的单例:饿汉式懒汉式(延迟加载单例设计模式)什么时候用到这个对象,再加载它。这个例子并不准备运行,知道就可以。现在准备将其结合到多线程基础上来,来思考另外一部分内容,叫在多线程情况下,有没有安全隐患。 如果上图的getInstance()方法加入到run...转载 2018-05-16 20:57:29 · 167 阅读 · 0 评论 -
Java-初步认识-常用对象API(集合框架-ListIterator接口)
一.把list往外取的动作也说一下,(有可能说的是从list中取出元素的动作)。从list中取出所有的元素,采用iterator,因为list属于Colletion的子类,Colletion中具备的东西list也都有。(上面的截图中list只是一个空的容器,然后不断地往里面添加元素,或者删减元素)返回了iterator是怎么理解?DOS结果没有任何问题。list有自己特有的元素取出方式,list....原创 2018-06-03 22:42:14 · 171 阅读 · 0 评论 -
Java-初步认识-常用对象API(String类-常见功能-获取,转换,判断,比较
一.接下来我们把字符串当中涉及的方法,给大家介绍一下。首先介绍的是stringMethodDemo_1()方法。准备用面向对象的思考方式,把这个方法给思考一下。看到上图中的字符串,应该具备什么样的功能会比较合适呢?一个字符串中有几个字符?它有几个字符它自己最清楚,它应该具备这样的功能来告诉它有多少个字符。这个字符串第一个字符是什么?第二个字符是什么?根据位置获取字符。这个字符串,如果它有b这个字符...原创 2018-05-26 20:13:49 · 243 阅读 · 0 评论 -
Java-初步认识-常用对象API(String类-构造函数)
一.现在我们学习一下,对象给我提供的能够对该对象进行操作的方法。这些功能分为两种,一种是构造,一种是一般方法。先介绍构造方法,演示构造器必须查String类的说明,构造方法摘要,上图中的写法没什么意思,(两者是一样,虽然地址不一样,但是内容是一样的),都是在构造空的字符串。但是不要以为String s=null,也是等效的。前面两个都是对象,但是null是常量值为空。真正操作字符串对象的时候,根本...转载 2018-05-26 20:11:39 · 168 阅读 · 0 评论 -
Java-初步认识-第十四章-线程间通信-等待唤醒机制
一. 引言刚才的输出中,是一片相同的连续输出。现在我们希望,每输入一次,输出端就输出一次。在输入前要先明确一下,资源里面是否有数据。有数据的话要先输出,我们要在资源中多定义个变量,用来标记里面是否有数据。也就是说,资源里面的数据被输出了。上来先默认资源里面没有数据。输入拿到执行权后,先判断资源里面是否有数据,如果没有,就往里面输入数据。输入好数据后,flag变量就标记资源里面已经有数据。由于输入线...原创 2018-05-19 15:57:56 · 134 阅读 · 0 评论 -
Java-初步认识-第十四章-线程间通信-示例
一. 引言之前讲述了线程的基本使用,卖票和存钱。卖票相当于把资源都释放出来,被别人获取到。而存钱,则是把数据都存进去。现在,我们将线程进行了改变。以前是多个线程在执行同一个动作,无论是继承还是实现,都是一个run方法。换句话说,就是一个线程任务,多线程在同时执行一个任务。只不过它们是分别存放在了自己不同的线程栈里面,再进行统一运行,但是动作是一样的,比如说四个人都是卖票。现在要讲述的是线程间通信。...原创 2018-05-19 15:44:12 · 150 阅读 · 0 评论 -
Java-初步认识-第十三章-多线程(线程安全问题的现象)
一. 引言接着看,把售票的问题给说完,这里涉及到一个小问题。在我们进行线程任务封装,并进行线程对象创建的时候,我们发现确实通过四个线程能够将一百张票卖完。但是卖票的时候,会不会出现一些小问题呢?分析整个程序给大家展示一下。现在有四个线程,都到了run方法中来运行。大家都知道,每个线程所属的栈区当中都有自己的run方法,比如它们同时在操作堆内存中的变量,叫做num。假设这个num已经减到了1,这是个...转载 2018-05-12 22:06:21 · 182 阅读 · 0 评论 -
Java-初步认识-第十二章-多线程概述
一.现在学习一个新技术,java中支持的。在了解多线程之前,先了解线程。在了解线程之前,先了解进程。当我们执行一个程序,它如果启动的话,它会在内存中开辟空间。这个空间就是进程。进程对应的是一个应用程序在内存中的所属空间。(既代表运行中的程序,也暗示了它占有的空间)一个程序在内存中开辟空间,就代表着它在运行,不运行,它就要释放空间。硬盘是存储的,内存是临时存储的,是在运行时存储的。任何一个应用程序它...转载 2018-05-05 17:52:44 · 165 阅读 · 0 评论 -
JA-初步认识-第十三章-多线程(卖票示例)
一. 讲述一个小例子,展现一下多线程技术。任何一个例子都有需求:资源是同一个,通过四个窗口往外发,是并发。四个窗口用的是同一个动作,都是卖票,但是这个动作是同时进行。先不写思路,先简单描述一下,上面截图中的程序有一个问题,在其编译运行之后,四个线程都卖出了100张票。本来只有100张票,现在卖了400张。先不说多线程,看着四个对象,绘制栈和堆内存。由于多线程的存在,栈内存的绘制比较大。粗略地做出程...转载 2018-05-11 16:51:34 · 197 阅读 · 0 评论 -
Java-初步认识-第十三章-多线程(第二种方式的好处)
一. 梳理两种线程创建方式Runable接口的体现形式交代完了,现在说说为什么这么做,同时说说Runable接口干嘛用的,交代一下设计思想。以上图为例来讲述,相当于规定了前提条件Student类有父类Person类。现在Student类中有封装Code()代码块,想要让Code()这部分和Student类中的其它部分同时执行,这样就需要多线程。如果Student类没有父类的话,就可以通过继承Thr...转载 2018-05-11 16:44:58 · 158 阅读 · 0 评论 -
Java-初步认识-第十三章-第二种方式的细节
一. 讨论一下第二中方式中的一些细节问题这里会产生一些疑问,Thread类有自己的线程方法(我估计是run方法),d也有自己的run方法。那么d传递到Thread中,那么t1既具备Thread类的run,又具备d的run,那它运行的是谁的?通过刚才演示的来看,不传递运行的是Thread类自己的,传递后就是我指定的。这是为什么呢?其实它内部的设计思想是这样的,源代码特别多,这里只是模拟一下重要部分。...转载 2018-05-11 10:20:48 · 171 阅读 · 0 评论 -
Java-初步认识-第十三章-创建线程的第二种方法-实现Runnable接口
一. 引言现在把之前的示例还原一下,创建线程的第一种方式。(继承创建子类对象,覆盖run方法)之前的例子如上,存在着三个线程(目前自己能够理解认识的),主线程和自己创建的两个线程。cpu在这三者之间进行切换。现在遇到一个瓶颈,Demo类当中有一部分代码,我们需要用到多线程执行,我们就继承了Thread类(什么时候用多线程)。为什么要有多线程的出现,就为为了并发程序,提高效率。类中需要同时运行的代码...转载 2018-05-11 09:44:12 · 153 阅读 · 0 评论 -
Java-初步认识-第十二章-线程的状态
一图胜万言。原创 2018-05-09 20:51:56 · 177 阅读 · 0 评论