
javase
文章平均质量分 73
leokk111
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java-多线程-JUC
线程全部知识原创 2021-01-30 21:13:14 · 230 阅读 · 2 评论 -
java-多线程-死锁
线程死锁一.概念原理要点:1.多线程竞争资源2.占有一个同步资源去请求另外一个同步资源3.线程争抢资源的顺序不同二.死锁代码public class TestDeadLock implements Runnable{ public static void main(String[] args) { TestDeadLock dead = new TestDeadLock(true); TestDeadLock dead2 = new TestDeadLock(false);原创 2021-01-28 17:50:14 · 166 阅读 · 0 评论 -
104-java数据结构与算法
如图一.数组java中数组代表着一块连续的物理存储空间,遍历块,删除慢.其余特性略.1.稀疏数组(1)应用场景当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。(2)稀疏数组的处理方法是:记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模(3) 代码略略,后续再补充...原创 2020-08-06 16:25:10 · 205 阅读 · 0 评论 -
103-java8新特性(3)-新日期API/重复注解
一.原有日期处理1.SimpleDateFormate线程不安全(1) 不安全代码public static void main(String[] args) throws Exception { //1.8 之前使用的线程不安全的转换类 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); //1.8之前用的日期转换工具内,线程不安全 Callable<Date> task = (原创 2020-07-11 11:53:23 · 216 阅读 · 0 评论 -
102-java8新特性(2)-Stream流
Stream流原创 2020-07-10 17:58:24 · 151 阅读 · 0 评论 -
101-java8新特性(1)-Lambda表达式
java 8 新特性java 1.8 相对于java 1.7修改了很多地方,增加了很多新特性.Lambda表达式1.概念及注意事项Lambda表达式的格式:Interface in = Lambda表达式.注意:1.左边一定是一个接口,抽象类也不行,因为Lambda表达式就是设计来实现这个接口的方法的匿名内部类2.左边的这个接口一定是只有一个抽象方法的函数是接口.因为如果有多个接口,则这个Lambda表达式则不能区分是实现的哪个抽象方法.3.这个函数式接口可以用注解@Functiona原创 2020-07-10 10:44:02 · 250 阅读 · 0 评论 -
27.javase-基础加强-IO模型
IO暂时不写,以后补充.原创 2020-02-27 11:17:00 · 152 阅读 · 0 评论 -
26.javase-基础加强-设计模式之单例模式
单例模式1.懒汉模式方法上写synchronized关键字/** * 方法上加线程锁,使之成为线程安全的单例模式 * 阻塞严重 */class Singleton02{ public static Singleton02 instance; //构造方法私有化 private Singleton02() { super(); System.out.println("...原创 2020-02-26 21:22:31 · 152 阅读 · 0 评论 -
25.javase-基础加强-线程二(线程锁/Synchronized/Volatile/ThreadLocal/ReentrantLock/API )
一.Synchronized使用:1.修饰方法:同步方法2.修饰局部代码块:同步代码块public class SynchronizedDemo { //同步方法 public synchronized void doSth(){ System.out.println("Hello World"); } public void doSth1(){ ...原创 2020-02-26 17:34:35 · 233 阅读 · 0 评论 -
24.javase-基础加强-线程二(线程池)
线程池线程池的优点:1、线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用。2、可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内存导致服务器崩溃。一.Executors创建线程池1.Executors创建线程池特点:便捷,不需要指定参数.因为隐藏了线程池的创建细节,很可能导致OOM.2.Executors.创建几种线程的方...原创 2020-02-26 11:54:26 · 114 阅读 · 0 评论 -
23.javase-基础加强-线程一(线程状态/创建方式/方法)
线程一.什么是进程?什么是线程?**进程(Process)**是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。**线程(thread)**是操作系统能够进行运算调...原创 2020-02-26 10:55:31 · 164 阅读 · 0 评论 -
22.javase-javaAPI-集合总结
集合集合使我们日常开发中用的最多的数据结构,集合对比:一个例子讲解数组/链表和hashMap的区别.一群人去住酒店,一个人就代表一个数据.房间就代表存储地址.数组结构:住:第一个人住xxx房号房间,其余的人按照房号顺序依次排在他后面住.找人:只需要知道第一个人住的几号房,以及找的这个人是第几个住进去的就知道了找的人住几号房间了.链表结构住:第一个人住xxx房间,然后第二个人住...原创 2020-02-25 17:28:52 · 190 阅读 · 0 评论 -
21.javase-javaAPI-集合之map集合
Mapmap是一种key,value结构,key是键,value是值,也就是键值对结构.这是Map的继承体系HashMap(数组+链表+红黑树)特点:1.键值对,<key,value>结构2.key值是根据键的hash值计算的,并且键是唯一的.3.value是任意类型的.4.底层是数组加链表的形式.当key’的hash值相同时,发生hash碰撞,再用equals()...原创 2020-02-25 17:06:16 · 159 阅读 · 0 评论 -
20.javase-javaAPI-集合之set集合
Set集合set集合作为collection的子类,被设计来作为集合的一份子,主要是因为我们很多业务需要元素唯一,而set集合应运而生,他保证了集合元素的唯一性.特点:1.set的元素是唯一的,不重复的.2.set元素的存储是无序的,意思存储都是乱序的.set集合的架构表hashSet元素的哈希值是通过元素的hashcode 方法来获取的, HashSet 首先判断两个元素的哈...原创 2020-02-25 11:22:40 · 320 阅读 · 0 评论 -
19.javase-javaAPI-集合之List集合
集合1.集合的由来?我们学习的是Java – 面向对象 – 操作很多对象 – 存储 – 容器(数组和StringBuffer) – 数组,而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供我们使用。2.集合和数组的区别?A:长度区别数组固定集合可变,但其实底层也是其他方式实现的.B:内容区别数组可以是基本类型,也可以是引用类型集合只能是引用类型C:元素内容数组...原创 2020-02-24 17:04:58 · 335 阅读 · 0 评论 -
18.javase-javaAPI-String/StringBuffer/StringBuilder
StringString是java中最重要的类,也是我们工作中最常用的类.我们必须熟悉其api.特性:1.String类为final修饰的最终类,不能被继承.2.String类指向的地址值不能改变.3.String类存储数据其实底层也是字符数组4.字符串常量池.同一内存地址下的字符串值不能变,只可能是被GC回收了,重新分配才可能发生改变.面试常考问题 为什么String要用fin...原创 2020-02-24 15:44:45 · 150 阅读 · 0 评论 -
17.javase-javaAPI-Object/Arrays/Math/Random/System/BigInteger/BigDecimal/Date/DateFormat/包装类
一.Object1.Object是类层次结构的根类,所有的类都直接或者间接的继承自Object类。2.Object类的构造方法有一个,并且是无参构造这其实就是理解当时我们说过,子类构造方法默认访问父类的构造是无参构造(3)要掌握的方法:A:toString()返回对象的字符串表示,默认是由类的全路径+’@’+哈希值的十六进制表示。这个表示其实是没有意义的,一般子类都会重写该方法。如...原创 2020-02-24 15:11:10 · 228 阅读 · 0 评论 -
16.javase-基础加强-对象的几种创建方式
对象的创建方式一.new 关键字.Person p = new Person("zhangsan",12);//第一种二,运用反射 Class<?> clazz = Class.forName("cn.tedu.practice.Person"); Person p2 = (Person)clazz.newInstance();//第二种方式三.运用clone方式1....原创 2020-02-22 00:00:42 · 124 阅读 · 0 评论 -
15.javase-基础加强-类加载
类加载一.类加载过程JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个 Class 文件获取,这里既可以从 ZIP 包中读取(比如从 jar 包和war 包中读取...原创 2020-02-21 23:18:57 · 229 阅读 · 0 评论 -
14.javase-基础加强-JVM内存模型
一.java代码的编码,运行过程① Java 源文件—->编译器—->字节码文件② 字节码文件—->JVM—->机器码二.jvm内存区域每一种平台的解释器是不同的,但是实现的虚拟机是相同的,这也就是 Java 为什么能够跨平台的原因了 ,当一个程序从开始运行,这时虚拟机就开始实例化了,多个程序启动就会存在多个虚拟机实例。程序退出或者关闭,则虚拟机实例消亡,多...原创 2020-02-21 23:01:00 · 367 阅读 · 0 评论 -
13.javase-基础加强-手写spring框架
一.设计流程第一步:User书写数据类型这里是书写数据库的基本数据结构第二步:1.@Controller这里是对操作类的注解,用于区分类文件,便于反射的时候创建对象2.@Service这里是对业务类的注解,用于区分类文件,便于反射的时候创建对象3.@Repository这里是多Dao层的注解,用于区分类文件,便于反射的时候穿件对象4.@Autowired这里是多私有属性的注解...原创 2020-02-21 22:16:16 · 178 阅读 · 0 评论 -
12.javase-java基础语法-注解/反射
注解一.为什么要开发.设计注解?java支持注解是从JDK1.5之后开始的,为什么要设计注解,因为注解起到一个标识代码的作用,它配合反射,给JVM使用.将JAVA彻底的提升了一个台阶.二.注解的格式1.用@interface标识2.添加元注解,修饰注解的注解叫元注解3.属性用:属性类型 属性名(); 如:String value();4.属性添加默认值用default 表示....原创 2020-02-21 21:55:10 · 193 阅读 · 0 评论 -
十一.javase-java基础语法-泛型
泛型泛型有三个作用:1.通过泛型的语法定义,约束集合元素的类型,编译器可以在编译期提供一定的类型安全检查,避免运行时才暴露bug。2.代码通用性更强,后面有案例3.泛型可以提升程序代码的可读性,但它只是一个语法糖(编译后这样的东西就被删除,不出现在最终的源代码中),对于JVM运行时的性能是没有任何影响的。泛型的定义1.定义在类上或者接口上注意:1.1 泛型写在类名/接口名之后,大括...原创 2020-02-21 19:57:18 · 159 阅读 · 0 评论 -
十.javase-java基础语法-枚举
一.枚举枚举的来源:意思是枚举是为了解决一个类中仅有几个固定常量值二设计的.在JDK1.5 之前,我们定义常量都是: public static fianl… 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。注意:1.枚举的可以有构造方法,但是构造方法是私有的,不允许外部创建枚举实例.2.每一个枚举的成员都是枚举类的对象实例,也只有这么多个实例...原创 2020-02-21 16:48:17 · 154 阅读 · 0 评论 -
九.javase-java基础语法-抽象类/接口
一.类/抽象类/接口的关系.类表示一个实体的类,这是主要干活的类;抽象类表示干了一部分活的类,也就是实现了一部分方法,但是一部分方法没有实现,需要消费者自己定义实现的类.接口:表示只定义了需要干什么活,但是自己不干活,也就是只定义了方法,但是没有方法实现.二.抽象类1.格式:在class前面加上关键字abstract关键字.例如//抽象类public abstract class T...原创 2020-02-21 15:54:19 · 161 阅读 · 0 评论 -
七.javase-java基础语法-类
一.类的概念及组成1.什么是类?生活中,类代表一类事物,而我们把一类事物的共性提取出来,这就成了类.比如,Person,Person有名字/年龄/身高/体重/国籍等等.而类中的个体就对应着一个实例,java里称作对象.2.为什么要设计类?3.类的组成.二.成员变量三.构造方法四.成员方法...原创 2020-02-21 00:35:22 · 187 阅读 · 0 评论 -
六.javase-java基础语法-数组
数组一.数组的概念java中数组的概念指的是在JVM中开辟出一块连续的内存区域,这些连续的区域组合起来叫做数组.并不是说JVM中有一种存储叫做数组.例如int[2],值得是JVM开辟出2个连续的int类型大小的区域.数组的特点:1.连续的内存空间.2.数组内的元素类型相同.3.数组内的元素可以是任意类型的.4.数组的起始下标为0,意思数组的长度为arr.length-1;5.内存空...原创 2020-02-21 00:27:44 · 207 阅读 · 0 评论 -
五.javase-java基础语法-异常
一.异常1.异常的分类体系1.1.error 通常是虚拟机出现的错误,通常有内存溢出,栈请求过深等错误,这些错误是虚拟机无法解决的.1.2.exception分为运行时异常和检查型异常,检查型异常通常指的是io异常,也就是如果本方法会涉及到io操作,可能出现io异常,则这个异常必须处理,要么抛出,要么捕获.运行时异常,通常是代码逻辑的错误.2.异常的处理2.1 抛出异常throws ...原创 2020-02-20 23:35:53 · 127 阅读 · 0 评论 -
四.javase-java基础语法-流程控制
流程控制流程分为三种:顺序.选择.循环.1.顺序流程java函数的入口是main函数,从上往下依次执行.2.选择流程2.1 if语句2.1.1 if 单条件if(a > 0){…}2.1.2 if else 两个分支if(a > 0){…}else{…}2.1.3 if …else if… else 多分支if(a < 0){…}else ...原创 2020-02-20 23:06:52 · 210 阅读 · 0 评论 -
三.javase-java基础语法-基础概念及数据类型等
1. 关键字关键字就是java的保留字,也就是java语言设计之初给与这些字有特殊含义的字,并且在相关的开发工具入eclipse或者idea中字体颜色不同的字.2. 标识符标识符就是起名字,包括类名,变量名,方法名,接口名等.标识符不是随便写的,它必须遵循以下规则:2.1标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符2.2不能以数字开头...原创 2020-02-20 22:45:47 · 250 阅读 · 0 评论 -
二.java开发工具-eclipse/idea
一.eclipse的安装绿色版,下载解压即可养成好的习惯,放在没有中文没有空格的目录中,推荐二.eclipse的快捷键1、alt+? 或 alt+/:自动补全代码或者提示代码2、ctrl+o:快速outline视图3、ctrl+shift+r:打开资源列表4、ctrl+shift+f:格式化代码5、ctrl+e:快速转换编辑器6、ctrl+page down 或 ctrl+pag...原创 2020-02-20 21:59:15 · 395 阅读 · 0 评论 -
一.java-认识编程.认识java.
一.什么是程序?程序就是一段按照特定规则,可被计算机执行的代码块.代码块就是由一些字符组合起来,按照一定规律,可被计算机执行的文本.编程语言从发展历史上经历了3个阶段:机器语言->汇编语言->高级语言**机器语言**:机器能识别的语言,机器问什么能识别,因为机器就是由成千上亿的开关构成的,开关只有两种状态,即0,1.所以加入有1000个开关,每个开关有0和1两种状态.100个开关...原创 2020-02-20 20:51:42 · 146 阅读 · 0 评论