Java基础
文章平均质量分 95
Java基础
Duktig丶
这个作者很懒,什么都没留下…
展开
-
synchronized的锁升级过程
synchronized 在多线程和高并发中经常用到,尤其是 synchronized 在JDK6之后进行了优化,效率堪比Lock锁,甚至犹有过之。也是面试中的常客。本篇文章就以清晰的流程来阐述 synchronized 的锁升级过程,以及是怎么进行标识的。原创 2021-10-01 11:52:56 · 281 阅读 · 0 评论 -
Java解决线程安全问题
文章目录背景1. 线程安全问题1.1 什么是线程安全?1.2 产生的原因1.3 实例(买票超卖问题)1.4 如何确定是否存在线程安全问题?2. 如何解决线程安全问题?2.1 不可变(Immutable)2.2 变量私有化2.2.1 栈封闭(主要为局部变量)2.2.2 线程本地存储(Thread Local Storage)2.3 互斥同步2.4 非阻塞同步2.4.1 CAS2.4.2 Atomic(原子操作)3. 总结和分析参考背景原文地址:https://duktig.cn/archives/36/原创 2021-07-24 20:25:37 · 1420 阅读 · 4 评论 -
反射实现一个servlet处理多个接口请求
反射实现一个servlet处理多个接口请求还记得在刚开始学习JavaEE的时候,在使用Servlet时,一个Servlet只能处理一个请求,写在`doGet`或是`doPost`的方法中。这样会造成如果接口API多的话,会产生大量的Servlet文件,造成类爆炸,而且项目结构并不清晰。解决办法是可以采用反射实现一个servlet处理多个接口请求。使用反射实现一个servlet处理多个接口请求,如果想要添加一个接口的API就不必再新增一个servlet文件了,直接添加方法就可以了。原创 2020-07-06 16:33:13 · 1106 阅读 · 0 评论 -
实例理解Java反射机制
深入浅出理解什么是Java反射机制什么是反射?理解Class反射的功能和应用反射操作运行时类的对象原创 2020-07-06 16:03:57 · 1029 阅读 · 2 评论 -
实例理解Java8新特性中Stream API和Optional类的使用
在学习Java8新特性中Stream API和Optional类的时候,发现学习的时候不系统,用的时候总是忘记怎么去使用。所以总结一些实例,便于理解其使用。实例理解Java8新特性中Stream API和Optional类的使用原创 2020-06-21 16:55:17 · 1448 阅读 · 0 评论 -
实例理解Java8新特性中Lambda表达式和函数式接口的使用
在学习Lambda表达式和函数式接口的时候,发现学习的时候不系统,用的时候总是忘记怎么去使用。所以总结一些实例,便于理解其使用。实例理解Java8新特性中Lambda表达式和函数式接口的使用原创 2020-06-21 16:51:58 · 1504 阅读 · 2 评论 -
Java实现类加载机制简介
Java实现类加载机制简介图解类加载过程原创 2020-06-19 09:09:52 · 445 阅读 · 0 评论 -
如何使用Java异常处理?
如何使用Java异常处理?为什么会出现异常?详解异常处理机制详解自定义异常详解手动抛出异常原创 2020-06-06 11:21:57 · 793 阅读 · 0 评论 -
Java抽象类VS接口
抽象类与抽象方法修饰对象abstract可以用来修饰的结构:类、方法注意事项不能用abstract修饰变量、代码块、构造器;不能用abstract修饰私有方法、静态方法、 final的方法、 final的类。抽象类随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。抽象类是用来模型化那些父类无法确定全部实现,而是由其子类提供具体实现的对象的类。原创 2020-06-05 10:18:09 · 270 阅读 · 0 评论 -
Java包装类VS基本数据类型
关于Java包装类,这些你都知道吗?为什么使用包装类?基本数据类型、包装类与String的相互转换自动拆箱与装箱原创 2020-06-05 09:33:33 · 281 阅读 · 0 评论 -
Java理解误区——方法的重载是多态性的一种体现?
理解误区——方法的重载是多态性的一种体现?方法的重载是多态性的一种体现吗? 其实这是一个误区,让我很长的一段时间都理解错了,直到又一次系统复习Java的时候才理解,方法的重载并不是是多态性的一种体现.什么才是多态性?原创 2020-06-05 09:22:41 · 5757 阅读 · 12 评论 -
Java的这些细小知识,你都知道吗?——类与对象
Java的这些细小知识,你都知道吗?详解如何使用Java的类与对象?详解类与对象的关系。Java语言基本元素详解类的基本成员原创 2020-06-05 08:53:56 · 264 阅读 · 0 评论 -
Java的面向对象细节,你都知道吗?
深入理解Java面向对象面向对象简介何为“面向对象”的编程思想?详解面向对象的三大特性如何使用封装、继承、多态?原创 2020-06-05 08:32:09 · 333 阅读 · 0 评论 -
如何使用Java关键字this和super
@@TOCthisthis是什么?在Java中, this关键字比较难理解,它的作用和其词义很接近。它在方法内部使用,即这个方法所属对象的引用;它在构造器内部使用,表示该构造器正在初始化的对象。this理解为:当前对象 或 当前正在创建的对象this关键字的使用this 可以调用类的属性、方法和构造器this修饰属性和方法:在类的方法中,我们可以使用"this.属性"或"this.方法"的方式,调用当前对象属性或方法。但是,通常情况下,我们都选择省略"this."。特殊情况下,原创 2020-06-04 22:18:56 · 442 阅读 · 0 评论 -
深入浅出Java数组及其内存机制
数组作为java中非常常用的一种数据结构,其重要性可想而知。这篇博客不仅简单详细介绍Java数组的使用,而且图解数组的内存解析。原创 2020-05-27 15:37:49 · 1474 阅读 · 0 评论 -
如何使用Java程序控制语句?
Java程序流程控制流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。程序流程控制的分类顺序结构程序从上到下逐行地执行,中间没有任何判断和跳转。分支结构根据条件,选择性地执行某段代码。有if…else和switch-case两种分支语句。循环结构根据循环条件,重复性的执行某段代码。有while、 do…while、 for三种循环语句。注: JDK1.5提供了foreach循环,方便的遍历集合、数组元素顺序结构J转载 2020-05-26 21:50:44 · 491 阅读 · 0 评论 -
如何使用Java运算符?
Java运算符运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。运算符分类算术运算符赋值运算符比较运算符(关系运算符)逻辑运算符位运算符三元运算符算数运算符算术运算符的注意问题注意i++和++i的运算,前者先运算后取值,后者先取值后运算。如果对负数取模,可以把模数负号忽略不记,如: 5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例如:原创 2020-05-25 21:16:05 · 1204 阅读 · 0 评论 -
Java基本语法——关键字和保留字、标识符、变量、数据类型
Java基本语法——关键字和保留字、标识符、变量关键字定义被Java语言赋予了特殊含义,用做专门用途的字符串(单词)。特点关键字中所有字母都为小写。官方网址https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html关键字分类保留字现有Java版本尚未使用, 但以后版本可能会作为关键字使用。...原创 2020-03-24 21:50:07 · 759 阅读 · 0 评论 -
实现评论回复功能没思路?从数据库设计到java实现再到前端显示,手把手教你如何实现评论回复功能
很多项目或者系统都有评论或者回复的需求,但评论回复的实现往往都比较复杂,也不好实现。 这篇文章详细介绍,从数据库设计到java后端实现,再到前端回显评论数据库,让评论回复功能的实现不在那么复杂。原创 2020-05-25 15:41:03 · 6863 阅读 · 18 评论 -
java为实体类的成员变量设置默认值(mybatis为前台传的分页信息设置默认值)
java为实体类的成员变量设置默认值问题背景最近在使用mybatis写分页的时候,封装了一个PageVO用来接收前台传来的分页信息,但是这样的话,每次都需要传递分页的信息比较麻烦,就想着是否可以为分页信息设置默认值,比如默认当前页是0,每页显示20条数据。PageVOimport lombok.Data;@Datapublic class PageVO { /** 当前页 */ private Integer currentPage; /** 当前页显示数据的条数原创 2020-05-20 11:37:14 · 14702 阅读 · 0 评论 -
Java二进制、八进制、十进制、十六进制及其相互转换
Java二进制、八进制、十进制、十六进制及其相互转换进制的基本介绍所有数字在计算机底层都以二进制形式存在。对于整数,有四种表示方式:二进制(binary): 0,1 ,满2进1.以0b或0B开头。十进制(decimal): 0-9 ,满10进1。八进制(octal): 0-7 ,满8进1. 以数字0开头表示。十六进制(hex): 0-9及A-F,满16进1. 以0x或0X开头表示。此...原创 2020-03-28 22:31:05 · 1742 阅读 · 0 评论 -
Java代码不够规范?从注释做起
Java代码不够规范?写的代码纷乱不忍直视。想让代码变得简洁,可读性高,从注释做起.原创 2020-03-19 23:16:44 · 171 阅读 · 0 评论 -
Java语言概述
Java语言概述Java简介是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言。是一种面向Internet的编程语言。 Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。 这些Java程序被称为Java小程(applet)。 applet使用现代的图形用户界面与Web用户进行交互。 applet内嵌在...原创 2020-03-19 22:58:12 · 794 阅读 · 0 评论 -
理解误区——mysql中tinyint与Java的数据类型的对应关系;tinyint(1) 与tinyint(4)的区别
理解误区1 在最初学习Java和MySQL的时,一直使用的是Boolean来接受tinyint类型的数据。具体操作:在数据库中设置TINYINT(1),存储0和1;在Java中使用boolean来接受,0代表false,1代表true。在潜意识中一直以为MySQL的tinyint对应Java的Boolean,其实这个是错误的。 直到后来使用tinyint存不是0和1的数之后,才考虑到J...原创 2020-02-01 12:25:12 · 17712 阅读 · 6 评论 -
Java值类型和引用类型的区别
背景 最近在学习Java的设计模式时候,总是经常遇到值类型和引用类型的传递问题。跟着视频和教程去听的时候总是感觉一知半解,所以总结下来。定义 值类型:又称基本数据类型。值类型表示复制一个当前变量传给方法,当你在这个方法中改变这个变量的值时,最初生命的变量的值不会变。 值类型就是我们经常所说的4类8种:整型:byte,short,int,long浮点型:float,double字符型...原创 2020-01-17 16:54:35 · 1907 阅读 · 1 评论 -
String、StringBuffer和StringBuilder的区别以及应用
String、StringBuffer和StringBuilder的区别详解String内存解析详解String、StringBuffer和StringBuilder的应用原创 2019-11-09 14:37:15 · 441 阅读 · 1 评论 -
整数和字符串反转的几种方法
整数和字符串反转的几种方法(java)前言:只要是关于int和String类型的反转类问题,都可以用以下方法进行解决方法一:数字利用除和取余反转public int reverseNumber(int x){ int result=0; while(x!=0){ result=result*10+x%10; x=x/10; } return re...原创 2019-11-08 11:16:43 · 622 阅读 · 0 评论