【Java练习 SDUT-2733_小鑫の日常系列故事(二)——石头剪子布】教程文章相关的互联网学习教程文章

ActiveMQ入门系列之应用:Springboot+ActiveMQ+JavaMail实现异步邮件发送【代码】【图】

现在邮件发送功能已经是几乎每个系统或网址必备的功能了,从用户注册的确认到找回密码再到消息提醒,这些功能普遍的会用到邮件发送功能。我们都买过火车票,买完后会有邮件提醒,有时候邮件并不是买完票立马就能收到邮件通知,这个就用到了异步邮件发送。 那怎么实现邮件的异步发送呢? 很显然,引入MQ是一个不错的选择。刚好这段时间在练习ActiveMQ,那就拿activemq来实现异步发送邮件吧。 一、springboot整合JavaMailSender 在发...

java高并发核心要点|系列2|锁的底层实现原理

上篇文章,我们主要讲了解决多线程之间共享数据的核心问题和解决方案,也讲了锁的简单分类。 那么,这把锁,我们应该怎么去实现呢?如果你是java语言设计者,你又会怎么去设计这个线程锁呢? 直觉告诉我们,我们可以设计一个对象或属性,用来代表锁。比如,你把共享数据区当成抽屉,那这个抽屉就可设计出有锁,有钥匙,其实锁和钥匙,就是这个抽屉的必要属性。否则,这个抽屉,也就失去主要用途了。 是的,java设计者,也是这样的想...

java高并发核心要点|系列1【图】

在java高并发编程,有几个很重要的内容: 1.CAS算法 2.CPU重排序 3.缓存行伪共享 我们先来说说高并发世界中的主要关键问题是什么? 是数据共享。 因为多线程之间要共享数据,就会遇到各种问题。如下图:如果两个线程同时写入,那怎么保证数据的一致性?是线程1先写,还是线程2先写,这是个问题。那要如何解决这个问题? 答案是:加锁。 比如,线程1先访问共享数据区,那么它就先把这块数据区锁起来。后面如果其他线程要访问这个共享...

Java集合系列-HashMap 1.8(一)【代码】

一、概述HashMap是基于哈希实现的映射集合。 HashMap可以拥有null键和null值,但是null键只能有一个,null值不做限制。HashTable是不允许null键和值的。 HashMap是非线程安全的集合,HashTable是添加了同步功能的HashMap,是线程安全的。 HashMap是无序的,并不能保证其内部键值对的顺序。 HashMap提供了常量级复杂度的元素获取和添加操作(当然是在hash分散均匀的情况下)。 HashMap有两个影响功能的因素:初始容量与负载因子,当...

java – 在android studio中按钮更改字体系列【代码】

我想更改按钮的字体系列.我尝试更改它尝试此代码:Button txt = (Button)findViewById(R.id.button1); Typeface font = Typeface.createFromAsset(getAssets(), "sfont.ttf"); txt.setTypeface(font);但我收到一个错误,如果我忽略它,应用程序每次都会崩溃. 这是布局XML代码:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:layout_width="fill_parent" a...

A99、再也不想学Java - A系列总纲【图】

0、再也不想学Java - A系列总纲 初学耗时:-9999h 注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。A01系列 - Java基础【暂未开启】 A02系列 - Java进阶 【暂未开启】 A03系列 - JavaWeb 【暂未开启】 A04系列 - MySQL 【未完结】 A05系列 - SSM 【暂未开启】 A06系列 - Maven 【暂未开启】 A07系列 - Git【未完结】 A08系列 - SVN 【暂未开启】 A09系列 - JVM优化【未完结】 A10系列 - MySQL优化 【未完结...

【Java面试题系列】:Java中final finally finalize的区别【图】

按我的个人理解,这个题目本身就问的有点问题,因为这3个关键字之间没啥关系,是相对独立的,我猜想这道题的初衷应该是想了解面试者对Java中final finally finalize的使用方法的掌握情况,只是因为3个关键字比较像,而成了现在网上流传的题目“Java中final finally finalize的区别”。 既然是想了解面试者对Java中final finally finalize的使用方法的掌握情况,那么本篇我们就分别讲解下final,finally,finalize的使用方法。 1.fina...

Java面试宝典系列之面试复习提纲

