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

死磕 java同步系列之synchronized解析【代码】

问题 (1)synchronized的特性? (2)synchronized的实现原理? (3)synchronized是否可重入? (4)synchronized是否是公平锁? (5)synchronized的优化? (6)synchronized的五种使用方式? 简介 synchronized关键字是Java里面最基本的同步手段,它经过编译之后,会在同步块的前后分别生成 monitorenter 和 monitorexit 字节码指令,这两个字节码指令都需要一个引用类型的参数来指明要锁定和解锁的对象。 实现原理 在学习Jav...

(三:NIO系列) Java NIO Selector【代码】

出处:Java NIO Selector 1.1. Selector入门 1.1.1. Selector的和Channel的关系Java NIO的核心组件包括:(1)Channel(通道)(2)Buffer(缓冲区)(3)Selector(选择器)其中Channel和Buffer比较好理解 ,联系也比较密切,他们的关系简单来说就是:数据总是从通道中读到buffer缓冲区内,或者从buffer写入到通道中。选择器和他们的关系又是什么?选择器(Selector) 是 Channel(通道)的多路复用器,Selector 可以同时监控多个 通道的...

Java反射机制大神必学系列之 ,高级与低级的差别在哪里?

Java反射机制大神必学系列之 ,高级与低级的差别在哪里?java学习爱好者 2019-05-20 19:08前言今天介绍下Java的反射机制,以前我们获取一个类的实例都是使用new一个实例出来。那样太low了,今天跟我一起来学习学习一种更加高大上的方式来实现。 正文Java反射机制定义 Java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以...

java – 计算一系列值的斜率【代码】

