java基础复习
文章平均质量分 69
兰交余文乐
励志成为一名合格的coder
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线程池(ThreadPoolExecutor)、Executors线程池工具类、volatile关键字、Lock与synchronized的区别
线程池(ThreadPoolExecutor)顶级接口Executor: 定义了execute(Runnbale command)接口 子接口ExecutorService 最常用实现类:ThreadPoolExecutor1.构造器讲解调用构造器并不会马上创建线程,当调用execute方法时才会去创建线程。类似于延时加载corePoolSize:核心线程数maximumPoolSize:最大线程数keepAlivTime:临...原创 2021-10-31 21:22:03 · 535 阅读 · 0 评论 -
ThreadLocal详细讲解
public class ThreadLocalTest { private String content; public String getContent() { return content; } public void setContent(String content) { this.content = content; } public static void main(String[] args) { ThreadLocalTest tt=new.原创 2021-10-29 11:32:41 · 350 阅读 · 0 评论 -
JDK1.8新特性-stream
jdk1.8新特性之StreamAPIStreamAPI可以用来干什么?Collection是用来在内存中存储数据,而StreamAPI则可以在CPU层面上进行计算怎么使用StreamAPI?使用细节:①不会存储值②不会改变源数据,返回一个新的stream③延时操作,只有当写了终止操作才会执行主要从两个方面:①如何实例化②如何使用方法1.Collection中的stream()方法2.Arrays中的stream()方法3.Stream中的of()方法4.Stream中的原创 2021-10-26 21:44:09 · 168 阅读 · 0 评论 -
JDK1.8新特性-lambda表达式
jdk1.8新特性一、jdk1.8新特性之lambda表达式我们先来看一段代码,再来分析lambda表达式@Test public void test1() { // Runnable接口是一个函数式接口,最常规的实例化方式即匿名实现类的 Runnable runnable=new Runnable() { @Override public void run() { // TODO 自动生成的方法存根 System.out.println("我爱北京天安原创 2021-10-26 20:16:15 · 469 阅读 · 0 评论 -
Java基础之反射
反射想必大家都听过一句话,框架=注解+反射+设计模式,由此可见反射的重要性。什么是反射?我的理解是:Java应用程序运行的步骤是:①由javac.exe将.java文件编译成.class文件 ②由java.exe将.class字节码文件解释运行。反射就是通过内存中的.class文件对象获取该类的内部结构,并且可以创建该类的实例,调用此对象的属性和方法。怎么使用反射?就需要使用到Java.lang.Class类Class类的对象可以是:①类②接口③枚举④数组⑤注解⑥基本数据类型⑦voi原创 2021-10-22 18:18:48 · 252 阅读 · 0 评论 -
Java基础之序列化和RandomAccessFile
1.什么是序列化机制?序列化:将内存中的java对象转化成与平台无关的二进制流,将其持久化到磁盘中或者将其网络传输到另一个节点反序列化:序列化的逆过程,将磁盘中的存储的java对象或者网络中传输的java对象转化成内存中的java对象。2.如何实现序列化①实现Serializable接口②设置序列版本号③属性也是可序列化的注意细节:①static、transient修饰的属性不可序列化②若没有显示的设置序列版本号,系统将默认提供一个。若对属性进行修改等操作,导致默认提供的原创 2021-10-20 17:28:45 · 154 阅读 · 0 评论 -
Java基础之IO流
Java之File类File类对象表示一个文件或者文件目录File的构造器File常用方法:@Test public void fileTest() { //1.new File(String path) File file=new File("hello.txt"); //相对路径,相对于当前文件下 File f1=new File("D:\\eclipse\\review\\io\\hello.txt"); // 绝对路径,相较于根目录 //2.ne..原创 2021-10-17 17:47:19 · 162 阅读 · 0 评论 -
Java基础之map
Map接口的实现类:双列数据,存储key-value一、HashMap:ket->Set类型,value->Collection类型,Entry->Set类型1.首先HashMap是线程不安全的,效率高,key和value可以存储null2.底层实现:jdk1.7中:数组+链表jdk1.8中:数组+链表+红黑树当new HashMap时,首先会创建一个长度为16的Entry数组。调用put()方法时,会先调用被添加元素所属类的hashCode()方法获得一...原创 2021-10-13 17:19:35 · 181 阅读 · 0 评论 -
Java基础之集合实现类
ArrayList、LinkedList、Vector它们三都实现了list接口,首先都是有序的、可重复的,可变数组一.ArrayList:最为常用的list接口实现类①首先是线程不安全的,所以效率较高②底层是Object[ ] elementdata 数组,所以适合于多查询的场景在jdk1.7中:new ArrayList():默认声明一个长为10的数组add()方法:添加一个超过容量的对象时,默认的扩容机制是:1.5n(n为原来容量)在jdk1.8中:new Arra原创 2021-10-11 21:48:27 · 500 阅读 · 0 评论 -
Java基础之集合
Java集合之Collection接口1.为什么会有集合?针对数组中的一些缺陷而设计的集合1.数组的长度一经确定无法更改2.数组中数组元素增加、修改、删除方法没有,导致效率过低3.数组中没有返回数组元素个数的方法4.数组是有序的、可重复的,无法解决无序、不可重复的问题2.Collection作为set、list顶级接口,下面将介绍一些常用的方法1.add(Object obj):添加obj元素@Test public void test1() { //原创 2021-10-11 17:15:38 · 138 阅读 · 0 评论 -
Java基础之枚举类
枚举类:有限个对象,确定的。自定义枚举类:步骤:①定义final属性②私有构造器③常量对象class Season{ private final String name; private final String desc; private Season(String name,String desc) { this.name=name; this.desc=desc; } public String getName() { return name; } public原创 2021-10-09 11:09:34 · 133 阅读 · 0 评论 -
Java基础之常用工具类
Java常用类之Date我们一般说的Date指的是util下的Date类:1.java.util.Date的构造器当使用Date(int year,int month,int day)构造器时,有偏差而且已经过时,不建议使用 Date date=new Date(2021,10,6); System.out.println(date); Date date1=new Date(2021-1900,10-1,6); System.out.printl..原创 2021-10-09 10:52:34 · 205 阅读 · 0 评论 -
Java基础之String类方法例题
String中常见的算法题:1.模拟trim()方法,去除字符串首尾的空格/* * 1.模拟一个trim()方法,去除字符串两端的空格 */ public String cutBlank(String str) { String target=""; if(!str.isEmpty()) { char [] ch=str.toCharArray(); for(int i=0;i<ch.length;i++) { if(i==0 || i==ch.le原创 2021-10-05 19:21:59 · 392 阅读 · 0 评论 -
Java基础之String类
Java常用类之StringString:①final修饰,不可被继承②实现了Serializable接口,字符串可序列化。实现了Comparable接口,字符串可比较大小。③String内部定义了 final char [ ] value 接收字符串④String:代表字符串序列是不可变的,即不可变性体现:1.当为String对象重新字面量赋值时,需要在指定的内存中重写,并不会改变原有的value。2.当String对象调用某些方法时,会有String类型的返回值,并.原创 2021-10-04 20:54:04 · 516 阅读 · 0 评论 -
Java基础之线程
多线程程序:完成特定任务,由某种语言编写的代码。是一段静态代码。进程:在内存中运行的一个应用程序线程:进程执行的某一条路径进程和线程的根本区别:进程是操作系统分配资源的基本单位,线程是处理器任务调度和执行的基本单元一、Java中实现线程的四种方式:1.继承Thread类步骤:①继承Thread类②重写run方法③声明子类对象④调用start()方法public class ThreadTset { public static void main(Strin原创 2021-10-03 15:38:56 · 207 阅读 · 0 评论 -
Java基础之异常
1.java中的异常异常:程序在运行时出现的不正常情况2.异常的类型2.1 Error:jvm无法处理的异常,例如栈溢出(stackOverFlowError),堆溢出(OutOfMemoryError)2.2 Exception:①编译时异常:②运行时异常: 1.ArraysIndexOutofBounds 2. NullPointerException 3. Class...原创 2021-09-27 19:24:28 · 113 阅读 · 0 评论 -
Java基础之内部类
内部类:在一个类中定义一个类1.成员内部类 作为一个类: ①可以拥有属性、构造器、方法 ②可以被final修饰 ③可以被abstract修饰 作为成员: ①可以调用外部类的结构 ②可以被static修饰 ③可以被四种权限修饰符修饰2. 成员内部类的使用:①...原创 2021-09-27 11:36:04 · 100 阅读 · 0 评论 -
Java基础之abstract和interface关键字说明
1.abstract关键字的使用:使用对象: ①修饰类:抽象类 →无法实例化 说明:抽象类中不一定有抽象方法,但一定有构造器 ②修饰方法:抽象方法 说明:含有抽象方法的类一定是抽象类,抽象类中不一定含有抽象方法 子类继承抽象父类必须重写父类的抽象方法/该子类就...原创 2021-09-26 20:15:45 · 234 阅读 · 0 评论 -
Java基础之static关键字的使用(单例模式)
设计模式之单例模式什么是单例模式:提供某个类的一个对象实例供全局使用单例模式之饿汉单例:好处:线程安全坏处:对象加载时间过长单例模式之懒汉单例:好处:延迟加载对象坏处:线程不安全懒汉单例修改成线程安全:方法1:方法2 :方法3:参考文档:JAVA设计模式之单例模式_一个本科小生的奋斗史-优快云博客_单例模式...原创 2021-09-25 22:56:31 · 133 阅读 · 0 评论 -
Java基础之static关键字
static关键字的使用1.为什么要使用static关键字我们定义一个类只是描述对象的属性和行为,我们去new一个结构时候才真正意思上的为对象分配了内存空间。我们每new一个对象都会为其在堆空间中分配属性的内存空间,有些情况,我们只想在内存够中声明一份属性,没必要每new一个对象就为其分配一个内存空间。例如:每个中国人都有一个国家中国,我们就只需要在内存中赋值一份被每个对象共享。2.static的使用: ①修饰属性:静态属性 类名.静态属性名、对象.静态属性名...原创 2021-09-25 20:32:29 · 102 阅读 · 0 评论 -
Java基础之包装类
一、包装类1.什么是包装类?将基本数据类型封装成类就是所谓的包装类,为什么要这么做呢?因为,在java中大多数的方法形参都是对象,这样操作让基本数据类型也能玩面向对象。2.包装类有那些类型?3.基本数据类型与包装类转换(jdk 5.0以前这么玩)基本数据类型→包装类:new一个对象包装类→基本数据类型:调用xxxValue方法特殊情况:存在一个IntegerCache,存放[-128,127]范围的数。因为,在这个范围内的数是使用频率较高,存放在缓冲池中存取的速度将.原创 2021-09-24 17:27:19 · 124 阅读 · 0 评论 -
Java基础之多态、向下类型转换、Object类
1.多态(向上类型转换)对象的多态性:父类的引用指向子类的对象有了对象的多态性后,编译期间只能指向父类的方法,运行期间,实质运行的是子类重写父类的方法。前提:①继承关系②重写方法注意点:①方法才具有多态性②属性不具有多态性答案:20 //就近调用 20 //就近调用 true //将s的地址赋值给b,两地址肯定相同 10 //属性不具备多态性,调用的是Base中的count ...原创 2021-09-23 18:35:20 · 368 阅读 · 0 评论 -
Java基础之三大特性
一、面向对象之封装 (3w学习法→what→why→how)1.什么是封装?隐藏对象的属性和实现的细节,仅对外提供公共的方法2.为什么要使用封装?①提高代码的复用性②降低代码的耦合度③隐藏具体实现的细节,使用存取控制语句,规范用户的输入输出④提高代码的安全性3.怎么使用封装?这里必须提到四种权限修饰符(有小到大):①private②却省(default)③protected④public代码层面使用:4.构造器:生成对象附带可以属性赋值 权限...原创 2021-09-22 22:25:54 · 234 阅读 · 0 评论 -
Java基础之面向对象
面向对象与面向过程1.面向过程解决问题的一系列步骤就是面向过程的思想,就是用函数一个一个的实现,采用的是自顶向下的编程方式。例如:五子棋棋局的设计1.棋局开始2.黑子先走3.生成棋图4.判断输赢5.白子再走6.生成棋图7.判断输赢8.重复步骤29.输出结果2.面向对象将实际问题转化为现实世界中的实体,使用实体的属性和方法去解决问题。例如:五子棋棋局的设计1.黑白双方:具有共同的行为2.棋盘:生成棋局图3.棋局规则:判断是否违规、输赢原创 2021-09-21 14:21:21 · 119 阅读 · 0 评论 -
Java基础之数组练习
1.数组的赋值1.1杨辉三角:使用二维数组打印一个10行的杨辉三角 杨辉三角的特点:①第一列全为1(j==0),最后一列全为1(i==j)②输出的是下三角,j<=i;③中间元素:a[i][j]=a[i-1][j]+a[i-1][j-1];int [][] arr=new int [10][10]; for(int i=0;i<arr.length;i++) { for(int j=0;j<=i;j++) { ...原创 2021-09-18 17:09:51 · 131 阅读 · 0 评论 -
Java基础之数组
day03复习流程控制:1.顺序结构 2.选择结构 3.循环结构2.1 选择结构之switch的注意点1.case之后只能是常量,不能是范围2.case之后的常量只能是6种数据类型--byte、char、short、int、枚举类型(jdk5新增)、String(jdk7新增)3.break是可选的,作用跳出switch-case结构4.default是可选的,位置也不是固定的数组1.什么是数组?数组是相同数据类型有序排列的集合,并用一个名字命名,使用下标对数组元素进行管原创 2021-09-17 11:36:25 · 256 阅读 · 0 评论 -
Java基础之选择、循环
day02复习注释:1.单行注释 ://2.多行注释:/* .. */ (单行注释、多行注释不参与编译)3.文档注释: /** ..*/ (javadoc可进行编译以网页的形式呈现例如java API文档)作用:1.方便代码的阅读,方便自己也方便他人2.可用于排错关键字:java中定义好的、有特殊含义的单词(全部是小写)保留字:1.goto 2.const标识符:由自己定义的(见明之意)规则:1.由26个大小写字母、0-9、_、$组成2.不能由数字开头..原创 2021-09-16 23:21:08 · 218 阅读 · 0 评论 -
Java基础之运算符
java基础之运算符明确:++前与后++的区别& 与 &&的区别1.算数运算符+(正号)、-(负号)、+、-、*、/、%、+(连接)、++(前)、++(后)、--(前)、(后)--/:(会进行截断操作)int a=18;int b=10;int c=a/b; //c=1%:(符号取决于被取余数的符号)int a=-18;int b=7;int c=a%b; // c=-4++(前): 先自增再运算(后)++:先运算再赋值.原创 2021-09-15 20:37:53 · 690 阅读 · 0 评论 -
Java基础之基本数据类型
day01回顾一、java的特点:1.面向对象性(①封装②继承③多态)2.健壮性(舍弃了c中的指针并添加自动回收机制)3.跨平台性(write once,run anywhere 功臣:jvm)二、jdk、jre、jvm三者之间的关系jdk包含jre,jre包含jvmjdk(java development kit:java开发工具包)=jre+开发工具(javac.exe,java.exe,javadoc.exe)jre(java run enviroment:java运行原创 2021-09-15 11:37:46 · 4665 阅读 · 0 评论 -
Java基础配之jdk的安装和置环境变量
本人是兰交的一名在校大四学生,不知不觉已经来到了大四,面临着找工作的困境。暑期的时候找java实现面试四处碰壁感受到了找工作的不易。这些年来大家都想涌入计算机行业,我当初填报志愿也是贪图计算机行业的高薪(hhhhh)。大学的许多时光都荒废了过来,没有参加什么竞赛也没有认真的code的,但是我相信只要肯努力从现在开始也不算太迟。csdn就将成为我日后的笔记地址了(不喜勿喷,如有错误望各位大佬指导)爪哇(java)的由来java是印度尼西亚爪哇岛的英文名。为什么会产生java这种语言呢?这是因为sun公原创 2021-09-14 13:19:19 · 297 阅读 · 0 评论
分享