Java面试复习提纲作者:egg邮箱:xtfggef@gmail.com微博:http://weibo.com/xtfggef博客:http://blog.csdn.net/zhangerqing本章主要介绍一下面对即将来临的Java面试,我们应该从哪些方面去复习,将重点知识罗列出来,以便从容复习,在每个内容后面附该内容在本博客的地址!类与对象 Java之美[从菜鸟到高手演变]之类与对象(一)Java之美[从菜鸟到高手演变]之类与对象(二)Java之美[从菜鸟到高手演变]之类与对象(三) 字符串 Java...

【管理工具----Gradle】Gradle入门系列二:第一个Java项目

这篇教程的主要内容是讲解如何用Gradle编译和打包一个简单的Java项目。 该Java项目只有一个需求:我们的构建脚本必须创建一个可执行的Jar文件,换句话说,我们必须能够使用命令java -jar jarfile.jar 来运行我们的程序。我们来看一下如何满足这个需求。 创建一个Java项目 我们可以使用Java插件来创建一个Java项目,为了做到这点,我们需要把下面这段语句加入到build.gradle文件中:apply plugin: 'java' 就是这样,现在我们已经创建...

Java容器解析系列(14) IdentityHashMap详解

IdentityHashMap,使用什么的跟HashMap相同,主要不同点在于:数据结构:使用一个数组table来存储 key:value,table[2k] 为key, table[2k + 1] 为value,也即: key:value ==> table[2k]:table[2k + 1](HashMap使用数组 + 链表); IdentityHashMap 中的 key 和 value 通过==来比较是否相等(HashMap通过equals()); IdentityHashMap 中的 hash冲突解决方式为线性探测法(HashMap为拉链法);具体,我们来看关键源码: /*** 数据存储结构:* 使用一个...

java并发系列(七)-----ConcurrentHashMap原理分析(JDK1.8)【代码】【图】

JDK1.8的实现已经摒弃了Segment的概念,而是直接用Node数组+链表+红黑树的数据结构来实现,并发控制使用Synchronized和CAS来操作,整个看起来就像是优化过且线程安全的HashMap,虽然在JDK1.8中还能看到Segment的数据结构,但是已经简化了属性,只是为了兼容旧版本。在深入JDK1.8的put和get实现之前要知道一些常量设计和数据结构,这些是构成ConcurrentHashMap实现结构的基础,下面看一下基本属性:// node数组最大容量:2^30=10737...

java并发系列(六)-----Java并发:volatile关键字解析【代码】【图】

在 Java 并发编程中,要想使并发程序能够正确地执行,必须要保证三条原则,即:原子性、可见性和有序性。只要有一条原则没有被保证,就有可能会导致程序运行不正确。volatile关键字 被用来保证可见性,即保证共享变量的内存可见性以解决缓存一致性问题。一旦一个共享变量被 volatile关键字 修饰,那么就具备了两层语义:内存可见性和禁止进行指令重排序。在多线程环境下,volatile关键字 主要用于及时感知共享变量的修改,并使得其...

Java爬虫系列:使用Jsoup解析HTML【代码】【图】

一、Jsoup自我介绍 我是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据,用Java写爬虫的同行们十之八九用过我。为什么呢?因为我在这个方面功能强大、使用方便。不信的话,可以继续往下看,代码是不会骗人的。 二、Jsoup解析html 一堆的代码,不是程序员的人们怎么能看懂呢?这个就需要我这个html解析专家出场了。 下面通过案...

Think in JAVA 系列 ---(四)封装(访问权限控制)【代码】【图】

文章目录封装 - Access Control(访问权限控制)package: the library unit 包,库的单元jar包使用jar包中的类(import关键字)使用包中的类两种情况:intellij导入第三方jar包方法import static 直接调用类中的成员变量或方法collision冲突Java access specifiers 权限修饰符privatedefaultprotectedpublic类的权限控制 class access总结 summary 封装 - Access Control(访问权限控制) 访问权限控制主要通过两个点来解决:package...

java并发系列(一)-----多线程简介、创建以及生命周期【代码】【图】

进程、线程与任务进程:程序的运行实例。打开电脑的任务管理器,如下:正在运行的360浏览器就是一个进程。运行一个java程序的实质是启动一个java虚拟机进程,也就是说一个运行的java程序就是一个java虚拟机进程。进程是程序向操作系统申请资源(如内存空间和文件句柄)的基本单位。 线程:是进程中可独立执行的最小单位,并且不拥有资源。进程相当于工厂老板,整个工厂的机器都是属于老板的,但是工厂里面的活都是由工人完成的。 任务...