我有2个相等长度的数组.以下函数尝试使用这些数组计算斜率.它返回每个点之间的斜率的平均值.对于以下数据集,我似乎获得了与Excel和Google Docs不同的值.double[] x_values = { 1932, 1936, 1948, 1952, 1956, 1960, 1964, 1968,1972, 1976, 1980 };double[] y_values = { 197, 203, 198, 204, 212, 216, 218, 224, 223, 225,236 };public static double getSlope(double[] x_values, double[] y_values)throws Exception {if (x_va...

死磕 java同步系列之volatile解析【代码】【图】

问题 (1)volatile是如何保证可见性的? (2)volatile是如何禁止重排序的? (3)volatile的实现原理? (4)volatile的缺陷? 简介 volatile可以说是Java虚拟机提供的最轻量级的同步机制了,但是它并不容易被正确地理解,以至于很多人不习惯使用它,遇到多线程问题一律使用synchronized或其它锁来解决。 了解volatile的语义对理解多线程的特性具有很重要的意义,所以彤哥专门写了一篇文章来解释volatile的语义到底是什么。 语义...

java – 用于嵌套的for循环系列的Big O.【代码】

我有一个关于计算一系列循环的Big O运行时间的问题,这些循环嵌套在外部for循环中. 例如:for (50,000 times) {for (n times){//Do something}for (n-2 times){//Do something}for (n times){//Do something}for (n-2 times){//Do something} }外循环是常量,所以我认为这是被忽略的.那么就像进行以下计算一样简单吗? N N-2 N N-2 2N 2(N-2) 4N – 4 O(4N – 4) O(4N) – 去除-4常数后 它是否正确? 谢谢.解决方法:这是O(n) (你...

栈实现 Java 数据结构 系列三【代码】

Java 数据结构 系列三 栈 这个是挂在github上的项目中的关于队列的部分,实现了链栈和数组栈,并且统一继承一个虚拟类, 方便使用,github上的项目在 https://github.com/eternalrobot/DataStructureStack.java 栈的虚拟类 package Stack;public abstract class Stack<NodeType> {/** @description 出栈* @return 出栈数据 null表明出栈失败*/abstract NodeType pop();/** @description 入栈* @return true入栈成功,false入栈失败...

JavaWeb系列之:监听器【代码】

一,监听器定义 指专门用于对其他对象身上发生的 事件 或 状态改变 进行监听和相应处理的对象,当被监视对象发生变化时,立即采取相应的行动。 Web监听器可以监听客户端的请求,服务端的操作。可以监听的对象有: ServletContex ---->作用域:application(上下文对象,由容器创建和初始化,范围是整个应用,并且这个应用只有一个application存在,当web服              务器关闭时,就会把application对象销毁)。 ...

Java 集合系列14之 Map总结

(01) 新建WeakHashMap,将“键值对”添加到WeakHashMap中。 将“键值对”添加到WeakHashMap中时,添加的键都是弱键。 实际上,WeakHashMap是通过数组table保存Entry(键值对);每一个Entry实际上是一个单向链表,即Entry是键值对链表。 (02) 当某“弱键”不再被其它对象引用,并被GC回收时。在GC回收该“弱键”时,这个“弱键”也同时会被添加到queue队列中。 例如,当我们在将“弱键”key添加到WeakHashMap之后;后来将key设为null...

死磕 java同步系列之开篇【图】

简介 同步系列,这是彤哥想了好久的名字,本来是准备写锁相关的内容,但是java中的CountDownLatch、Semaphore、CyclicBarrier这些类又不属于锁,它们和锁又有很多共同点,都是为了协同多线程的执行,都是一种同步器,所以这里就借用同步来取名字了,也就是“同步系列”的来源。 概览 这一篇的内容会比较多,大致包含三大主题:java中的锁、同步器、分布式锁,大致讲的内容如下: (1)volatile (2)synchronized (3)AQS及Condit...

JavaWeb系列之:过滤器【代码】

一,定义 过滤器是一个服务器端的组件,它可以截取用户端的请求和响应信息,并对这些信息过滤 二,工作原理 当web容器启动时,就从web容器加载过滤器(所以,只要web容器启动,那么过滤器就设置好了)。 当用户发送请求,过滤器判断请求是否符合要求,如果符合就把用户请求发送Web资源。 Web资源处理完请求信息,再把资源响应发送到过滤器。 过滤器把Web资源的响应发送给用户。 三,生命周期 实例化  ------> 在web.xml中进行配置...

Java 集合系列13之 WeakHashMap详细介绍(源码解析)和使用示例【代码】【图】

第1部分 WeakHashMap介绍WeakHashMap简介 WeakHashMap 继承于AbstractMap,实现了Map接口。 和HashMap一样,WeakHashMap 也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和值都可以是null。 不过WeakHashMap的键是“弱键”。在 WeakHashMap 中,当某个键不再正常使用时,会被从WeakHashMap中被自动移除。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终...

Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例【图】

第1部分 TreeMap介绍TreeMap 简介 TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。TreeMap 继承于AbstractMap,所以它是一个Map,即一个key-value集合。TreeMap 实现了NavigableMap接口,意味着它支持一系列的导航方法。比如返回有序的key集合。TreeMap 实现了Cloneable接口,意味着它能被克隆。TreeMap 实现了java.io.Serializable接口,意味着它支持序列化。 TreeMap基于红黑树(Red-Black tree)实现。该映射根据其...

java并发编程系列:牛逼的AQS(上)【代码】【图】

设计java的大叔们为了我们方便的自定义各种同步工具,为我们提供了大杀器 AbstractQueuedSynchronizer 类,这是一个抽象类,以下我们会简称 AQS ,翻译成中文就是 抽象队列同步器。这家伙老有用了,封装了各种底层的同步细节,我们程序员想自定义自己的同步工具的时候,只需要 定义这个类的子类并覆盖它提供的一些方法就好了 。我们前边用到的显式锁 ReentrantLock 就是借助了 AQS 的神力实现的,现在马上来看看这个类的实现原理以...

Java 集合系列09之 Map架构

概要前面,我们已经系统的对List进行了学习。接下来,我们先学习Map,然后再学习Set;因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的)。 首先,我们看看Map架构。 如上图:(01) Map 是映射接口,Map中存储的内容是键值对(key-value)。(02) AbstractMap 是继承于Map的抽象类,它实现了Map中的大部分API。其它Map的实现类可以通过继承AbstractMap来减少重复编码。(03) SortedMap 是...