随笔分类 - java学习历程
这里记录的随笔是我java学习的历程,里面点点滴滴,风风雨雨有待君的见证,开始于201616.6.7 22:12 于实验室的一个晚上
摘要:import java.util.*; /* 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。 比如:存人对象。同姓名同年龄,视为同一个人。为重复元素。 思路: 1,对人描述,将数据封装进人对象。 2,定义容器,将人存入。 3,取出。 List集合判断元素是否相同,依据是元素的equals方法。 */ class Person { privat...
阅读全文
摘要:import java.util.*; /* 去除ArrayList集合中的重复元素。 */ class ArrayListTest { public static void sop(Object obj) { System.out.println(obj); } public static void main(String[] args...
阅读全文
摘要:/* 使用LinkedList模拟一个堆栈或者队列数据结构。 堆栈:先进后出 如同一个杯子。 队列:先进先出 First in First out FIFO 如同一个水管。 */ import java.util.*; class DuiLie { private LinkedList link; DuiLie() { link = new...
阅读全文
摘要:import java.util.*; /* LinkedList:特有方法: addFirst(); addLast(); getFirst(); getLast(); 获取元素,但不删除元素。如果集合中没有元素,会出现NoSuchElementException removeFirst(); removeLast(); 获取元素,但是元素被删除。如果集合中没有元素,会出现NoSuchE...
阅读全文
摘要:import java.util.*; /* 枚举就是Vector特有的取出方式。 发现枚举和迭代器很像。 其实枚举和迭代是一样的。 因为枚举的名称以及方法的名称都过长。 所以被迭代器取代了。 枚举郁郁而终了。 */ class VectorDemo { public static void main(String[] args) { Vector ...
阅读全文
摘要:/* Collection |--List:元素是有序的,元素可以重复。因为该集合体系有索引。 |--ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快。但是增删稍慢。线程不同步。 |--LinkedList:底层使用的链表数据结构。特点:增删速度很快,查询稍慢。线程不同步。 |--Vector:底层是数组数据结构。线程...
阅读全文
摘要:import java.util.*;/* Collection定义了集合框架的共性功能。1,添加 add(e); addAll(collection);2,删除 remove(e); removeAll(collection); clear();3,判断。 contains(e); isEmpty
阅读全文
摘要:/*1,模拟一个trim方法,去除字符串两端的空格。 思路: 1,判断字符串第一个位置是否是空格,如果是继续向下判断,直到不是空格为止。 结尾处判断空格也是如此。 2,当开始和结尾都判断到不是空格时,就是要获取的字符串。2,将一个字符串进行反转。将字符串中指定部分进行反转,"abcdefg";abf
阅读全文
摘要:/*String类用于描述字符串事物的那么它就提供了多个方法对字符串进行操作方法都会用,字符串这块就结束了常见的操作有哪些?“abcd”它应该具备什么功能,我们才能更好得操作它?1.获取(必须要掌握) 1.1 字符串中包含的字符数,也就是字符串的长度 int length() 然而数组也有长度,数组
阅读全文
摘要:/*join:当A线程执行到了B线程的.join()方法时,A就会等待。等B线程都执行完,A才会执行。join可以用来临时加入线程执行。1.线程使用join方法,主线程就停下,等它执行完,那么如果该线程冻结了,主线程就挂了,这也是为什么线程要抛异常的原因2.当两个或以上线程开启了,这个A线程才使用j
阅读全文
摘要:/*1.让各个对象或类相互灵活交流2.两个线程都冻结了,就不能唤醒了,因为根据代码要一个线程活着才能执行唤醒操作,就像玩木游戏3.中断状态就是冻结状态4.当主线程退出的时候,里面的两个线程都处于冻结状态,这样就卡住了5.try catch 有异常,catch就自动帮忙处理,程序继续运行6.让wait
阅读全文
摘要:/*1.让各个对象或类相互灵活交流2.两个线程都冻结了,就不能唤醒了,因为根据代码要一个线程活着才能执行唤醒操作,就像玩木游戏3.中断状态就是冻结状态4.当主线程退出的时候,里面的两个线程都处于冻结状态,这样就卡住了5.try catch 有异常,catch就自动帮忙处理,程序继续运行6.让wait
阅读全文
摘要:import java.util.concurrent.locks.*;/*1.新的解锁,上锁操作,据说是jdk5.0升级版,以前的枷锁,解锁都是隐藏的,默认的,现在变成显式2.新的异常处理方式 这次增多了一个上锁就不是内部处理等待异常了,主动抛?3.再增,两个什么生产者,消费者都是对这个类的数据进
阅读全文
摘要:/*1.增加一个知识点一个类怎么在所有的类中,让其它类来共同修改它的数据呢?可以用单例设计模式可以用静态可以在其它类中做一个构造函数,接受同一个对象,这样就可以实现对象2.状态选择可以用数字0 1 判断可以用bool注意变量的范围即可3.加了同步后,还是有安全怎么办?想前提! 1. 两个及以上线程(
阅读全文
摘要:class ProducerConsumerDemo { public static void main(String[] args) { Resource r = new Resource(); Producer pro = new Producer(r); Consumer con = new
阅读全文
摘要:一、多线程-同步函数的锁是this /*同步函数用的是哪一个锁呢?函数需要被对象调用。那么函数都有一个所属对象引用。就是this。所以同步函数使用的锁是this。通过该程序进行验证。使用两个线程来买票。一个线程在同步代码块中。 这两个的锁不一样一个线程在同步函数中。都在执行买票动作。*/class
阅读全文
摘要:/*需求:银行有一个金库有两个储户分别存300元 每次存100元,存3次目的:该程序是否有安全问题,如果有,如何解决?如何找问题(很重要)1.明确哪些代码是多线程运行代码2.明确共享数据3.明确多线程代码中那些语句是操作共享数据的*/class Bank{ object obj=new object
阅读全文
摘要:/*多线程的安全问题1.为什么会出现安全问题?因为程序在运行时,会出现一个线程在判断条件满足后,具备了执行资格,但没有运行代码后一个线程也判断了条件,也具备了执行资格,后一个线程运行了代码,但这时候,线程运行的条件不满足了这时候,就出现了安全问题2.实现接口线程的方法不能抛出异常!*//*运行情况通
阅读全文
摘要:/*多线程的安全问题1.为什么会出现安全问题?因为程序在运行时,会出现一个线程在判断条件满足后,具备了执行资格,但没有运行代码后一个线程也判断了条件,也具备了执行资格,后一个线程运行了代码,但这时候,线程运行的条件不满足了这时候,就出现了安全问题2.实现接口线程的方法不能抛出异常!*//*运行情况通
阅读全文