
java
文章平均质量分 70
逆袭的小学生
Java后端开发
展开
-
Mac m1 电脑 idea 卡顿的问题解决
公司发的mac m1重装系统后贼卡,我一直以为是系统兼容性的问题,平时自己太忙(懒)了,一直没看,今天抽空看了一下发现是贼简单的问题,对自己无语了。其实就是下载错版本了,可以看下打开about看下自己的版本,如果不是aarch64,而是x86,那就是版本错了。然后去idea官网再下一个就好了,估计我当时下错就是没点那个下拉按钮。。。。...原创 2022-02-02 12:48:28 · 4665 阅读 · 5 评论 -
Java内部类与静态内部类区别
静态内部类与普通内部类的简介与区别、私有内部类的作用原创 2021-02-04 16:25:51 · 713 阅读 · 0 评论 -
AQS详解
前言:之前AQS、ReentrantLock、CountLatchDown大概原理都看懂了,面试的时候一问能说个大概,感觉这样也就行了,跟背课文一样背源码也没什么意思,但是根据被拒的情况可能只说个大概不能满足面试官,今天结合源码好好看一遍,适合有一定基础的同学。参考:https://blog.youkuaiyun.com/u013728021/article/details/87358517https://www.cnblogs.com/waterystone/p/4920797.html第一章 AQS原创 2020-10-05 22:16:13 · 1799 阅读 · 0 评论 -
CAS详解
前言:只知道CAS是比较修改貌似在面试中还是不够,面试还需要知道CAS的缺陷,CAS的应用场景,CAS的底层实现原创 2020-10-03 12:39:08 · 1477 阅读 · 0 评论 -
AQS实现ReentrantLock和CountLatchDown详解
前言:之前AQS、ReentrantLock、CountLatchDown大概原理都看懂了,面试的时候一问能说个大概,感觉这样也就行了,跟背课文一样背源码也没什么意思,但是根据被拒的情况可能只说个大概不能满足面试官,今天结合源码好好看一遍,适合有一定基础的同学。第一章AQS概要第二章 基于AQS实现ReentrantLock第三章 基于AQS实现CountLatchDown第四章ReentrantLock和booleanlock这个是因为我之前看过bool...原创 2020-10-11 22:06:57 · 691 阅读 · 0 评论 -
Java网络编程入门(四)
前言:这是本人在慕课网上学习 一站式学习Java网络编程 全面理解BIO/NIO/AIO 时所做的笔记,供本人复习之用,在入门二和三中讲述了如何实现一个BIO聊天室和NIO的基本概念后,本文主要讲述如何实现一个基于NIO的聊天室,不保证一定准确。目录第一章 NIO编程模型第二章 ChatServer第三章 ChatClient3.1 客户端3.2 处理读入的类第一章 NIO编程模型我们要在单个线程中处理多个IO操作,首先我们有一个Selector,我们在服务器端启动我们的Se原创 2020-10-02 14:52:48 · 268 阅读 · 0 评论 -
Java网络编程入门(三)
前言:这是本人在慕课网上学习 一站式学习Java网络编程 全面理解BIO/NIO/AIO 时所做的笔记,供本人复习之用,本文主要讲述NIO的概念,并比较下不同类型IO(阻塞式、非阻塞式等)的速度,不保证一定准确。目录第一章 NIO概述1.1 由来1.2 基本概念第二章 Buffer2.1 写模式2.2 读模式第三章 Channel第四章 多方法实现本地文件拷贝第五章 Selector5.1 channel的状态5.2 基本操作第一章 NIO概述1.1原创 2020-10-02 12:02:28 · 290 阅读 · 0 评论 -
JUC阻塞队列BlockingQueue
前言:最近面试和手动创建线程池时都用到了阻塞队列,不由得产生好奇,探究一下原理参考:https://www.cnblogs.com/tjudzj/p/4454490.htmlhttps://www.cnblogs.com/it-science/p/5721104.html第一章 基础使用JUC中实现一个阻塞队列一般都会实现BlockingQueue接口,主要方法说明第二章 实现原理网上说的主流的阻塞队列实现有两种,分别是ArrayBlockingQueue和Linked.原创 2020-10-11 20:00:03 · 318 阅读 · 0 评论 -
Java网络编程入门(二)
前言:这是本人在慕课网上学习 一站式学习Java网络编程 全面理解BIO/NIO/AIO 时所做的笔记,供本人复习之用,本文主要讲述BIO,并实现一个基于BIO的聊天室,不保证一定准确。目录第一章 一个简单的客户端、服务端通信的例子第二章 BIO编程模型2.1 基于BIO的聊天室2.2 聊天室服务端2.3 聊天室客户端第一章 一个简单的客户端、服务端通信的例子懒得讲解了,直接上代码,应该都能看懂1.1 服务端package bio;import java.io.原创 2020-09-25 13:15:16 · 290 阅读 · 0 评论 -
JVM内存模型再理解
前言:之前看过JVM的内存模型,无非是方法区、堆、本地栈、程序计数器、虚拟机栈,然后区别哪个是线程私有,哪个是线程共享,大概是干什么的,存的是什么,其余的似乎没了解太多,如看常量池到底存储在哪?什么样的东西会存储在常量池?类的元信息存储在元空间,类的元信息包括什么?所以今天重新学了一下JVM内存模型,说点高级内容,知识来源于网络,不保证一定没问题,这块网上好像也没个准信,等以后有机会再深入一下吧。第一章 JVM内存模型概要根据 JVM 规范,JVM 内存共分为程序计数器,虚拟机栈、本地方法栈,堆、方原创 2020-09-24 21:40:43 · 211 阅读 · 0 评论 -
Java高并发编程详解学习笔记(五)
前言:要秋招了,复习一下应对秋招,纠结该先看啥,最后决定先学习《Java高并发编程详解》,此博客为看书所写的笔记,因为是笔记,所以会只记比较重要的东西,不适合初学者。第一章 volatile关键字介绍当开启两个线程同时操作某个数据时,一个对线程对数据进行读操作,一个对数据进行写操作,一个线程可能会感知不到另一个线程对数据做的修改,即在一个线程中修改某个数的值,另一个线程感知不到。这样是为什么呢,可以看下面的解释。1.1 机器硬件CPU在计算机中,所有的运算操作都是由CPU的寄存器来完成的,C原创 2020-09-16 21:43:59 · 291 阅读 · 0 评论 -
Java高并发编程详解学习笔记(四)
前言:要秋招了,复习一下应对秋招,纠结该先看啥,最后决定先学习《Java高并发编程详解》,此博客为看书所写的笔记,因为是笔记,所以会只记比较重要的东西,不适合初学者。参考:https://blog.youkuaiyun.com/weixin_42447959/article/details/81675512第一章 类的加载过程ClassLoader的主要职责就是负责加载各种class文件到JVM中,ClassLoader是一个抽象的的class,给定一个class的二进制文件名,ClassL..原创 2020-09-13 22:20:27 · 373 阅读 · 0 评论 -
Java高并发编程详解学习笔记(三)
前言:学了一些高并发编程的知识了,打算针对几个难点敲点代码加深一下理解。第一章 interrupt当线程进入阻塞状态时,另一个线程调用被阻塞线程的interrupt()方法,将会使被阻塞线程中断阻塞,一个线程在阻塞的情况下被打断会抛出异常。可以看到,线程被打断并抛出异常后,继续执行。public class Interrupt { public static void main(String[] args) { Thread thread = new Thread(原创 2020-08-04 15:25:38 · 309 阅读 · 0 评论 -
Java编程题笔试常用API
前言:有家有公司联系上了我,然后要在牛客网参加一场笔试,之前搞ACM的时候都是用的C++,现在做后端开发都用java了,想用java答题了,虽然java麻烦点,但是从长远看,更有利于我java水平的提高,所以总结了一下java在编程题中常用的API,到时候好查,不保证一定没问题,只是我自己的理解,事关面试很重大还是要自己敲一遍的,出问题别找我。参考:https://blog.youkuaiyun.com/weixin_43217942/article/details/83043120https://www.原创 2020-07-14 17:30:52 · 1808 阅读 · 0 评论 -
Java高并发编程详解学习笔记(二)
前言:要秋招了,复习一下应对秋招,纠结该先看啥,最后决定先学习《Java高并发编程详解》,此博客为看书所写的笔记,因为是笔记,所以会只记比较重要的东西,不适合初学者。第三章 ThreadAPI的详细介绍第四章 线程安全与数据同步第五章 线程间通信...原创 2020-06-27 21:36:08 · 337 阅读 · 0 评论 -
Java高并发编程详解学习笔记(一)
前言:要秋招了,复习一下应对秋招,纠结该先看啥,最后决定先学习《Java高并发编程详解》,此博客为看书所写的笔记,因为是笔记,所以会只记比较重要的东西,不适合初学者。参考:https://blog.youkuaiyun.com/q610376681/article/details/87922812目录第一章 快速认识线程1.1 线程的生命周期1.2 模板设计模式在Thread中的应用1.3 策略模式在Thread中的使用第二章 深入理解Thread构造函数2.1 线程的命名2.2原创 2020-06-25 01:03:53 · 642 阅读 · 0 评论 -
Java String,StringBuilder,StringBuffer初步理解
前言:做文件操作的时候又用到了String,因为之前看过String的一点东西,一直担心会不会内存溢出啥的,还有StringBuilder和String,所以找了篇帖子来系统学一下。参考:...原创 2020-06-24 03:22:04 · 232 阅读 · 0 评论 -
Java网络编程入门(一)
前言:这是本人在慕课网上学习 一站式学习Java网络编程 全面理解BIO/NIO/AIO 时所做的笔记,供本人复习之用。第一章 Socket概述第二章 同步异步阻塞非阻塞第三章 网络通信中的线程池...原创 2020-04-14 16:45:22 · 423 阅读 · 0 评论 -
Java操作字符流与字节流
前言:这几天在做一些文件的解压加密上传工作,经常用到Java操作字符流与字节流,所以总结一下,本科来自原创 2020-03-05 19:21:41 · 508 阅读 · 0 评论 -
Lambda表达式语法及应用入门
前言:在慕课网上学习一课掌握Lambda表达式语法及应用 所记的笔记,供本人复习之用。目录第一章 为什么引入Lambda表达式1.1 什么是Lambda1.2 Model Code as Data1.3 功能接口的设计及优化1.4 为什么要用Lambda表达式第二章 Lambda表达式基础知识2.1 函数式接口2.1.1 基本使用2.1.2 jdk中常见的...原创 2020-01-01 15:10:43 · 1209 阅读 · 0 评论 -
Java线程池初步理解
前言:在慕课网上学习剑指Java面试-Offer直通车时所做的笔记.目录第一章 基本概念1.1 Fork/Join框架1.2 为什么要使用线程池第二章 源码理解2.1 J.U.C的三个Executor接口第三章 线程池的设计与实现3.1 线程池的构造函数3.2 线程池的执行步骤3.3 线程池的状态3.4 生命周期与线程池大小选定第一章 基本概念...原创 2019-09-18 18:08:11 · 273 阅读 · 1 评论 -
关于eclipse中包的相关问题
首先需要将jar包导入到项目中,右键点击该包,直接Add to build path即可,如果在jar包前看到一个奶瓶状的图标,表示该包可以正常使用。然后直接import导入需要使用的类即可。另外我发现在web项目中,jar不需要导入,只需直接复制粘贴进WEB-INF/lib中,jar包就会自动被导入到项目中,具体可以在web app libraries中查看。jar包中有一级一级的类似于源代码的...原创 2018-06-16 10:52:39 · 289 阅读 · 0 评论 -
关于java中==号的一点了解
今天碰到了一个类重写了equal与hashcode的类。 不解,百度,发现了一个知识漏洞1. Java中判断两个变量是否相等有两种方式:一种是利用==运算符,另一种是利用equals方法。如果变量是基本类型,那么使用==和使用equals会得到相同的结果,都是判断变量的值是否相对。如果变量是引用类型,==运算符判断变量是否指向同一引用对象,equals判断变量”值”是否相等。Java值类型对应的原创 2015-11-28 16:51:30 · 606 阅读 · 0 评论 -
mysql与sqlsever 2008 链接java步骤以及问题解决方案
两个服务使用的不同端口,应该是可以同时使用的。默认情况下,mysql使用的是3306,sqlserver使用1433。你可以检查一下相关服务和端口是否正常启动和开启,并检查事件日志。mysql安装常见问题 http://blog.youkuaiyun.com/mhmyqn/article/details/17043921JDBC驱动包不由任何官网提供统一的下载,而是每个数据库的开发商负责提供,比如S原创 2015-11-26 22:06:28 · 557 阅读 · 0 评论 -
java Class.forname与SelectMethod=Cursor
今天在加载数据库的时候碰到了这两个东西。知识点:反射。首先加载数据库驱动的时候用到了Class.forname。用法:Class.forname(“类名”),注意需要加上包的路径作用:首先java要执行程序编译后需要虚拟机进行加载,Class.forname便是让虚拟机加载指定的类,一般类里都会静态块,这样加载时静态块就会运行,实现一些初始化操作。例子:如加载数据库驱动的时候就会执行数据库里的静态代原创 2015-12-09 22:31:15 · 1031 阅读 · 0 评论 -
java 关于setContentPane与getContentPane
此文为转载,请大家到原网址看,本人只是为了查找方便。原网址:http://www.it165.net/pro/html/201301/4662.html首先来看一段代码:package test; import java.awt.Color; import javax.swing.JFrame; public class TestJFrame extends JFrame { public转载 2015-11-17 10:53:26 · 2121 阅读 · 0 评论 -
java学习小结 11.9
首先说一下,很多问题与回答都是别人的,这里是本人为了忘了好找和好记而堆到了一起,有侵权请联系我。。。。。。一非静态内部类为什么不能定义静态变量 但final又可以。public class Outer{ class Inner{ public static int i = 0;//报错 public static f原创 2015-11-09 22:22:58 · 507 阅读 · 0 评论 -
java 中 Cannot make a static reference to the non-static 解决方法
今天敲代码的时候遇到了这个问题,大体这个问题可以简化成这样;public class Test1 { public String get() { return "123"; } public static void main(String[] args) { String string =get(); }}显示 Ca原创 2015-10-23 12:32:22 · 99611 阅读 · 10 评论 -
java继承和多态、接口小结
详细代码自己找自己敲,以下会不定时更新。一个文件中只能有一个公共类 java的继承只能是单继承。一个类之所以能够调用父类成员,是由于java编译器会自动为子类添加一个引用名为super的父类成员对象。创建子类对象的过程就是从底层的基类往上,一层层地来调用构造方法。如果调用父类的有参构造方法,需要用到super关键字。多态: 多态具体表现在重写和重载 多态就是类的多种表现方式 比如同名不同参原创 2015-10-06 12:17:35 · 1464 阅读 · 0 评论 -
Java 访问修饰符与默认构造函数
第一章:访问修饰符 Java访问修饰符包括private,default,protected和public。含义分别表示私有的,默认的,受保护的和公有的访问修饰符。这些访问修饰符既可以修饰类中的属性,又可以修饰类中的方法,而public和default还可以修饰类。在同一个java文件里,公有类有且仅有一个,并且该文件命名为类名.java。 注:(内部类还时可以用p...原创 2018-09-08 19:50:55 · 3013 阅读 · 3 评论 -
Java 接口、继承与多态
第一章 继承 1.1 概念1.1.1 继承的范围 在java中,子类可以继承父类的所有的方法和属性变量,private也能被继承但是不能被访问,可以通过public在父类中调用,子类继承父类的一切东西. <Thinking i...原创 2018-09-10 12:32:53 · 420 阅读 · 0 评论 -
如何理解 public static <T> T 与Class ? [] clazz
前言:最近看源码的时候经常见到标题中的两处代码public static <T> T 与Class<?>[] clazz(因为提交时显示非法字符,所以题目?两边少了两个括号),有点不知道什么意思,就查阅了资料整理如下,下面的资料来源于网上与个人理解..目录第一章 public static T methodName1.1的意义1.2 使用Test2类的t...原创 2019-03-14 22:43:56 · 18877 阅读 · 4 评论 -
jmm内存可见性与CAS
前言:在慕课网上学习剑指Java面试-Offer直通车时所做的笔记,供本人复习之用.目录第一章 Java内存模型第二章 JMM中的主内存和工作内存2.1 主内存与工作内存介绍2.2 JMM与JVM的区别2.3 可见性问题2.4 指令重排序需要满足的条件2.5 happens-before原则2.5.1 例12.5.2 volatile2.5.3 例2...原创 2019-09-17 12:03:59 · 1079 阅读 · 0 评论 -
synchronized底层实现原理与ReentrantLock初步理解
前言:在慕课网上学习剑指Java面试-Offer直通车时所做的笔记,供本人复习之用,比较难,我也没大懂,只记录大概意思以后有接触了再改,想要详细解说的不建议看这篇博客.目录第一章 对象在内存中的布局第二章 Monitor2.1 Monitor在字节码中的表示第三章 锁的优化3.1 自旋锁与自适应自旋锁3.1.1 自旋锁3.1.2 自适应自旋锁3.2 锁消除3...原创 2019-09-15 13:19:38 · 1362 阅读 · 2 评论 -
JavaGC初步理解
前言:在慕课网上学习剑指Java面试-Offer直通车时所做的笔记目录第一章 对象被判定为垃圾的标准1.1 引用计数法1.2 可达性分析算法第二章 垃圾回收算法2.1 标记-清除算法(Mark and Sweep)2.2 复制算法2.3 标记-整理算法(Compacting)2.4 分代收集算法2.4.1 Minor GC2.4.2 Full GC第...原创 2019-09-12 10:15:19 · 205 阅读 · 0 评论 -
java集合框架初步理解
前言:这是在慕课网上学习剑指Java面试-Offer直通车时所做的笔记,主要供本人复习之用.目录第一章 Collection第二章 集合之List和Set2.1 ArrayList2.2 Vector2.3 LinkedList2.4 HashSet2.5 TreeSet2.5.1 自然排序2.5.2 客户化排序第三章 集合之map3.1 Hash...原创 2019-04-26 10:11:55 · 527 阅读 · 0 评论 -
synchronized的初步使用
前言:这是在慕课网上学习剑指Java面试-Offer直通车时所做的笔记,主要供本人复习之用.目录第一章 线程安全问题诱因第二章 互斥锁第三章 获取对象锁3.1 实例代码13.2 实例代码2第四章 类锁4.1 实例代码14.2 实例代码24.3 实例代码3第五章 总结第一章 线程安全问题诱因1.存在共享数据(也称临界资源)2.存在多条线程共同操...原创 2019-04-25 20:09:41 · 312 阅读 · 1 评论 -
Java多线程与并发初步理解
前言:这是在慕课网上学习剑指Java面试-Offer直通车时所做的笔记,主要供本人复习之用.目录第一章 进程和线程的区别1.1 进程和线程的由来1.2 进程与线程的区别1.3 Java进程和线程的关系1.4 证明java程序存在主线程第二章 Thread中start和run方法的区别2.1 实际现象2.2 源码分析第三章 Thread和Runnable是什么...原创 2019-04-03 19:34:59 · 456 阅读 · 0 评论 -
Java类初始化顺序(变量赋值与静态代码块的执行时间)
前言:最近写代码的时候经常见到见到static代码块,不由对static的执行时间产生了兴趣,进而对类初始化顺序产生了兴趣.类从编译到执行的过程:在使用ClassLoader将字节码转换为JVM中的Class<Robot>对象时,要下图所示进行几个过程.所以类的初始化就在第三步,总的来说遵守下面的规则:1、 假如这个类还灭有被加载和连接,那就先加载和连接2、...原创 2019-03-09 19:11:43 · 2909 阅读 · 2 评论 -
JVM初步理解
前言:在慕课网上学习剑指Java面试-Offer直通车时所做的笔记目录第一章 对Java的理解第二章 Java平台无关性如何实现第三章 JVM如何加载class文件第四章 什么是反射4.1 反射的概念4.2 反射的简例第五章 ClassLoader5.1 ClassLoader的双亲委派机制5.2 loadClass和forName的区别第六章 Jav...原创 2019-03-06 20:46:54 · 493 阅读 · 3 评论