1.Lambda表达式时Java 8新增的特性.Lambda表达式支持将代码块作为方法参数,Lambda表达式允许使用更简洁的代码创建只有一个抽象方法的接口(即函数式接口)的实例. 2.当使用Lambda表达式代替匿名内部类创建对象时,Lambda表达式的代码块会代替实现抽象方法的方法体,Lambda表达式就相当于一个匿名方法.Lambda表达式由3部分组成: 1>形参列表:形参列表允许省略形参类型.如果形参列表中只有一个参数,甚至连形参列表的圆括号也可以省略. 2>箭头(->):必须通…
接上面的方法引用和构造器引用: 3>引用某类对象的实例方法 @FunctionalInterface public interface Cut{ String cut(String str,int b,int c); } ... //创建一个匿名对象 Cut cut= (str,b,c) -> str.substring(b,c); String val=cut.cut("Tomcat",0,3); System.out.println(val); ------------…
一:局部变量和实例变量 定义变量是指设定变量的数据类型和变量的名字,Java语言要求变量遵循先定义,再初始化,然后使用的规则. 作用域:指它的存在范围,只有在这个范围内,程序代码才能访问它. 变量的生命周期是指从一个变量被创建并分配内存空间开始,到这个变量被销毁并清除其所占用内存空间的过程. 局部变量(参数变量也可以看成是局部变量): 1)位置:定义在方法中或者在方法中的{} 2)使用:先赋值后使用 3)作用域:定义的方法中或者定义的{}中 4)生命周期:从变量的定义到方法调用结束 局部变量的例…
Java线程的状态有6种 1.  初始(NEW):新创建了一个线程对象,但还没有调用start()方法. 2.  运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”.(什么是就绪) 线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法.该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready).(什么是运行)就绪状态的线程在获得CPU时间片后变为运行中状态(runni…
1.JDK https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 目前主流的JDK版本还是JAVA8,我在阿里用的也是Java8. JDK里已经包含了JRE也就是Java虚拟机和运行环境,无需另外下载安装. 2.MySQL 和 Navicat for MySQL 数据库一般还是用免费的MySQL,这里推荐8.0以上的版本,具体怎么安装可以看这篇文章:https://mp.csdn.…
Java并发之显式锁和隐式锁的区别 在面试的过程中有可能会问到:在Java并发编程中,锁有两种实现:使用隐式锁和使用显示锁分别是什么?两者的区别是什么?所谓的显式锁和隐式锁的区别也就是说说Synchronized(下文简称:sync)和lock(下文就用ReentrantLock来代之lock)的区别. 本文主要内容:将通过七个方面详细介绍sync和lock的区别.通过生活case中的X二代和普通人比较大家更容易理解这两者之间的区别 Java中隐式锁:synchronized:显式锁:lock…
这篇文章总结一下我认为面试中最应该掌握的关于基本类型和引用类型的面试题目. 面试题目1:值传递与引用传递 对于没有接触过C++这类有引用传递的Java程序员来说,很容易误将引用类型的参数传递理解为引用传递,而基本类型的传递理解为值传递,这是错误的.要理解值传递与引用传递,首先要理清值传递.引用传递与指针传递三个概念. 值传递与引用传递最重要的就是看在传递的过程中,值是否发生了复制.在Java中没有指针的概念,但是引用类型做为参数进行传递时,JVM将其实现为指针传递,那么重点就是搞清楚指针传递到底…
一:什么是线程池? java 线程池是将大量的线程集中管理的类,包括对线程的创建,资源的管理,线程生命周期的管理.当系统中存在大量的异步任务的时候就考虑使用java线程池管理所有的线程.减少系统资源的开销. 二:线程池工厂类有多少种? java1.8 的官方文档提供了三种线程池工厂类,每种线程池工厂类型对应不同线程管理方式(策略). newCachedThreadPool(自动废弃回收): 当有可用的空闲线程,优先使用空闲线程,当没有可用的空闲线程的时候就创建新的线程.空闲线程超过60s没有被使…
Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式推出. Java分为三个体系: JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版) JavaME(J2ME)(Java 2…
还是那句话,学习某个知识一定要想想为什么要学它,这方面的知识用来解决什么问题的,怎么用,并且要总结的体系化,不能散的到处都是,方便以后查看博客. 今天参考廖雪峰老师官网学习并总结下泛型廖老师官网 1.什么是泛型 1.1引出泛型 泛型是一种"代码模板",可以用一套代码套用各种类型. 在讲解什么是泛型之前,我们先观察Java标准库提供的ArrayList,它可以看作"可变长度"的数组,因为用起来比数组更方便. 实际上ArrayList内部就是一个Object[]数组,配…