03 2021 档案

摘要:使用码云 生成公匙 注册账号,完善信息 设置本机绑定SSH公钥,实现免密码登录 生成公钥(链接:https://thoughts.aliyun.com/sharespace/5e8c37eb546fd9001aee8242/docs/5e8c37e7546fd9001aee81fe) ssh-key 阅读全文
posted @ 2021-03-04 10:09 PitayaWalk 阅读(30) 评论(0) 推荐(0)
摘要:已经有公匙了却链接不上 clone报错 解决,在要clone 的路径下使用bash 如下 会生成一个know_hosts文件。有了第一次之后第二次比较容易 阅读全文
posted @ 2021-03-04 10:08 PitayaWalk 阅读(23) 评论(0) 推荐(0)
摘要:Git 版本控制 版本控制系统(VCS)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 本地版本控制 记录每次文件的更新,可以每个版本做一个快照,或者是记录补丁文件,适合个人用,如RCS. 集中版本控制 所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的 阅读全文
posted @ 2021-03-04 10:03 PitayaWalk 阅读(9) 评论(0) 推荐(0)
摘要:使用线程池 背景:经常创建和销毁,使用量特别大的资源,比如并发情况下的线程,对性能影响很大 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁,实现重复利用。 好处 提高响应速度(减少创建新线程的时间) 降低资源消耗(重复利用线程池中线程,不需要每次都创建) 阅读全文
posted @ 2021-03-03 16:20 PitayaWalk 阅读(10) 评论(0) 推荐(0)
摘要:线程协作 除了锁以外,有时候还需要相互通行,并发协作模型如生产者消费者模型 第一种解决方式:管程法 生产者将生产好的数据放入缓冲区,消费者从缓冲区拿出数据 package gaoji; //测试生产者消费者模型-->利用缓冲区解决:管程法 //生产者,消费者,产品,缓冲区 public class 阅读全文
posted @ 2021-03-03 16:18 PitayaWalk 阅读(17) 评论(0) 推荐(0)
摘要:Lock锁 java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对象加锁,线程开始访问共享资源之前应先获得Lock对象 ReentrantLock(可重入锁)类实现了Lock,它拥有与sy 阅读全文
posted @ 2021-03-03 16:13 PitayaWalk 阅读(14) 评论(0) 推荐(0)
摘要:死锁 多个线程各自占有一些共享资源,并且相互等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。 某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题。 package thread; //死锁:多个线程相互抱着对方所需要的资源,然后形成僵 阅读全文
posted @ 2021-03-03 16:10 PitayaWalk 阅读(16) 评论(0) 推荐(0)
摘要:CopyOnWriteArrayList CopyOnWriteArrayList是Java并发包中提供的一个并发容器,它是个线程安全且读操作无锁的ArrayList,写操作则通过创建底层数组的新副本来实现,是一种读写分离的并发策略,我们也可以称这种容器为"写时复制器" https://www.cn 阅读全文
posted @ 2021-03-03 16:09 PitayaWalk 阅读(25) 评论(0) 推荐(0)
摘要:线程同步 多个线程操作同一个资源 并发:同一个对象被多个线程同时操作 形成条件:队列+锁 三大不安全案例 package syn; //不安全的买票 public class UnSafeBuyTicket { public static void main(String[] args) { Buy 阅读全文
posted @ 2021-03-03 16:08 PitayaWalk 阅读(14) 评论(0) 推荐(0)
摘要:守护线程 线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 //测试守护线程 //上帝守护你 public class TestDaemon { public static void main(String[] args) { God god = new G 阅读全文
posted @ 2021-03-03 16:06 PitayaWalk 阅读(23) 评论(0) 推荐(0)
摘要:线程优先级 线程的优先级用数字表示,范围从1~10: Thread.MIN_PRIORITY =1; Thread.MAX_PRIORITY = 10; Thread.NORM_PRIORITY = 5; 通过getPriority()和setPriority()方法控制 //测试线程的优先级 pu 阅读全文
posted @ 2021-03-03 16:05 PitayaWalk 阅读(11) 评论(0) 推荐(0)
摘要:观测线程状态 下面这段是帮助文档复制的 线程状态。线程可以处于以下状态之一: NEW 尚未启动的线程处于此状态。 RUNNABLE 在Java虚拟机中执行的线程处于此状态。 BLOCKED 被阻塞等待监视器锁定的线程处于此状态。 WAITING 正在等待另一个线程执行特定动作的线程处于此状态。 TI 阅读全文
posted @ 2021-03-03 16:04 PitayaWalk 阅读(8) 评论(0) 推荐(0)
摘要:线程强制执行 join Join合并线程,待此线程执行完成后,在执行其他线程,其他线程阻塞 //测试join方法,想象成插队 public class TestJoin implements Runnable{ @Override public void run() { for (int i = 0 阅读全文
posted @ 2021-03-03 16:03 PitayaWalk 阅读(10) 评论(0) 推荐(0)
摘要:线程状态 //测试stop //1.建议线程正常停止 >利用次数,不建议死循环 //2.建议使用标志位 >设置一个标志位 //3.不要使用stop或者destroy等过时或者JDK不建议使用的方法 public class TestStop implements Runnable{ //1.设置一个 阅读全文
posted @ 2021-03-03 16:02 PitayaWalk 阅读(16) 评论(0) 推荐(0)
摘要:Lamda表达式 避免匿名内部类定义过多 其实质属于函数式编程的概念 函数式接口的定义 任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口 对于函数式接口,我们可以通过lambda表达式来创建该接口对象 /* * 推导lambda表达式 * */ public class TestLam 阅读全文
posted @ 2021-03-03 08:47 PitayaWalk 阅读(16) 评论(0) 推荐(0)
摘要:静态代理 public class StaticProxy { //真实对象和代理对象都要实现同一个接口 //代理对象要代理真实角色 //好处: //代理对象可以做很多真实对象做不了的事情 //真实对象专注做自己的事情 public static void main(String[] args) { 阅读全文
posted @ 2021-03-03 08:33 PitayaWalk 阅读(14) 评论(0) 推荐(0)
摘要:初始并发问题 public class TestThread implements Runnable{ //多个线程同时操作同一个对象 //总数 private int ticketNums = 10; @Override public void run() { while (true){ if ( 阅读全文
posted @ 2021-03-03 08:31 PitayaWalk 阅读(15) 评论(0) 推荐(0)
摘要:第二种创建线程方法,实现runnable接口 定义MyRunnable 类实现Runnable 接口 实现run()方法,编写线程执行体 创建线程对象,调用start()方法启动线程 public class MyRunnable implements Runnable { @Override pu 阅读全文
posted @ 2021-03-03 08:30 PitayaWalk 阅读(16) 评论(0) 推荐(0)
摘要:网图下载 导入commons-io包 import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.net.URL; //联系Thread,实现多线程同步下载图 阅读全文
posted @ 2021-03-03 08:29 PitayaWalk 阅读(10) 评论(0) 推荐(0)
摘要:线程,进程 Process进程 Thread线程 进程是执行程序的一次执行过程,是系统分配资源的单位,一个进程可以有多个线程,至少有一个线程 第一种方法:继承Thread类 public class TestThread1 extends Thread{ @Override public void 阅读全文
posted @ 2021-03-03 08:26 PitayaWalk 阅读(12) 评论(0) 推荐(0)
摘要:异常 检查性异常 最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在的文件时,一个异常就发生了,这些异常在编译时不能被简单的忽略。 运行时异常 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。 错误 错误不是异常,而是脱离程 阅读全文
posted @ 2021-03-02 11:46 PitayaWalk 阅读(17) 评论(0) 推荐(0)
摘要:static 关键字 final之后无法继承 public class Person { //2.赋初值 { System.out.println("匿名代码块"); } //1.只执行一次 static { System.out.println("静态代码块"); } //3 public Per 阅读全文
posted @ 2021-03-02 11:44 PitayaWalk 阅读(10) 评论(0) 推荐(0)
摘要:封装,继承,多态 封装 程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。 记住:属性私有 get/set 隐藏内部实现,对外暴露接口 阅读全文
posted @ 2021-03-02 11:43 PitayaWalk 阅读(17) 评论(0) 推荐(0)
摘要:类与对象的关系 类是一种抽象的数据类型,对象是抽象概念的具体实例 类实例化后会返回一个自己的对象 Student student = new Student();//属性默认是null 创建与初始化对象 使用new关键字创建对象 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进 阅读全文
posted @ 2021-03-02 11:41 PitayaWalk 阅读(8) 评论(0) 推荐(0)
摘要:面向过程&面向对象 面向过程思想 步骤清晰简单,第一步做什么,第二步做什么.... 面向过程适合处理一些较为简单的问题 面向对象思想 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些类,然后对这些类分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思所。 面向对象适合处理复杂问题,适 阅读全文
posted @ 2021-03-02 11:40 PitayaWalk 阅读(5) 评论(0) 推荐(0)
摘要:Arrays类 冒泡排序,稀疏数组 Arrays类 数组的工具类java.util.Arrays Array类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用”使用对象来调用(注意:是“不用”,而不是“不能”) 具有以下常用功能:其他可见API 或者查看源代码 阅读全文
posted @ 2021-03-02 11:39 PitayaWalk 阅读(9) 评论(0) 推荐(0)
摘要:数组 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的先后次序排序组合而成 其中,每一个数据称作一个数组元素,每一个数组元素可以通过一个下标来访问它们 数组声明创建 int[] nums; // 声明一个数组,没有分配空间 nums = new int[10];//在内存里 阅读全文
posted @ 2021-03-02 11:38 PitayaWalk 阅读(15) 评论(0) 推荐(0)
摘要:递归 A方法调用B方法,我们很容易理解! 递归就是:A方法调用A方法,就是自己调用自己 利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递 阅读全文
posted @ 2021-03-02 11:37 PitayaWalk 阅读(9) 评论(0) 推荐(0)
摘要:可变参数 JDK 1.5开始,Java支持传递同类型的可变参数给一个方法 在方法声明中,在指定参数类型后加一个省略号(...)。 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。 有一个疑问:https://blog.csdn.net/THMAIL/art 阅读全文
posted @ 2021-03-02 11:27 PitayaWalk 阅读(8) 评论(0) 推荐(0)
摘要:方法 方法的定义 Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段。 形式参数:在方法被调用时用于接收外界输入的数据。 实参:调用方法时实际传给方法的数据。 方法的重载 重载就是在一个类中,有相同的函数名称,但形参不同的函数。 方法的重载的规则: 方法名称必须相同。 参数列表必须 阅读全文
posted @ 2021-03-02 11:26 PitayaWalk 阅读(13) 评论(0) 推荐(0)
摘要:打印三角形 public class Deme06 { public static void main(String[] args) { //打印三角形 5行 for (int i = 1; i <= 5; i++) {//限制在5行以内 for (int j =5;j>=i;j--){//每行前面 阅读全文
posted @ 2021-03-02 11:23 PitayaWalk 阅读(8) 评论(0) 推荐(0)
摘要:循环结构 while循环 while是最基本的循环,它的结构为: while( 布尔表达式){ //循环内容 } 只要布尔表达式为true,循环就会一直执行下去。 //输出1~100 int i = 0; while(i<100){ i++; System.out.println(i) } //死循 阅读全文
posted @ 2021-03-02 11:22 PitayaWalk 阅读(15) 评论(0) 推荐(0)
摘要:Java流程控制 顺序结构 Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行 顺序结构是最简单的算法结构 它是任何一个算法都离不开的一种基本算法结构 选择结构 if单选择结构 Scanner scanner = new Scanner(System.in); System.o 阅读全文
posted @ 2021-03-02 11:21 PitayaWalk 阅读(11) 评论(0) 推荐(0)
摘要:用户交互Scanner java.util.Scanner 扫描器 Scanner类来获取用户的输入 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要 使用hasNext()与hasNextLine()判断是否还有输入的数据 //创建一个扫描器对象, 阅读全文
posted @ 2021-03-02 11:20 PitayaWalk 阅读(14) 评论(0) 推荐(0)
摘要:字符串连接符 字符串连接符 + ,String int a = 10; int b = 20; System.out.println(" "+a+b); //输出结果为 1020 System.out.println(a+b +" "); //输出结果为 30 //观察" "的位置,这是一个细节问题 阅读全文
posted @ 2021-03-02 11:18 PitayaWalk 阅读(14) 评论(0) 推荐(0)
摘要:逻辑运算符,位运算符 && 与运算, || 或运算 ! 非运算 具有短路运算的特性 //短路运算 int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d); //结果为false System.out.println(c); //结果为 阅读全文
posted @ 2021-03-02 11:17 PitayaWalk 阅读(15) 评论(0) 推荐(0)
摘要:自增自减 ++ -- ,自增自减,一元运算符 int a = 3; int b = a++;//执行完这行代码后,先给b赋值,再自增 System.out.println(b)//3 System.out.println(a)//4 int c = ++a; //执行完这行代码前,先自增,再给c赋值 阅读全文
posted @ 2021-03-02 11:16 PitayaWalk 阅读(14) 评论(0) 推荐(0)
摘要:Java语言支持如下运算符 算数运算符: + , - , * , / , %(取余,模运算), ++, -- 赋值运算符: = 关系运算符: > ,< , >= , ⇐ , == ,!= ,instanceof 逻辑运算符: &&, ||, ! 位运算符: & , | , ^ , ~ , >>,<< 阅读全文
posted @ 2021-03-02 11:12 PitayaWalk 阅读(13) 评论(0) 推荐(0)
摘要:idea展开和折叠方法的快捷键 ctrl+,展开当前 ctrl-,收起当前 ctrl + shift +"+",展开全部 ctrl + shift +"-",收起全部 Ctrl + F 查找 Ctrl + R 替换 Ctrl + D 复制一份到下一行 转载有个很全的文章 https://blog.c 阅读全文
posted @ 2021-03-02 11:10 PitayaWalk 阅读(19) 评论(0) 推荐(0)
摘要:Typora + picGo +gitee 自动上传图片 参考视频:https://www.bilibili.com/video/BV1V54y197WH?from=search&seid=6244619457424449541 先找到偏好设置,图像,下载picGo(app) 安装以后如上图设置 下 阅读全文
posted @ 2021-03-02 11:04 PitayaWalk 阅读(8) 评论(0) 推荐(0)
摘要:变量 属性:变量 Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。 每个变量都有类型,类型可以是基本类型,也可以是引用类型 变量名必须是合法的标识符 变量声明是一条完整的语句,因此每一个声明都必须以分号结束 变量作用域 类变量(需要static 关键字,静态),调用直接变量 阅读全文
posted @ 2021-03-02 10:59 PitayaWalk 阅读(11) 评论(0) 推荐(0)
摘要:类型转换 强制转换 (类型)变量名 高到低 public class Demo1 { public static void main(String[] args) { int i = 128; byte b = (byte)i; System.out.println(i); System.out.p 阅读全文
posted @ 2021-03-02 10:58 PitayaWalk 阅读(10) 评论(0) 推荐(0)
摘要:数据类型 强类型语言 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用 弱类型语言 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用 Java的数据类型分为两大类 基本类型 引用类型 String 不是关键字,而是类 long类型要在数字后面加个L float类型要在数字后面 阅读全文
posted @ 2021-03-02 10:56 PitayaWalk 阅读(7) 评论(0) 推荐(0)
摘要:标识符注意点 所有的标识符都应该以字母,美元符$,或者下划线开始 首字符之后可以是字母,美元符,下划线,或者数字的任何字符组合 不能使用关键字作为变量名或方法名 标识符大小写敏感 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low 阅读全文
posted @ 2021-03-02 10:55 PitayaWalk 阅读(7) 评论(0) 推荐(0)
摘要:字体设置 语法 单行注释://注释 多行注释:/*注释*/ 文档注释/**注释*/ IntelliJ IDEA里面。快捷键。选中+Ctrl+/ 将选中变成注释。/* + Enter 多行注释 注释是给人看的,程序是不执行的 书写注释是一个非常好的习惯 public class HelloWorld 阅读全文
posted @ 2021-03-02 10:53 PitayaWalk 阅读(16) 评论(0) 推荐(0)
摘要:创建一个项目 选择一个Empty Project 选择好路径 新建模块 检查一下这边有没有爆红 ok 阅读全文
posted @ 2021-03-02 10:52 PitayaWalk 阅读(9) 评论(0) 推荐(0)
摘要:常用快捷键 Alt + F4 关闭窗口 Shift + delete 永久删除 windows + r 运行 windows + e 我的电脑 Ctrl + Shift + Esc 键 任务管理器 wondows + Tab 切换窗口 Crtl + Alt + A 截图 Crtl + Alt + S 阅读全文
posted @ 2021-03-02 10:50 PitayaWalk 阅读(33) 评论(0) 推荐(0)
摘要:Markdown学习 标题 三级标题 四级标题 字体 hello,World hello,world hello,world hello,world 加下划线可以内嵌html语句 我是变大的字 引用 就是左箭头 分割线 三个 还可以三个*** 图片 语法是!加上[名字]加上(地址) ![截图](C: 阅读全文
posted @ 2021-03-02 10:48 PitayaWalk 阅读(10) 评论(0) 推荐(0)