Java
文章平均质量分 93
深入详细理解Java相关体系知识
yZzzzzc98
一天一杯咖啡,心态不会崩溃,Java深入我心,我与offer同行。
快乐分享,快乐学习。
展开
-
Scala深入浅出——从Java到Scala
本文适合有一定Java基础的,并想系统学习Scala的小伙伴借鉴学习。文章有大量实例,建议自己跑一遍。Scala深入浅出——从Java到ScalaScala一、介绍1、什么是Scala?2、特点3、安装二、Scala特点三、scala的基本语法1、声明变量2、输出3、字符串4、数据类型4.1、scala类型层次结构5、标识符6、运算符7、表达式7.1、条件表达式7.2、块表达式7.3、循环7.3.1、for循环7.3.2、Breaks类7.3.3、while循环8、方法8.1、方法参数9、函数9.1、.原创 2020-09-05 21:36:45 · 402 阅读 · 0 评论 -
Java流中的map算子和flatMap算子的区别
map算子和flatMap算子map和flatMap都是映射(转换),那么他们之间究竟有什么区别呢?1.我们先简单了解下map算子: @org.junit.Test public void test1(){ List<String> words = Arrays.asList("hello","world"); words.stream() .map(Stri...原创 2020-03-28 21:13:00 · 459 阅读 · 0 评论 -
Java8 新特性——流式操作
流式操作流(Stream):Java8新增 , 用来处理我们集合的数据(与IO包里的流是完全不同的概念),倒是和Spark Streaming很像(反正是抄的)如何处理集合中的数据呢(为什么引入流)?声明式处理数据;(元素的内部迭代,不需要做外部迭代)【流可以把一些基础操作连接起来,用于表达更加复杂的数据处理的流水线】【类似自然语言,类似sql】流内部可以做并行操作。(内部迭代)【底层帮我们,多线程来处理数据,不需要我们来控制】先看一个小案例:public class Dish { //原创 2020-08-30 10:13:47 · 421 阅读 · 0 评论 -
基本类型与包装类判断是否相等问题
基本类型与包装类判断是否相等问题题目转自牛客网题目:有如下4条语句:Integer i01=59;int i02=59;Integer i03=Integer.valueOf(59);Integer i04=new Integer(59);以下输出结果为false的是: A.System.out.println(i01==i02); B.System.out.println...原创 2020-04-02 18:10:15 · 844 阅读 · 0 评论 -
你真的懂equals()吗?
Java中Integer的true或者false问题是一个非常常见的问题,也就是==和equals的关系,那你真的懂什么是equals吗?你可能会想:不就是比较地址和比较值嘛,小学生都会,那你怕是对equals有什么误解。本文参考:Java3y你真的懂equals()吗?之前我也以为这个知识点了,但是当我真正看到这道题时,我还是做错了。public class Main { public static void main(String[] args) { .原创 2020-08-13 19:10:30 · 200 阅读 · 0 评论 -
Java堆内存是线程共享的吗?
Java堆内存是线程共享的吗?看似简单却暗藏玄机。本文来源:敖丙。Java堆内存是线程共享的吗?Java对象的内存分配过程是如何保证线程安全的?什么是TLABTLAB带来的问题TLAB使用的相关参数总结多说几句Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点,所以,即使是一个Java的初学者,也一定或多或少的对JVM有一些了解。可以说,关于JVM的相关知识,基本是每个Java开发者必学的知识点,也是面试的时候必考的知识点。在JVM的内存结构中,比较常见的两个区域就是堆内.转载 2020-08-11 20:50:37 · 825 阅读 · 0 评论 -
深入浅出Java Volatile
volatile在java中很常见,比如懒汉式单例。那为什么单例模式要加volatile呢?加volatile究竟有什么用呢?现在我们深入剖析一下volatile关键字深入浅出Volatile(眼见为实)volatile 内存可见性与指令重排序1 内存可见性1.1 什么是内存可见性1.2 volatile 关键字解决内存同步问题2 指令重排序2.1 什么是指令重排序2.2 volatile如何解决指令重排序3 DCL单例需不需要加volatile?3.1 DCL单例模式3.2 对象的创建过程(原因)4.原创 2020-08-08 16:20:24 · 178 阅读 · 0 评论 -
MySQL分组TOPN终极详解
MySQL分组TOPN终极详细解释终极终极详细解释…因为比较详细,适合小白看(大佬请绕道)代码比较简单,但是我一开始纠结了好久,脑壳疼首先gruop by+limit 肯定是不可以的,下面演示一下1.建表CREATE TABLE `score_info` ( `id` BIGINT(18) NOT NULL AUTO_INCREMENT, `name` VARCHAR(20) DEFAULT NULL, `class_no` VARCHAR(10) DEFAULT NULL, `s原创 2020-08-02 23:03:01 · 2677 阅读 · 0 评论 -
不能用来修饰interface的有
不能用来修饰interface的有( )(仅限外部接口)题目:不能用来修饰interface的有( )(仅限外部接口)A privateB publicC protectedD static题目及解析均来源于牛客,仅用于学习,侵权删解析:1、抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native访问修饰符修饰。原因如下:抽象方法没有方法体,是用来被继承的,所以不能用private修饰;static修饰的方法可原创 2020-07-08 20:00:13 · 23372 阅读 · 0 评论 -
JUC学习笔记及拓展
JUC学习笔记及拓展Java JUC1 Java JUC简介2 volatile 关键字-内存可见性2.1 内存可见性2.2 volatile 关键字3 原子变量与CAS算法3.1 原子变量3.1.1 i++的原子性问题3.1.2 原子变量3.2 CAS算法3.2.1 ABA问题3.2.2 CAS在JAVA中底层的实现3.3 原子性与可见性区别4 ConcurrentHashMap4.1 锁粒度4.2 锁分段4.3 其它4.4 写入并复制5 CountDownLatch(闭锁)5.1 概念5.2 方法介绍6原创 2020-06-05 16:00:21 · 3691 阅读 · 4 评论 -
Web三大组件——filter的使用
filter的使用Filter1.概念2.快速入门1.步骤3.filter细节4.案例4.1 使用过滤器filter实现登录验证4.2 敏感词汇过滤servlet、filter 和 listener 并称为web三大组件,本篇将讲解filter,并能通过filter经典的案例的实现加深学习。关于servlet,可以看我之前的文章。学习Servlet看这一篇就够了Filterfilter与servlet在很多的方面极其相似,但是也有不同,例如filter和servlet一样都有三个生命周期方法,同时他原创 2020-06-02 17:49:03 · 360 阅读 · 0 评论 -
JSP、EL、JSTL的系统学习与配合使用
JSP、EL、JSTL的系统学习与配合使用JSP、EL与JSTLJSP入门1.概念2.原理3.JSP的脚本4.JSP的内置对象JSP进阶1.指令2.注释3.内置对象EL表达式1.概念2.作用3.语法格式4.注意事项5.EL表达式的使用JSTL1.概念2.作用3.使用步骤4.常用的JSTL标签1.if2.choose3.foreach5.小练习JSP、EL与JSTLJSP入门1.概念Java Server Pages:Java服务器页面一个比较特殊的页面:可以定义html标签在前端页面展示 还原创 2020-06-02 10:16:04 · 709 阅读 · 1 评论 -
学习Servlet看这一篇就够了
Servlet深入学习Servlet入门1.概念2.快速入门3.执行原理4.Servlet的生命周期5.Servlet的优化6.IDEA和tomcat的相关配置信息的底层原理7.Servlet的体系结构HTTP1.概念:超文本传输协议2. 请求数据的数据格式 request1.请求行2.请求头3.请求空行4.请求体(正文)request1.request对象和response对象的执行原理2.request对象继承体系结构3.request功能1.获取请求消息数据1.获取请求行数据2.获取请求头数据3.获取原创 2020-06-02 09:52:34 · 512 阅读 · 0 评论 -
深入理解Java虚拟机——01_JVM初识
JVM初识JVM简介1.JVM的位置2.一些常见的JVM3.Android虚拟机 DVM4.JVM类加载机制4.1.java代码执行流程4.2.栈的指令集架构和寄存器的指令集架构4.3.jvm生命周期4.3.1.启动4.3.2.执行4.3.3.退出JVM简介1.JVM的位置2.一些常见的JVM使用JIT(编译器)能提升效率,但是程序刚运行时,因为要翻译成机器指令,加载到缓存会卡顿,暂停一下。解释器和JIT可以理解为步行和乘公交车。解释器步行上班,JIT乘公交车上班(需要等公交,转车的时候等待,原创 2020-05-26 11:43:44 · 604 阅读 · 0 评论 -
实现简单的用户登录案例
用户登陆案例所需技术:Servlet + html + Mysql + JDBCTemplate + Druid + tomcat需求分析编写login.xml页面 username password 两个输入框 还有一个提交按钮使用Druid数据库连接池技术 ,操作mysql java_123数据库 user表 (id,name,pwd,insert_time)使用JDBCTemplete 封装JDBC在后台判断用户名和密码是否正确:正确:跳转到登录成功页面 页面展示:某某某 欢迎原创 2020-05-24 15:02:25 · 1089 阅读 · 0 评论 -
会话技术之Cookie与Session讲解
好记性不如烂笔头会话技术会话:一次会话包含多个请求和响应.一次会话: 浏览器第一次给服务器发送请求时,会话建立,直到有一方断开连接为止. (浏览器关闭 || 服务器崩溃 等)功能:在一次会话的范围内的多次请求间共享数据方式:Cookie:客户端会话技术Session:服务器端会话技术Cookie概念:客户端会话技术,将数据保存在客户端浏览器中快速入门:创建Cookie对象,绑定数据new Cookie(String name, String v.原创 2020-05-22 15:41:20 · 189 阅读 · 0 评论 -
JDBC使用及其详解
JDBC学习目标理解JDBC相关概念(面试问到的时候,你能通过自己的语言描述说明什么是JDBC)能够熟练使用JDBC相关的类和接口一、初识1.概念Java DataBase Connectivity。Java 数据库连接, Java语言操作数据库2.本质其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。3.步骤//1.导包(对应数据原创 2020-05-16 09:37:22 · 305 阅读 · 0 评论 -
Java多线程的wait(),notify(),notifyAll()、sleep()和yield()方法使用详解
Java多线程中的wait(),notify(),notifyAll()、sleep()和yield()方法我们先从一个案例开始:static public class WaitingTest { //static创建静态对象,确保是同一个monitor对象 static Object obj = new Object(); public static void main...原创 2020-03-18 21:56:00 · 173 阅读 · 0 评论 -
Java网络编程之BS架构中的服务器
Java网络编程之BS架构中的服务器模拟网站服务器,使用浏览器访问自己编写的服务端程序,查看网页效果。案例分析准备页面数据,web文件夹。复制到我们Module中,比如复制到day08中我们模拟服务器端,ServerSocket类监听端口,使用浏览器访问public static void main(String[] args) throws IOException { S...原创 2020-03-15 14:03:38 · 975 阅读 · 0 评论 -
Java Lambda表达式与函数式接口
Lambda表达式1.什么是Lambda表达式:简洁的表示可以传递的匿名函数的一种方式。没有名称,但是有参数列表,函数主体,返回类型。2.Lambda表达式的特性:匿名:和普通方法不一样,没有一个明确的名字;函数:Lambda表达式不属于任何一个类;传递:Lambda表达式可以作为参数(传递给方法,赋值给变量);简洁:不需要像内部类那样,需要写很多的模板代码。3.L...原创 2020-03-25 12:21:00 · 117 阅读 · 0 评论 -
JAVA反射概念及使用详解(超详细)
JAVA反射概念及使用详解一、什么是反射?反射:框架设计的灵魂框架:半成品软件。可以在框架的基础上进行软件开发,简化编码反射:将类的各个组成部分封装为其他对象,这就是反射机制 好处: 可以在程序运行过程中,操作这些对象。 可以解耦,提高程序的可扩展性。图片来源https://blog.csdn.net/qsbbl/article/details...原创 2020-03-18 21:43:00 · 472 阅读 · 0 评论 -
为什么内部类只能访问finally修饰的外部局部变量
为什么内部类只能访问finally修饰的外部局部变量?首先要明确的是:内部类和外部类是处于同一个级别的,内部类不会因为定义在方法中就会随着方法的执行完毕就被销毁。public class Test{ public void test(final int b){ final int a = 10 ; new Thread(){ ...原创 2020-03-22 12:06:00 · 164 阅读 · 0 评论 -
行为参数化 案例分析
行为参数化什么是行为参数化? 行为参数化是指可以帮我们处理频繁变更的需求的一种通用的解决方案。案例:根据重量和颜色筛选苹果public class Apple { private String color = ""; private int weight = 0; public Apple(String color, int weight) { super()...原创 2020-03-25 12:29:00 · 202 阅读 · 0 评论 -
Java注解 看这一篇就够了
注解1.概念注解:说明程序的。给计算机看的注释:用文字描述程序的。给程序员看的注解的定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。2.作用①编写文档:通过代码里标识的注解生成文档【生成文档do...原创 2020-03-20 10:22:00 · 250 阅读 · 0 评论 -
多线程的CAS
CASCompare And Swap (Compare And Exchange) / 自旋 / 自旋锁 / 无锁独占锁:独占锁是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。它认为在它修改之前,一定会有其它线程去修改它,悲观锁效率很低。乐观锁(用到的机制就是CAS):每次不加锁而是假设没有冲突而去完成某项操作,如果因...原创 2020-03-22 20:38:00 · 221 阅读 · 0 评论 -
Java中Stream的map算子和flatMap算子详解
map算子和flatMap算子map和flatMap都是映射(转换),那么他们之间究竟有什么区别呢?1.我们先简单了解下map算子: @org.junit.Test public void test1(){ List<String> words = Arrays.asList("hello","world"); words.stream() .map(String::l...原创 2020-03-28 21:58:59 · 942 阅读 · 0 评论