![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
杨儿的聪明难以想象
冲冲冲!
展开
-
选择排序(选择排序,堆排序)
1.选择排序package 选择排序;import java.util.Arrays;/** * User:yang * 时间复杂度好坏都是O(n^2) * 空间复杂度O(1) * 稳定性:不稳定 */public class xuanzepaixu { public static void selectSort(int[] array){ for (int i = 0; i < array.length-1; i++) { for原创 2021-09-12 13:03:38 · 86 阅读 · 0 评论 -
semaphore
import java.util.concurrent.Semaphore;/** * User:yang */public class Thread{ public static void main(String[] args) throws InterruptedException { //c初始5 Semaphore semaphore = new Semaphore(5); //p,申请1 semaphore.acqu原创 2021-09-08 13:29:52 · 144 阅读 · 0 评论 -
归并排序,递归,稳定
package 归并排序;import java.util.Arrays;/** * User:yang */public class guibing { /** * 时间复杂度: * 最好:n*log2(n)(堆排序,快速排序,归并都是)//快排不适合有序序列 * 空间复杂度: * 最好:O(n) * 稳定性: 不稳定 * * @param array * @param low * @par原创 2021-09-12 15:48:02 · 88 阅读 · 0 评论 -
插入排序(直接插入排序,希尔排序)
1.直接插入排序1.1图示:1.2题解import java.util.Arrays;/** * User:yang * 插入排序:数据越有序效率越高 * 时间复杂度: * 好O(n),数据有序 * ,坏O(n^2)数据逆序 * 空间复杂度O(1) * 稳定性:稳定 */public class inserSort { public static void insertSort(int[] array) { for (int i = 1; i <原创 2021-09-12 11:04:53 · 66 阅读 · 0 评论 -
synchronized
开始是乐观锁,如果竞争激烈会变成悲观锁开始是轻量级锁,如果竞争激烈会变成重量级锁synchronized的轻量级锁,是基于自旋锁的方式实现的是非公平锁是可重入锁不是读写锁原创 2021-09-07 23:11:35 · 60 阅读 · 0 评论 -
多线程案例,单例模式,阻塞队列,定时器
多线程案例1.单例模式1.1定义1.2实现1.2.1饿汉模式1.2.2懒汉模式1.3如何保证懒汉模式线程安全2.阻塞队列2.1定义2.1.1生产着消费者模型1.单例模式1.1定义是一种设计模式,在代码中有些对象应该只有一个实例,就称为“单例”eg:数据库的DataSource应该就是一个单例有些负责加载数据到内存的类也应该是单例强制性某个类只有一个实例1.2实现主要依托于static关键字,静态成员1.2.1饿汉模式/** * User:yang */public clas原创 2021-09-06 19:21:20 · 224 阅读 · 0 评论 -
多线程编程入门
多线程编程1.线程1.线程线程被称为“轻量级进程”每个线程对应一个独立的执行流一个进程包含了多个线程,线程共享进程的资源进程有独立性线程如果出了问题,可能会影响进程。创建线程的开销比创建进程小进程是系统分配资源的最小单位,线程是系统调度的最小单位。一个进程内的线程之间是可以共享资源的。...原创 2021-09-04 23:25:26 · 81 阅读 · 0 评论 -
单向链表和LinkList
单向链表和LinkList1.插入:2.删除最后一个节点3.LinkedList内部是带环的单链表1.插入:单向链表已知前一个位置(引用的方式来提供),执行插入操作,时间复杂度:O(1)。LinkedList已知前一个位置(告诉下标,根据下标遍历),执行插入操作,时间复杂度:O(N)。2.删除最后一个节点单向链表 执行删除最后一个节点操作,时间复杂度:O(N)。LinkedList 执行删除最后一个节点操作,时间复杂度:O(1)。3.LinkedList内部是带环的单链表...原创 2021-09-04 21:29:22 · 119 阅读 · 0 评论 -
JVM,虚拟机,垃圾回收机制
虚拟机1.JVM2.内存区域划分1.JVMJava Virtual Machine的简称。意为Java虚拟机。2.内存区域划分堆(空间最大):new的对象都在这,方法区:类对象栈:JVM栈和本地方法栈程序计数器:只放了一个内存地址...原创 2021-09-09 01:46:53 · 78 阅读 · 0 评论 -
多线程重点---线程安全
多线程重点---线程安全1.线程不安全的原因2.线程安全解决2.1synchronized2.1volatile1.线程不安全的原因1.多线程执行模式是:“抢占式执行”2.多个线程修改同一个变量,修改中可能出现bug3.一个线程修改,一个线程读取,读取的内容可能出现bug4.操作不是原子性的(eg:不是原子的:i++,i–,i*=10先读在修改,再写回内存,if(i==10)i=20先读在判定,再写回内存)5.内存可见性(编译器+jvm会优化 )6。指令重排序(编译器原创 2021-09-06 15:19:37 · 55 阅读 · 0 评论 -
多线程---中,创建方法,终端,属性,线程安全(重点),
1.创建线程1.继承自Thread,重写run方法,2.实现runnable接口,把runnable接口的实例赋值给Threadimport java.util.TreeMap;/** * User:yang */class MyTask implements Runnable{ @Override public void run() { while (true){ System.out.println("hello");原创 2021-09-05 13:34:02 · 114 阅读 · 0 评论 -
交换排序(冒泡排序,快速排序)
1.冒泡排序package 交换排序;import java.util.Arrays;/** * User:yang * * 冒泡排序 * * 时间复杂度:O(n^2) * * 空间复杂度:O(1) * * 稳定性: 稳定 */public class bubbleSort { public static void bubbleSortmethod(int[] array) { for (int i = 0; i < arr原创 2021-09-12 15:47:21 · 234 阅读 · 0 评论 -
多线程重点---synchronized用法
1.synchronized解决:原子性,内存可见性,指令重排序使用场景:一读一写,多写,缺点:重量本质上是加锁,针对某个对象加锁,只有一个线程能获取到该对象的锁,其他线程只能阻塞等待实际上就是把并发变成了串行,除去了抢占式执行带来的随机性2.synchronize(关键字) 监视器锁(atm取钱)功能:保证操作的原子性,禁止指令重排序,保证内存可见性3.2修饰一个方法相当于加了LOCK,UNLOCK synchronized public void increase(原创 2021-09-07 17:07:47 · 187 阅读 · 0 评论 -
类和对象
import java.security.PublicKey;class Student { private String name; private int age=9; private String sex; public static int count=8; //静态代码块只执行一次 static { count=888; System.out.println("静态代码块"); } {原创 2021-05-10 19:23:59 · 52 阅读 · 0 评论 -
Java入门
第一天打卡。/** * 文档注释,使用在方法前或者类的前面 * * @author Lenovo *///行注释public class TestDemo { /** * 这是一个入门程序 * * @param args */ public static void main(String[] args) { boolean flg =true; boolean flg2=false; //原创 2021-04-29 13:48:02 · 53 阅读 · 0 评论 -
Java 基础
public class TestDemo { public static void main(String[] args) { } public static void main19(String[] args) { for (int year = 1999; year <= 2020; year++) { if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0原创 2021-04-30 22:17:06 · 76 阅读 · 2 评论 -
异常(简单实现用户登录)
import java.util.Scanner;/** User:yang */class MyException extends RuntimeException { // 运行时异常 public MyException(String message) { super(message); }}class UserError extends Exception { // 受查异常(编译时期的异常) public UserError(String message) {原创 2021-06-24 19:02:05 · 77 阅读 · 0 评论 -
继承多态
继承,多态日期:2021.5.20心情:我爱学习(赚钱bushi)!普通类和抽象类区别抽象类可以被继承,也可以发生向上转型,动态绑定。抽象类不可以被实例化。抽象类当中的方法一定要被子类重写。抽象类存在的意义就是为了被继承。如果是抽象类继承了一个抽象类,那么可以不重写这个抽象方法,但是,如果这个抽象类再次被一个普通类继承,那么一定要重写。抽象方法不能被private修饰。抽象类可以包含普通方法。抽象类不能被final修饰接口使用关键字interface。接口中的方法默认是pu原创 2021-05-20 21:20:32 · 60 阅读 · 0 评论 -
Java 中对于字段和方法共的四种访问权限 private,default,protected,public
private: 类内部能访问, 类外部不能访问default:默认(也叫包访问权限): 类内部能访问, 同一个包中的类可以访问, 其他类不能访问.protected: 类内部能访问, 子类和同一个包中的类可以访问, 其他类不能访问.public : 类内部和类的调用者都能访问...原创 2021-09-14 13:05:09 · 524 阅读 · 0 评论