java基础
文章平均质量分 56
yo嚛嚛yo
喜欢吃包子的星星粉
展开
-
Java基础多线程之线程安全-同步锁三种形式
首先,我们通过一个案例,演示线程的安全问题: 电影院要卖票,我们模拟电影院的卖票过程。假设要播放的电影是 “葫芦娃大战奥特曼”,本次电影的座位共100个(本场电影只能卖100张票)。我们来模拟电影院的售票窗口,实现多个窗口同时卖 “终结者”这场电影票(多个窗口一起卖这100张票)需要窗口,采用线程对象来模拟;需要票,Runnable接口子类来模拟模拟票:public class MyTi...原创 2018-08-09 22:21:35 · 273 阅读 · 0 评论 -
Java基础之增强for循环与泛型
一、增强for循环1、也称for each循环,是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。 格式:for(元素的数据类型 变量 : Collection集合or数组){//写操作代码}它用于遍历Collection和数组。通常只进行遍历元素,不要在遍历的过程...原创 2018-08-08 20:25:31 · 412 阅读 · 0 评论 -
Java基础之List集合
一、List接口特点:它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、 22、33的顺序完成的)。它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。二、List三个实现类:ArrayList:底层使用数组...原创 2018-08-08 20:37:28 · 105 阅读 · 0 评论 -
Java之数据结构
一、栈栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。 简单的说:采用该结构的集合,对元素的存取有如下的特点: (1)先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素)。例如,子弹压进弹夹,先压进去的子弹在下面,后压进去的子弹在上面,当开枪时,先弹出上面的子弹,然后才能弹出下...原创 2018-08-08 20:53:40 · 265 阅读 · 0 评论 -
Java之Set、可变参数
一、java.util.Set是Collection接口的子接口,特点: 1. 不允许重复元素 2. 不保证先后顺序 3. 没有索引值二、常用的实现类:HashSet:底层使用哈希表,查找对象的速度嗷嗷快。LinkedHashSet:底层也是哈希表,但是额外还有链表,用来维护先后顺序。TreeSet:有大小排序。三、重点问题:Set集合是如何确定有没有重复...原创 2018-08-08 21:08:00 · 1455 阅读 · 0 评论 -
Java基础之Map
一、Map集合特点Collection存放的是:一个一个的数据Map存放的是:一对儿一对儿的数据**特点:** 1. 键不能重复2. 值可以重复3. 可以根据键找到值。二、使用Map集合添加方法保存数据public V put(K key, V value):添加一个键值对,返回被替换掉的本来的value值。三、使用“键找值”的方式遍历Map集合首先拿到所...原创 2018-08-08 21:22:53 · 141 阅读 · 0 评论 -
Java基础之异常
一、异常的继承关系: Error:严重错误 Exception:编译异常,受检异常 |– RuntimeException:运行异常,非受检异常二、编译异常及运行异常:(1)编译异常: 1. 写上之后有红线 2. 要么try-catch处理 3. 要么throws甩锅(2)运行异常:写上之后...原创 2018-08-08 21:39:37 · 188 阅读 · 0 评论 -
Java基础之多线程之原理、实现方式及匿名内部类创建线程方法
进程:操作系统当中正在执行的一个程序。例如正在运行一个QQ。线程:进程之内多任务的执行单位。例如迅雷当中正在下载的多个电影。一、JVM当中:栈(Stack)内存是线程独立的,堆(Heap)内存是线程共享的。 (1)Java程序运行的时候至少有两个线程: 1)主线程(main方法执行的所在线程) 2)垃圾回收线程(gc线程) (2)Java当中...原创 2018-08-08 21:43:19 · 130 阅读 · 0 评论 -
组合与继承
文章目录继承组合组合继承对比如何选择继承继承是面向对象的三大特征之一(封装、继承、多态),也是实现软件复用的重要手段,继承是 “is-a” 的关系。优点代码复用子类可以重写父类的方法创建子类对象时,无需创建父类的对象,子类拥有父类的成员变量和行为。子类在父类的基础上可根据自己的业务需求拓展缺点破坏封装支持拓展,但往往以增加复杂度为代价不支持动态继承,在运行时...原创 2019-01-24 11:28:49 · 126 阅读 · 0 评论 -
前期绑定与后期绑定
文章目录概念举例说明概念绑定:一个方法的调用与方法的所在类【方法主体】关联起来前期绑定:final、static、private、构造方法、成员变量【包括静态及非静态】后期绑定:除了前期绑定之外的其他方法属于后期绑定,运行时能判断对象的类型进行绑定举例说明Person【人类】/** * 描述:人类 */class Person{ protected Strin...原创 2019-01-25 10:12:34 · 516 阅读 · 0 评论 -
Java基础之集合与迭代器
1、集合的继承体系2、集合的最高接口:java.util.Collection子接口List: 可以重复,有先后顺序,有索引值。 常用子类:ArrayList/LinkedList/Vector 子接口Set: 不能重复,不保证先后顺序,没有索引值。 常用子类:TreeSet/HashSet/LinkedHashSet3、集合概述数组和集合都是一种容...原创 2018-08-08 17:32:03 · 129 阅读 · 0 评论 -
Java基础资料整理
1、存储单元重点内容 2、命令提示符 基础资料整理链接原创 2018-08-08 16:10:50 · 753 阅读 · 0 评论 -
Java基础之多线程状态
一、线程状态概述二、状态关系原创 2018-08-09 22:26:09 · 99 阅读 · 0 评论 -
String类的equals()与“==”的区别
**一、String对象的两种生成方式**1、作为一个基本类型来使用String str = "abc";2、作为一个对象来使用,即使用new来进行创建,这时会分配一个新的内存堆String str1 = new String("abcdeeee");这两者区别 1. 首先,这两个对象并不是通过new来创建的,所以虚拟机并不会为这两个对象分...原创 2018-08-01 16:42:46 · 13847 阅读 · 1 评论 -
要求使用StringBuilder来完成打印由7,8,9三个数组成的三位数
要求使用StringBuilder来完成打印由7,8,9三个数组成的三位数**分析以下需求,并用代码实现: (1),要求该三位数中任意两位数字不能相同; (2)打印格式最后的三位数字以空格分隔,如789 798 879 897 978 987。** 实现方法如下:package homework;import java.text.SimpleD...原创 2018-08-01 16:46:32 · 3209 阅读 · 0 评论 -
Thinking in Java之前期绑定与后期绑定
点击原文链接查看原文转载 2018-08-01 17:13:01 · 133 阅读 · 0 评论 -
类中is-a、has-a与is-like-a的区别
在此先做一个极为简单的描述,有待补充。一、is-a概念is-a的意思是说:子类即父类。也就是子类在继承父类之后,并没有做任何异于父类的操作,比如并未添加新的内容。二、has-a概念has-a说的是一种包含关系,意思是说父类包含子类,比如人和心脏的关系,心脏属于人,但心脏并不是人。三、is-like-a概念is-like-a的意思是说:子类继承父类,但是有添加了新...原创 2018-08-11 20:10:13 · 822 阅读 · 0 评论 -
Java基础之多线程案例-单生产单消费
在讲单生产单消费之前,我们先来说一下线程间通信的问题一、 线程间通信概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。 比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。 为什么要处理线程间通信: 多个线程并发执行时, 在默认情况下CPU是随机...原创 2018-08-11 20:42:57 · 487 阅读 · 0 评论 -
Java基础之多线程-多生产多消费
使用场景请看上一篇博客Java基础之多线程-多生产多消费话不多说,直接上代码: 顾客:package cn.itcast.day07.demo02;public class MultiConsumer implements Runnable { private final Object LOCK; public MultiConsumer(Object lo...原创 2018-08-11 20:57:27 · 596 阅读 · 2 评论 -
Java基础之线程池
一、线程池概念线程池:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。二、工作原理三、合理利用线程池的好处降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。提高线程的可管理性。可以根据系统...原创 2018-08-13 08:53:50 · 142 阅读 · 0 评论 -
Java基础之File类、IO流以及Properties类
一、File基础内容Java中可以使用java.io.File类代表一个文件或文件夹,支持跨平台。三大系统File的表示方法: (1)Windows:D:\abc\Hello.java 可用反斜杠,也可用正斜杠 (2)Linux/MacOS:/Users/someone/Hello.java 仅支持正斜杠 (1)绝对路径:从Windows盘符开始,一个完整的路径。 (2)相对路径...原创 2018-08-13 09:08:11 · 142 阅读 · 0 评论 -
Singleton 最佳实践-单元素的枚举类型
接下来将分别介绍下实现 Singleton 的几种方法:第一种:双重校验锁【不推荐使用】public class Singleton{ private volatile static Singleton instance; private Singleton(){}; public static Singleton getInstance() { ...原创 2019-04-15 16:18:08 · 595 阅读 · 0 评论