java基础
一蓑烟雨任平生w
此去经年,应是良辰美景虚设。
展开
-
生产者消费者实现-java
//第一种同步互斥模型:生产者-消费者实现方式-管程法package _04;public class _4_08Cooperation { public static void main(String[] args) { SynContainer container = new SynContainer(); new Productor(container).start(); new Consumer(container).start()原创 2022-04-08 21:17:52 · 610 阅读 · 0 评论 -
synchronized锁机制同步
package _04;public class _4_01Synchronized { public static void main(String[] args) { //锁机制 synchronized机制 排他锁 //1.一个线程持有锁其他线程挂起 //2.加锁、去锁会引起性能问题 导致比较多的上下文切换和调度延时 //3.线程倒置 优先级高的等待优先级低的 //锁对象: this、static(锁模原创 2022-04-01 15:06:11 · 112 阅读 · 0 评论 -
线程的优先级设置和守护线程
package _03;public class _3_30ThreadPriority { public static void main(String[] args) { //线程调度器根据线程优先级进行调度,优先级高的被调度的可能性比较大 //线程优先级1-10 //1.NORM_PRIORITY = 5 //2.MAX_PRIORITY = 10 //3.MIN_PRIORITY = 1 S原创 2022-03-30 17:15:05 · 110 阅读 · 0 评论 -
线程状态切换
package _03;import java.text.SimpleDateFormat;import java.util.Date;public class _3_29ThreadStatus { public static void main(String[] args) throws InterruptedException { //新生-就绪-运行-阻塞-死亡 //new 则表示线程新生 //start 方法则表示线程进入就绪状态原创 2022-03-29 13:15:34 · 323 阅读 · 0 评论 -
线程Lambda表达式
package _03;//想要自己写lamda 推导 必须要求接口只有一个未实现的方法public class _3_29Lamda { //1.静态内部类 //好处是不适用_3_29Lamda类 不会编译我们的内部类// static class Test implements Runnable{// @Override// public void run() {// System.out.println("我原创 2022-03-29 11:01:52 · 536 阅读 · 0 评论 -
创建多线程的三种方法
package _03;import java.util.concurrent.*;public class _3_26MultThread { public static void main(String[] args) throws ExecutionException, InterruptedException { //创建多线程三种方法: 继承Thread类、实现Runnable接口、实现Callable接口(重点前两种,第三种是JUC包下的) //t原创 2022-03-28 10:15:44 · 154 阅读 · 0 评论 -
RandomAccessFile 文件分解 合并 CommonsIO
package _03;import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;import java.util.ArrayList;import java.util.List;//面向对象的思想封装public class _3_26SplitFile { //1.源头 private File src; //2.目的地 private String d原创 2022-03-26 13:33:19 · 545 阅读 · 0 评论 -
文件流和对象流(序列化)打印流
package _03;import java.io.*;import java.nio.charset.StandardCharsets;public class _3_25DataStream { public static void main(String[] args) throws IOException {// 方便处理八的基本数据类型// 直接获取,不需要我们以后强转了// File、ByteArray 属于底层的节点流//原创 2022-03-25 21:11:03 · 621 阅读 · 0 评论 -
IO处理流
package _03;import java.io.*;public class _3_23BufferInputStream { public static void main(String[] args) {// 1.性能// 2.底层还是节点流// 3.直接关闭处理流,内部自动关闭内部流// 原理:提供默认的缓存,默认缓存内存为8k,也可以自己设定,当缓存满了则再进行传输 File file = new原创 2022-03-23 14:24:20 · 327 阅读 · 0 评论 -
ByteArrayInputStream and 文件转成字节数组再转回
package _03;import java.io.*;import java.nio.charset.StandardCharsets;public class _3_21ByteArrayInputStream { public static void main(String[] args) {// FileInputStream是请求操作系统进行的// 而ByteArray是虚拟机中的一块内存,GC管理,所以可以不需要关闭流// 所原创 2022-03-21 15:13:22 · 1501 阅读 · 0 评论 -
编码解码、IO流、文件拷贝
package _03;import java.io.IOException;public class _3_17Decode { public static void main(String[] args) throws IOException {// 1.IO流是以程序为中心,输入到程序,从程序输出// 2.JAVA.IO包中主要是五个类、三个接口——File、InputStream、OutputStream、Reader、Writer、Closeable原创 2022-03-18 17:04:50 · 207 阅读 · 0 评论 -
使用容器存储表格
原创 2022-03-17 08:05:49 · 312 阅读 · 0 评论 -
Collections容器辅助方法
package _03;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class _3_16Collections { public static void main(String[] args) {// java.util.Collections提供了对list、set、map、的遍历、排序查找的辅助方法 List<Stri原创 2022-03-16 19:03:00 · 562 阅读 · 0 评论 -
遍历容器的几种方式
package _03;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class _3_16Traverse { public static void main(String[] args) { // 1.for循环遍历 List<String> list = new ArrayList<>();原创 2022-03-16 18:20:55 · 1182 阅读 · 0 评论 -
Iterator遍历List和Map
package _03;import java.util.*;public class _3_15Iterator { public static void main(String[] args) {// Collection其实已经实现迭代器了// hasNext and Next方法// List<String> list = new ArrayList<>();// list.add("wei");//原创 2022-03-15 18:39:35 · 401 阅读 · 0 评论 -
Set(手写)
package _03;import java.util.HashMap;import java.util.HashSet;import java.util.Set;import java.util.TreeSet;public class _3_15Set { public static void main(String[] args) {// set无序且不可重复// 无序指的是set中的元素没有索引,只能遍历查找// 不可重复指的是原创 2022-03-15 17:03:02 · 421 阅读 · 0 评论 -
TreeMap的原理和使用
package _03;import java.util.Map;import java.util.TreeMap;public class _3_15TreeMap { public static void main(String[] args) {// 一般也不用TreeMap,排序的时候多用TreeMap// TreeMap底层采用了红黑二叉树// Map<Integer,String> treemap = new Tre原创 2022-03-15 16:28:41 · 492 阅读 · 0 评论 -
手写HashMap
package _03;import java.util.HashMap;import java.util.Map;public class _3_14_2Demo { public static void main(String[] args) {// Map<Integer,String> map = new HashMap<>();//// map.put(1,"one");// map.put(2,"tw.原创 2022-03-14 14:02:12 · 1285 阅读 · 0 评论 -
手写LinkedList Vector
package _03;import java.util.LinkedList;public class _3_10Demo {// LinkedList: 底层由双向链表构成 查询效率低 增删效率高 线程不安全 private Node first; private Node last; private int size; public void add(Object obj){ Node node = new Node(obj);原创 2022-03-10 17:28:22 · 339 阅读 · 0 评论 -
java容器(collection) 手写ArrayList
package _03;import java.util.ArrayList;import java.util.Collection;public class _3_05Demo {public static void main(String[] args) {// 容器// 1.泛型 数据类型的占位符 编译器层次// MyCollection mc = new MyCollection<>();// mc.setObj..原创 2022-03-05 11:12:11 · 215 阅读 · 0 评论 -
java 异常机制(Exception)
import java.util.Arrays;public class _3_01_2Demo { private int age; public static void main(String[] args) {// 1.异常// RnntimeException 运行时报错 需要我们认为改变 编译器能通过// String s = null;// System.out.println(s.length()); ...原创 2022-03-01 13:03:12 · 160 阅读 · 0 评论 -
File类和递归遍历目录结构
import java.io.File;import java.io.IOException;public class _3_01Demo { public static void main(String[] args) throws IOException {// File类的使用 :抽象代表我们的文件和目录// File f =new File("d:/a.txt");// System.out.println(f); //输出路径//原创 2022-03-01 12:43:13 · 211 阅读 · 0 评论 -
Date类和Calendar类
import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Random;public class _2_28_2Demo { public static v.原创 2022-02-28 19:33:53 · 276 阅读 · 0 评论 -
包装类-StringBuilder类
public class _2_28Demo { public static void main(String[] args) {// 1.包装类// 八个基本类型对应的包装类// 基本数据类型转换成对象// Integer a = new Integer(1);// Integer b = Integer.valueOf(2);// 对象转成基本类型// int n = b.intVa原创 2022-02-28 16:51:43 · 72 阅读 · 0 评论 -
排序和查找
import java.util.Arrays;public class _2_25bDemo { public static void main(String[] args) { int[] values={6,1,7,2,8,0,9,3,5,4}; testBubbleSort(values); int index=testBinarySearch(values,6); System.out.println(index);原创 2022-02-25 19:51:38 · 300 阅读 · 0 评论 -
字符串和数组
数组数组的长度是确定的,一旦创建好大小就不改变了。元素相同且有序数组类型可以是任何类型数组本来就是对象,数组中每个元素都可以看做成员变量。 //5.数组// 声明数组 int[] arrays; int[] arr2 = new int[10];// 5.1静态初始化 int[] a={1,2,3}; User[] u={new User(1),new User(2)};//原创 2022-02-25 17:08:02 · 333 阅读 · 0 评论 -
java内部类
public class _2_24Demo { public static int number=100; public static void main(String[] args) {// 1.内部类只为外部类服务,它可以随意访问外部类。// Outer.inner in = new Outer().new inner();// in.TestInner();// 2.静态内部类// Outer.I.原创 2022-02-25 16:51:56 · 43 阅读 · 0 评论