Welcome to Wonderland of Mageek Chiu!
博客列表
杂货铺子
撰写博客
搜索
Java8解决了什么?
在学习面向对象时,许多人都会用Java来举例子,但是其实Java并非纯正的面向对象语言,最明显的就是:int,double等基本类型不是对象。自从java8出来过后,引入了流,函数式编程,就更不是在向着面向对象发展了。有人可能会感到诧异,为啥越来越偏离我们遵循了这么久的面向对象设计模式? 其实很简单,我们对工具的改造的最终目的都是为了解决问题,以前有面向过程解决不了的问题,那么面向对象出来解决了;现在面向对象有许多问题,那么就可以用函数式编程来解决,所以这些变化是很自然的,
Publish 2017-06-07 18:56:33
Read 552
Comment 0
like 0
Java String 探索
今天看到了一个Java string的相关问题,解决问题的过程中就想把string 好好理顺了,总结在这里。 == 和 equals() == 是判断两个变量是否指向同一个对象,equals()只判断两个字符串内容是否相同 public class Cons { public static void main(String[] args) throws InterruptedException { String s2 = new String
Publish 2017-05-09 13:13:52
Read 656
Comment 0
like 1
Java多线程之内置锁与显示锁
Java中具有通过Synchronized实现的内置锁,和ReentrantLock实现的显示锁,这两种锁各有各的好处,算是互有补充,今天就来做一个总结。 Synchronized 内置锁获得锁和释放锁是隐式的,进入synchronized修饰的代码就获得锁,走出相应的代码就释放锁。 synchronized(list){ //获得锁 list.append(); list.count(); }//释放锁 通信 与Synchronized配套使用
Publish 2017-05-02 09:24:08
Read 701
Comment 0
like 3
Java多线程之volatile
Java多线程是一个庞大的知识体系,这里对其中的volatile进行一个总结,理清他的来龙去脉。 CPU缓存 要搞懂volatile,首先得了解CPU在运行过程中的存储是如何处理的,其结构如图 CPU会把一些经常使用的数据缓存在cache中,避免每次都去访问较慢的memory。在单线程环境下,如果一个变量的修改都在cache中,自然不会有什么问题,可是在多线程环境中就可能是下面这个图的示意图(单核另当别论) CPU1 修改了一个变量a存入cache1,但是CP
Publish 2017-04-18 23:20:38
Read 724
Comment 0
like 1
AOP,MVC——Spring的学习以及对CodeIgniter的反思
AOP?原来我们早就见过 最近在学习Spring,深深地感到这个框架之所以这么流行不是没有道理的,我之前一直用的是PHP,框架用的就是codeigniter,由于其简洁轻量的特性很是让人喜爱,可是也有很多问题,然而很多问题Spring都是解决了的,比如 PHP项目中CodeIgniter使用的一些建议,这里提到的登录逻辑的实现,就是具有Spring 面向切面编程 的雏形。所以刚看到Spring的面向切面编程(AOP),就觉得:原来我们早就见过。其本质上就是关注点的分离,可以
Publish 2017-03-18 17:22:52
Read 824
Comment 0
like 1
在tensorflow上进行机器学习的“Hello World”:MNIST 手写识别
安装好了tensorflow(TensorFlow 安装笔记),接下来就在他的官网指导下进行Mnist手写数字识别实验。 softmax 实验过程 进入tfgpu虚拟环境后,首先进入目录:/anaconda2/envs/tfgpu/lib/python2.7/site-packages/tensorflow/examples/tutorials/mnist/,然后进入IPython交互终端。 In [4]: from tensorflow.examples.tutor
Publish 2016-11-09 12:42:29
Read 1315
Comment 0
like 1
Tags
Contact me
回到顶部
版权所有 © Mageek.cn All Rights Reserved,皖ICP备15005953号-2