随笔分类 - 基础+进阶
摘要:练习_使用递归计算1-n之间的和 定义一个方法,使用递归计算1-n之间的和 1+2+3.。。。+n个数 n+(n-1)+(n-3)+...+1 已知: 最大值:n 最小值:1 使用递归必须明确 1递归的结束条件 获取到1的时候结束 2.递归的目的时什么 获取下一个被加的数字 案例: public c
阅读全文
摘要:File类遍历(目录功能) list:返回一个String数组,表示该File目录中的所有子文件或目录 LiistFiles:返回一个File数组,表示该iFile目录中的子文件或者目录 注意: list方法和listFiles方法遍历的是构造方法中给出的目录 如果构造方法中给出的目录的路径不存在,
阅读全文
摘要:判断功能的方法 exists:Flile表示文件或者目录是否实际存在 isDirectory:FIle表示是否为目录 isFile:此File表示的是否为文件 案例: public class FIle02 { /** * exists:Flile表示文件或者目录是否实际存在 * isDirecto
阅读全文
摘要:file的构造方法 /** * * new File(String pathname)通过给定的名字字符串为抽象来创建一个新的File实例 * 参数: * String pathname:字符串的路径名称 * 路径也可以是文件结尾,也可以是文件夹结尾 * 路径可以是存在也可以是不存在 * 创建FIl
阅读全文
摘要:File类的静态成员变量 pathSeparator与系统有关的路径分隔符,为了方便,它被表示一个字符串 pathSeparatorChar与系统有关的路径分隔符 separator 与系统有关的默认名称分隔符,为了方便,它被表示一个字符串。 separatorChar 与系统有关的默认名称分隔符。
阅读全文
摘要:Lambda省略格式和省略前提 Lamdba表达式:是可推导,可以省略的 凡是根据上下文推导出来的内容,都可以省略书写 可以省略的内容: 1(参数列表):括号中参数列表的数据类型,可以省略不写 2(参数列表):括号中的参数如果只有一半,那么类型和()都可以省略 3{一些代码}:如果{}中的代码只有一
阅读全文
摘要:练习_使用Lambda表达式无参数无返回值的练习 先定义一个接口: public interface Cook {// 无参数 public abstract void makeFood();} 在创建一个实现类: public class CookImpl { public static void
阅读全文
摘要:转换编程思想_体验Lambda更优的写法 我们以前写那么多方法,只是想把run方法传入Thadle,那么1.5jdk之后有了新的特性 Lambda表达式,我们来看一下 案例: public static void main(String[] args) {// 匿名內不类 new Thread( n
阅读全文
摘要:函数式编程思想 在数学中,函数就是输入量,输出量的一套计算方案,函数思想则尽量忽略面向对象的复杂语法-强调做什么,而不是用什么形式做 面向对象的思想: 做一件事,找一个能解决这个事情的对象,调用对象的方法完成事情 函数式编程思想: 只要能或者结果,谁去做,怎么做都不重要,重视结果不重视过程 冗余的R
阅读全文
摘要:线程池的代码实现 Executors:线程池的工厂类,用来生产线程 Executors中的静态方法: static ExecutorService newFixedThreadPool(int nThreads) 创建一个可重用固定线程集合的线程池,以共享的无界队列方式来运行这些线程 参数:int
阅读全文
摘要:等待唤醒机制代码实现_包子类&包子铺 注意点: 包子铺线程和包子线程关系-->通信(互诉) 必须同时同步技术保证俩个线程只能由一个进行 锁对象必须保证唯一,可以使用保证对象作为锁对象 包子对象和吃货的类就需要吧包子对象作为参数传递进来 1,需要在成员创建一个包子变量 2,使用带参数构造方法,为这个包
阅读全文
摘要:等待唤醒机制概述 图解: 等待唤醒机制概述需求分析
阅读全文
摘要:等待唤醒案例分析 画个图来解释一下; 代码实现等待唤醒案例 等待唤醒案例:线程之间的通信 创建一个顾客线程(消费者):告知老板要包子的种类,调用wait方法,放弃cpu的执行,进入到WAITNG状态(无线等待) 创建一个老板线程(生产者):花5秒做包子,做好包子后,调用notify方法,唤醒顾客吃包
阅读全文
摘要:解决线程安全_Lock锁 上一篇我们出现了线程安全问题,卖出了不存在的票和重复的票 解决安全问题:使用Lock锁 Lock接口中的方法: void lock获取锁 void unlcok 释放锁 使用步骤: 1,在成员位置创建一个Reentarantlock'对象 2,在可能会出现安全问题的代码前调
阅读全文
摘要:解决线程安全问题_同步方法 上一篇我们出现了线程安全问题,卖出了不存在的票和重复的票 解决安全问题:使用同步方法 使用步骤: 1,把访问了共享数据的代码抽取出来,方到了一个方法中 2,在方法添加了synchronized修饰符 格式: 修饰符 synchronozed 返回值 方法名(参数列表){
阅读全文
摘要:解决线程安全问题_同步代码块 上一篇我们出现了线程安全问题,卖出了不存在的票和重复的票 解决安全问题:使用同步代码块 格式synchronized(锁对象){ 可能出现线程安全问题的代码(访问了数据共享代码) } 注意:通过代码块中的锁对象,可以使用任意的对象 但是必须保证多个线程使用的锁对象是同一
阅读全文
摘要:安全问题的代码实现 public class Runnableimpl3 implements Runnable { private int aa =100; @Override public void run() {// 使用死循环买票一直执行 while (true){ if (aa>0){ S
阅读全文
摘要:匿名内部类的方式创建 匿名: 没有名字 内部类:写在其他内部的李 匿名内部类:简化代码 把子类继承父类,重写父类的方法,创建子类对象合成一步完成 匿名内部类的最终产物:子类,实现类对象,这个类没有名字 格式: new父类。接口(){ 重复父类中的接口方法 } 案例: public static vo
阅读全文
摘要:创建对线程的第二种方式_实现Runnable接口 Runnable接口应该由那些打通过某一线程执行其实列的类在实现,类必须定义一个称为run发无参方法 Thread (Runnable target)分配新的对象 Thread对象 Thread (Runnable target,String nam
阅读全文
摘要:Thread常用方法_sleep sleep:使当前线程一指定的毫秒数暂停(暂停停止执行) 案例: public class Thread1 extends Thread { @Override public void run() {// 获取名字 for (int i = 0; i < 20; i
阅读全文

浙公网安备 33010602011771号