![](https://img-blog.csdnimg.cn/20210421111358563.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
java基础部分,还有多线程,常用类,枚举,注解,集合,泛型,io流与网络编程,反射,动态代理以及java8新特性
!0 !
小码农一枚
展开
-
JDBC详解
JDBC核心技术第1章:JDBC概述1.1 数据的持久化1.2 Java中的数据存储技术1.3 JDBC介绍1.4 JDBC体系结构1.5 JDBC程序编写步骤第2章:获取数据库连接2.1 要素一:Driver接口实现类2.1.1 Driver接口介绍2.1.2 加载与注册JDBC驱动2.2 要素二:URL2.3 要素三:用户名和密码2.4 数据库连接方式举例2.4.1 连接方式一2.4.2 连接方式二2.4.3 连接方式三2.4.4 连接方式四2.4.5 连接方式五(最终版)第3章:使用PreparedS原创 2021-06-01 17:05:14 · 1897 阅读 · 0 评论 -
【JAVA学习笔记】注解
1、 注解的理解① jdk 5.0 新增的功能② Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加载, 运行时被读取, 并执行相应的处理。通过使用 Annotation,程序员可以在不改变原逻辑的情况下, 在源文件中嵌入一些补充信息。③在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在JavaEE/Android中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替JavaEE旧版中所遗留的繁冗 代码和XML配置等。框架 = 注解 + 反原创 2021-06-01 11:44:39 · 104 阅读 · 0 评论 -
【JAVA学习笔记】枚举类
1、枚举类的说明枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类当需要定义一组常量时,强烈建议使用枚举类如果枚举类中只一个对象,则可以作为单例模式的实现方式。2、自定义枚举类//自定义枚举类class Season{ //1.声明Season对象的属性:private final修饰 private final String seasonName; private final String seasonDesc; //2.私化类的构造器,并给对象原创 2021-06-01 11:37:44 · 203 阅读 · 0 评论 -
【JAVA学习笔记】集合底层原理
本篇博客主要介绍的是底层原理,如果想学习集合的方法可以参考我们之前总结的一篇博客:https://blog.csdn.net/qq_44713772/article/details/117045583一、Collection集合Collection接口是单列集合类的父接口,这种集合可以将数据一个一个的存放到集合中。它有两个重要的子接口,分别是 java.util.List 和 java.util.Set二、List接口1、特点List是一种有序的集合List是一种带索引的集合List是一种原创 2021-05-25 19:09:00 · 142 阅读 · 3 评论 -
【JAVA学习笔记】String、StringBuffer、StringBuilder
一、String1.String的特点String类声明为final,说明该类不可被继承String类实现了Serializable接口:说明字符串是支持序列化的。String类还实现了Comparable接口:说明String可以比较大小String底层用final char[] value存储字符串数据,说明其不可变性2.String不可变性当对字符串重新赋值或者进行连接还有替换操作时,实际上不会对当前字符串做出修改,而是将修改的值指向另一个地址。具体我们来看代码。//重原创 2021-05-10 19:38:26 · 107 阅读 · 1 评论 -
【JAVA学习笔记】同步问题的三种解决方法
方式一:同步代码块说明:操作共享数据的代码,即为需要被同步的代码。共享数据:多个线程共同操作的变量。比如:ticket就是共享数据。同步监视器,俗称:锁。任何一个类的对象,都可以充当锁。要求:多个线程必须要共用同一把锁。补充:在实现Runnable接口创建多线程的方式中,我们可以考虑使用this充当同步监视器。在继承Thread类创建多线程的方式中,慎用this充当同步监视器,考虑使用当前类充当同步监视器。方式二:同步方法如果操作共享数据的代码完整的声明在一个方法中,我们不原创 2021-05-06 10:50:21 · 496 阅读 · 0 评论 -
【JAVA学习笔记】线程的生命周期及Thread类常用方法
一、Thread类中的常用的方法start():启动当前线程;调用当前线程的run()run(): 通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中currentThread():静态方法,返回执行当前代码的线程getName():获取当前线程的名字setName():设置当前线程的名字yield():释放当前cpu的执行权join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,直到线程b完全执行完以后,线程a才结束阻塞状态。stop():已原创 2021-05-06 10:49:29 · 76 阅读 · 0 评论 -
【JAVA面试题】线程的通信
面试题:sleep() 和 wait()的异同相同点:一旦执行方法,都可以使得当前的线程进入阻塞状态。不同点:两个方法声明的位置不同:Thread类中声明sleep() , Object类中声明wait()调用的要求不同:sleep()可以在任何需要的场景下调用。 wait()必须使用在同步代码块或同步方法中关于是否释放同步监视器:如果两个方法都使用在同步代码块或同步方法中,sleep()不会释放锁,wait()会释放锁。...原创 2021-05-06 10:43:31 · 148 阅读 · 0 评论 -
【JAVA学习笔记】线程创建的四种方式
一、基础概念在了解多线程之前我们先要了解几个概念。1.程序是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码。2.进程程序的一次执行过程,或是正在运行的一个程序。说明:进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域3.线程进程可进一步细化为线程,是一个程序内部的一条执行路径。说明:线程作为调度和执行的单位,每个线程拥独立的运行栈和程序计数器(pc),线程切换的开销小。4.联系进程可以细化为多个线程。在JVM虚拟机中:每个线程,拥有自己独立的:栈、原创 2021-05-05 21:05:42 · 71 阅读 · 0 评论 -
【JAVA学习笔记】异常
1. 异常的体系结构java.lang.Throwable|-----java.lang.Error:一般不编写针对性的代码进行处理。|-----java.lang.Exception:可以进行异常的处理|------编译时异常(checked)|-----IOException|-----FileNotFoundException|-----ClassNotFoundException|------运行时异常(unchecked,RuntimeException)|--原创 2021-04-28 16:23:00 · 51 阅读 · 0 评论 -
【JAVA面试题】接口与抽象类
抽象类接口成员变量无特殊要求默认 public static final 常量构造方法有构造方法,不能实例化没有构造方法,不能实例化方法抽象类可以没有抽象方法,但有抽象方法一定是抽象类。默认 public abstract,JDK8 支持默认/静态方法,JDK9 支持私有方法。继承单继承多继承从设计层面来看:抽象类体现 is-a 关系,接口体现 can-do 关系。与接口相比,抽象类通常是对同类事物相对具体的抽象。...原创 2021-04-28 16:13:26 · 80 阅读 · 0 评论 -
【JAVA面试题】static 和 final 的区别(详解)
static:静态的主要用来修饰类的内部结构,例如:属性、方法、代码块、内部类修饰属性(静态变量或类变量):我们创建了类的多个对象,多个对象共享同一个静态变量。当通过某一个对象修改静态变量时,会导致其他对象调用此静态变量时,是修改过了的。注意:静态变量随着类的加载而加载,会赋默认值。可以通过"类.静态变量"的方式进行调用静态变量的加载要早于对象的创建。由于类只会加载一次,则静态变量在内存中也只会存在一份:存在方法区的静态域中。修饰方法(静态方法、类方法):随着类的加载而加载,可原创 2021-04-28 16:00:04 · 2720 阅读 · 0 评论 -
【JAVA学习笔记】包装类以及自动装箱、拆箱
1.什么是包装类java中的八种基本数据类型,它们只能表示一些最简单的数字。这些都是简单的数字,不是对象,所以也不能用来调用方法或者属性。针对这八种基本类型,JavaAPI专门提供了对应的类类型,目的就是为了分别把这八种基本类型的数据,包装成对应的类类型,这时候就变成对象了,就可以调用方法了或者访问属性了。2.基本数据类型与对应的包装类:基本类型包装类型booleanBooleanbyteByteshortShortintIntegerlongLo原创 2021-04-28 10:25:28 · 73 阅读 · 0 评论 -
【JAVA面试题】 == 和 equals 的区别
== 和 equals 的区别==equals()定义关系运算符方法返回值布尔类型布尔类型基本数据类型比较比较值是否相等不能比较引用类型比较地址是否相同地址是否相同注意:一般都会重写equals方法使得比较对象的值,一般重写了equals方法也会重写hashCode方法;没重写时比较的是地址值...原创 2021-04-28 00:11:07 · 76 阅读 · 0 评论 -
【JAVA面试题】Object类中所有的方法
1.什么是Object类Object类是所有类的父类型,类中定义的方法,java中所有对象都可以调用(因为所有类都直接或者间接继承了Object类)2.Object类中的属性和方法Object中没有属性,只有方法和一个空参构造器方法说明:equals:检测对象是否相等,默认使用 == 比较对象引用,可以重写 equals 方法自定义比较规则。hashCode:为了在集合中正确使用,一般需要同时重写 equals 和 hashCode,要求 equals 相同 hashCode 必须相同,has原创 2021-04-27 20:04:34 · 260 阅读 · 0 评论 -
【JAVA面试题】重写和重载的区别
1. 概念重载:类中有多个方法,具有相同的方法名,但是方法的参数各不相同重写:子类和父类中出现了相同的方法。2. 区别区别重载重写作用范围一个类中子父类中参数列表必须不同必须相同返回类型可以不同(一般都相同)相同类型或子类抛出异常无限制条件可以缩小不能扩大访问权限无限制条件可以扩大不能缩小多态编译时多态运行时多态3.编译时多态和运行时多态编译时多态:对于重载而言,在方法调用之前,编译器就已经确定了所要调用的方原创 2021-04-27 19:43:44 · 92 阅读 · 0 评论 -
【JAVA学习笔记】JAVA权限修饰符
java规定的四种权限修饰符权限从小到大顺序为:private < 缺省 < protected < public具体的修饰范围:修饰符类中同包不同包的子类不同包非子类publicYYYYprotectedYYYNdefaultYYNNprivateYNNN权限修饰符可用来修饰的结构:4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类修饰类的话,只能使用:default和pu原创 2021-04-27 19:17:30 · 114 阅读 · 0 评论 -
【JAVA学习笔记】属性 vs 局部变量
相同点:定义变量的格式:数据类型 变量名 = 变量值都要先声明,后使用都有相对应的作用域不同点:在类中声明的位置的不同属性定义在类中局部变量声明在方法中、代码块中或者当作形参权限修饰符不一样属性可以使用private、public、缺省、protected局部变量不能使用权限修饰符(因为在一个方法中的作用域已经很小,没必要加权限了)默认初始化的值不同属性都会根据其类型自动默认初始化。例如:整型(byte、short、int、long:0).原创 2021-04-27 19:03:49 · 52 阅读 · 0 评论 -
【JAVA学习笔记】数组+可变参数
一、一维数组1.声明和初始化正确方式:int[] a; //java推荐用这种方式,c++选手有可能有点难接受,我也适应了很久a = new int[]{1, 2, 3}; //只能new一次a = new int[]{1, 2, 3, 4}; //报错int b[]; //c++中常用的方式,但是java中一般不用int[] c = {1, 2, 3, 4};int[] d = new int[10];错误方式:int[] arr1 = new int[]; //一般都不会犯这个错原创 2021-04-26 23:33:31 · 201 阅读 · 0 评论 -
【JAVA面试题】|、||、 &、&&的区别
||:逻辑短路,前面表达式为真,后面就不运算了&&:逻辑短路,前面表达式为假,后面就不运算了|、&也可以连接多个条件,但没有逻辑短路功能例如:true || (10 / 0 == 0); //true,不会报错,因为前面为true,所以不会计算后面true || (10 / 0 == 0); //报错,尽管前面已经为true,仍然会计算后面的表达式false && (10 / 0 == 0); //false,不会报错,因为前面为false,所以不原创 2021-04-26 23:09:45 · 184 阅读 · 0 评论 -
【JAVA学习笔记】八大基本数据类型和类型转换
字节:要了解基本数据类型就要先了解字节是什么。在计算机中,数据传输大多是以“位”(bit,比特)为单位,一位就代表一个0或1(二进制),每8个位(bit)组成一个字节(Byte),所以,1个字节=8位0101代码。例如,0000 0001 ,表示二进制的数字1,它是1个字节,共8位0101代码组成byte、short、int、longbyte a1 = 1; (内存中占8位) 1字节 short a2 = 1; (内存中占16位)2字节 int a3 = 1; (内存中占32位)4字节 .原创 2021-04-26 22:30:37 · 110 阅读 · 0 评论 -
【JAVA学习笔记】字符编码
前言字符编码对于初学java遇到的不是那么多,但是之后学框架和做项目的时候就会遇到编码不统一的情况,所以对字符编码还是要有一定的理解。(要了解UTF-8、ASCII、GBK、Unicode)Java语言对文本字符采用Unicode编码。由于计算机内存只能存取二进制数据,因此必须为各个字符进行编码。例如:a --编码–> 0000 0000 0110 0001常见编码ASCIIASCII–Amecian Standard Code for Information Interchange,原创 2021-04-26 22:04:22 · 89 阅读 · 0 评论 -
【JAVA学习笔记】Java语言的特点
前言java为什么能火这么久?离不开其强大的功能,以及较完善的体系,接下来我来分享一下关于Java的优点。只要了解就行,因为刚开始学java不一定能直到他这些特点有什么作用,等到学完java之后再回头来看看,就能发现java还是很好用的。Java 语言的优点?简单性。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。面向对象。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制。原创 2021-04-26 21:32:26 · 87 阅读 · 0 评论 -
【JAVA学习笔记】标识符的命名规则(驼峰命名法)和关键字保留字
1. 命名规则:(这个是强制的,必须遵从)标识符可以由字母、数字、下划线_ 、美元符号$组成标识符开头不能是数字标识符中的字符大小写敏感标识符的长度没有限制标识符不能使用java中的关键字或保留字合法标识符非法标识符try1try#GROUP_11GROUPhelloworldhello-world_intint(不能为关键字)$int$-int2. 驼峰命名法(推荐使用,但是不强制)类和接口,首字母大写,原创 2021-04-26 20:19:19 · 404 阅读 · 1 评论 -
IDEA 2017下载安装使用教程(手把手,保姆级安装,非常详细!)
前言:最近开始重新学java,但是之前用的是eclipse,感觉现在用idea的人特别多,之前安过idea,但是安装失败了,找激活找了很久,结果一个更新,激活就没用了,所以一气之下就把idea卸载掉了,还有就是感觉换了个IDE要适应很久,所以后面一直都懒得安装,现在网上的课基本上都是用的idea,所以为了后面听网课方便,就安装重新安装了idea,为了让更多像我一样的小白能够顺利安装idea,所以就分享了一下我的安装教程。(超级详细,手把手教安装)一、下载IDEA官网下载:https://www.jet原创 2021-04-24 14:56:40 · 8380 阅读 · 9 评论 -
刷题常用之数组工具类Arrays
一、java.util.Arrays类的定义java.util.Arrays类是一个数组工具类,里面有很多静态方法可以直接供我们调用,去操作数组。使用时需导包: import java.util.Arrays;二、常用方法toString方法:把数组变为对应的String形式int[] a = { 1,3,5,2,6,8};System.out.println(Arrays.toString(a));//结果:[1, 3, 5, 2, 6, 8]copyOf方法:可以把一个数组进行原创 2021-04-20 10:36:36 · 148 阅读 · 0 评论