无题
第一节1.1 类中的成分研究类中有且仅有五大成分:
成员变量(Field:描述类和对象的属性信息)
成员方法(Method:描述类或者对象的行为信息)
构造器(Constructor:初始化一个类的对象并返回引用)
代码块
内部类
1.2 this关键字this关键字:
this代表了当前对象的引用
this关键字可以用在实例方法和构造器中
this用在方法中,谁调用这个方法,this就代表谁
this用在构造器中,代表了构造器正在初始化的那个对象的引用
1.3 static关键字Java是通过成员变量是否有static修饰来区分是属于类的还是属于实例对象
成员变量:
静态成员变量:用static修饰的成员变量,属于类本身,直接用类名访问
实例成员变量:无static修饰的成员变量,属于每个对象,必须使用类的对象来访问
成员方法:
静态方法:用static修饰的成员方法,属于类本身,直接用类名访问
实例方法:无static修饰的成员方法,属于实例对象,必须使用类的对象来访问
语法形式:从语法形式上看,成员变量是属于类的,而局部变量是在代码块或方法中定义的变量或是方法的参 ...
JDK8特性-Stream流
函数式编程-Stream流1. 概述1.1 为什么学?
能够看懂公司里的代码
大数量下处理集合效率高
代码可读性高
消灭嵌套地狱
12345678910111213141516171819//查询未成年作家的评分在70以上的书籍 由于洋流影响所以作家和书籍可能出现重复,需要进行去重List<Book> bookList = new ArrayList<>();Set<Book> uniqueBookValues = new HashSet<>();Set<Author> uniqueAuthorValues = new HashSet<>();for (Author author : authors) { if (uniqueAuthorValues.add(author)) { if (author.getAge() < 18) { List<Book> books = author.getBooks(); ...
JUC相关知识点
1、进程和线程进程:把一个静态代码装载到内存中运行即可得到一个进程
线程:在进程中的执行单元,进程是最小的资源分配单元,线程是最小的执行单元
Java默认两个线程,一个Main线程,一个GC回收线程
Java实际上并不能开启线程,Thread.start方法最后调用native本地方法开启线程
并发编程:并发、并行
并发(多线程操作同一个资源)
CPU 一核 ,模拟出来多条线程,天下武功,唯快不破,快速交替
并行(多个人一起行走)
CPU 多核 ,多个线程可以同时执行; 线程池
12345678//获取CPU核数public class Test1 { public static void main(String[] args) { // 获取cpu的核数 // CPU 密集型,IO密集型 System.out.println(Runtime.getRuntime().availableProcessors()); }}
线程的几种状态(6种)
1234567891011121314public enum State ...
设计模式代码实现
单例模式
懒汉式单例
12345678910public class Hunger { //构造方法私有 private Hunger(){} //私有静态变量 private static final Hunger INSTANCE = new Hunger(); public static Hunger getInstance(){ return INSTANCE; }}
这种单例模式消耗资源,占用内存
饿汉式单例
1234567891011121314public class Lazy { private Lazy() { System.out.println(Thread.currentThread().getName() + "ok"); } private static Lazy INSTANCE; public static Lazy getInstance() { ...
IDEA远程调试Tomcat部署代码
1.在%CATALINA_HOME%\bin\catalina.bat中找到
1set "JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
注释替换为
1set "JAVA_OPTS=%JAVA_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
debug端口为8888
2.在IDEA配置远程debug
总结
总结基础
修饰符范围
修饰符
范围
private
只允许本类访问
缺省(default)
允许本类,同包访问
protected
允许本类,同包,子类访问
public
允许本类,同包,子类,全局访问
包装类型的缓存
Byte,Short,Integer,Long存在[-128,127]的缓存,Character存在[0,127]的缓存,Boolean直接返回True、False
自动拆箱装箱
12Integer i = 10 //等价于 Integer i = Integer.valueof(10)int n = i //等价于 int n = i.intValue()
静态变量、成员变量、局部变量
静态变量:被static修饰的成员变量,全局只有一份(指的内存分配),所有实例共享,只分配一次内存,类加载时分配
成员变量:成员变量如果被static修饰则为静态变量属于类,反之属于实例,实例化时分配内存,存放在堆中,可以被public,private,static 等修饰符所修饰
局部变量:局部变量则存在于栈内存,局部变量不能被访问控 ...