博客专栏  >  编程语言   >  一周一篇Java概念

一周一篇Java概念

学好java基础,学好java的语言特性,无论什么代码都能看的清清楚楚。

关注
15 已关注
74篇博文
  • JAVA并发编程(五)乐观锁 悲观锁

    悲观锁 认为随时有可能发生冲突,用锁保护所有临界区。日常使用的锁绝大多数都是悲观锁。 优点: 1. 确保安全性,悲观锁临界区内不会发生并发问题。 2. 简单方便。 3. 使用悲观锁,在临...

    2018-02-07 21:10
    63
  • JAVA并发编程(四)ThreadLocal

    ThreadLocal 在多线程编程中,我们使用锁来确保多个线程共享的变量能被安全的访问。但是还有一些变量,我们希望每一个线程都能保存一份独立的值而不受其他线程的影响。这个时候我们就需要用到Th...

    2018-02-07 12:34
    362
  • CDN——内容分发网络

    CDN Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节...

    2018-02-02 17:17
    318
  • DNS——域名系统

    DNS Domain Name System,域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,...

    2018-02-01 22:00
    369
  • JAVA并发编程(三)线程封闭技术保证数据安全性

    当我们在多线程程序中操作一个数据时,保证此数据的线程安全是必须的。一般的,我们会将与此数据相关的操作同步化,在处理此数据附近创建临界区,通过类似串行的方式让多线程按序访问保证安全。除了这种同步的方法,...

    2018-01-29 17:11
    339
  • JAVA并发编程(二)volatile与synchronized

    在java多线程知识中有很多关键字,常用的就是volatile和synchronized两个,这两个关键字分别保证了字段数据的可见性临界区的同步性。这篇文章对所有关于此两个关键字的作用和用法作一个总结...

    2018-01-26 16:31
    345
  • JAVA并发编程(一)理解线程安全与并发

    进程与线程 记得大二的时候学操作系统课,考试必考进程和线程的区别,当时只顾着硬背这两个“学术化的官方定义”,结果还是没怎么深入理解这两个概念的含义。到了这个学期又学了并行程序设计课,对多线程并发...

    2018-01-24 20:47
    324
  • JVM运行时数据区

    一道题目首先看一个例子,如果你不仅能正确的选择正确的答案,也能说出其中JVM底层实现的原理,那么下面这篇文章就不需要看了,无需再浪费时间。package QuinnNorris; class Test...

    2017-12-07 23:25
    319
  • ASCII、GB2312、GBK、Unicode、UTF-8、UTF-16 编码方式比较分析

    实际上在日常工作开发中,中文乱码是经常出现的一类问题。下面介绍一下ASCII、GB2312、GBK、Unicode、UTF-8、UTF-16、UTF-32编码的原理以及不同点和区别。ASCIIASCI...

    2017-12-04 01:18
    259
  • 计算机系统基本知识

    字节:所有的文件内容都是由0和1组成的位(bit)序列,8个位称为1个字节。在ASCII中每个字节可以表示一个英文字符(中文字符需要两个字节表示),只由ASCII字符构成的文件称之为文本文件,其他文件...

    2017-12-01 15:22
    395
  • 并行排序算法——时间复杂度O(n)的排序法

    最近老师讲了并行的排序算法,让我对这个原来不是很了解的排序算法产生了浓厚的兴趣。并行排序方法,是指采用并行计算的方法对一组数据进行排序,理论上是在类似内排序的环境下,采用多核并行的方法让时间降低,排序...

    2017-11-30 21:10
    635
  • Java常见缺陷模式

    Java常见缺陷模式指出下列各代码片段存在的缺陷,陈述你的理由并修改缺陷(共15题)1.字符串相等问题private void bug_method(String str){ if ( str...

    2017-09-22 12:57
    525
  • java manacher算法计算最长回文字符串

    求解最长回文字符串朴素算法最朴素的算法是暴力解法就不谈了,时间复杂度是O(n3)。比最朴素解法稍微好一些的解法是O(n2)的一种解法,思路是从对称轴开始考虑,根据回文字符串长度的奇偶分为两种情况,如果...

    2017-09-11 19:31
    562
  • java 最快获取最小前K个数

    从一列n个数字中取最小的前k个数字。这是一个面试经常会问到问题,回答这个问题并不难,但是如何能分析出最优的算法,能够分析出多少种算法,这会是面试官真正感兴趣的问题。这里总结一下这个问题的所有解法与复杂...

    2017-08-29 20:03
    802
  • java 快速幂取模算法

    当我们计算AB%C的时候,最便捷的方法就是调用Math函数中的pow方法,但是有时A的B次方数字过大,即使是双精度的double也会溢出,这个时候为了得到AB%C的结果,我们会选择使用快速幂取模算法,...

    2017-08-25 21:31
    1288
  • java 欧拉定理及原根的计算

    java很少要用到非常复杂的算法,因为这门语言被创建就不是为了表述数学概念或是计算算法的。但有很多知识已经更偏向于算法概念,而且我们必须掌握。因为如果你一点都不了解,当面试官问你有关数论的问题的时候你...

    2017-08-24 18:48
    785
  • java 动态规划策略原理及例题

    动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。在面试笔试中动态规划也是经常作为考题出现,其中较为简单的DP题...

    2017-08-22 19:44
    2273
  • java 最长公共子序列(LSC)问题

    题目: 给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的) 举例: Str1 Str2 resultStr abciba abdcab abca ab...

    2017-08-07 14:46
    509
  • java JVM运行时栈帧结构

    JVM中数据区域分为虚拟机栈、JAVA堆、方法区、运行时常量池、程序计数器(PC寄存器)这几类。在这五类中,虚拟机栈用来表示各个线程中方法执行情况的区域,而栈帧是虚拟机栈中的栈元素。栈帧是用于支持虚拟...

    2017-07-31 20:07
    770
  • java 观察者模式

    观察者模式定义了一个一对多的依赖关系,当被观察者(主题)更新时会自动更新观察者们。在观察者模式中,被观察者无需知道有哪些观察者在观察它,只是在发生变化的时候调用更新的方法即可;观察者无需知道具体观察了...

    2017-07-22 23:23
    545
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部