Java
文章平均质量分 53
xh15
本人平凡俗世一女子,略有些优点,然不足一提;略有些缺点,却也无伤大雅!
展开
-
[LeetCode-2]Add Two Numbers(java)
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a link原创 2016-09-25 16:44:51 · 320 阅读 · 0 评论 -
[LeetCode-136]Single Number(java)
Given an array of integers, every element appears twice except for one. Find that single one. Note: our algorithm should have a linear runtime complexity. Could you implement it without using extra原创 2016-09-29 01:03:43 · 465 阅读 · 0 评论 -
[LeetCode-258]Add Digits(java)
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. For example: Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digi原创 2016-09-30 00:58:24 · 419 阅读 · 0 评论 -
[LeetCode-104]Maximum Depth of Binary Tree (java)
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 题意:求一个二叉树的深度(即从根节点到最远叶子节点的距离) 分析:学过数据结原创 2016-10-01 00:54:58 · 378 阅读 · 0 评论 -
Java内存结构
堆:存放对象实例,通过new关键字等创建的对象实例,存放在堆中;堆是线程共享的;java的垃圾回收机制主要作用于java堆;java堆可以处于物理上不连续的内存空间,只要逻辑上连续即可;堆只会出现一种类型的异常错误:OutOfMemoryError(OOM)无法申请到足够的内存方法区:存放类的相关信息、常量、静态变量等;注意:方法区中包含运行时常量池(Runtime Constant原创 2017-04-12 16:34:03 · 823 阅读 · 0 评论 -
Java垃圾回收机制
哪些内存需要回收?由于程序计数器、虚拟机栈、本地方法栈是线程私有的,即随着线程生而生,线程死而死;而java堆和方法区是线程共享的,所以垃圾回收GC面向java堆(主要)和方法区。垃圾是什么?一个对象,使用对象存活判定算法判定,发现不是存活状态,即为可回收的垃圾。对象存活判定算法:1. 引用计数算法:给对象添加一个引用计数器,每当有一个地方引用它时,计数器加1;当一个引用失效时,计数器减1。对一原创 2017-04-12 21:39:45 · 412 阅读 · 0 评论 -
Java内存模型与线程
Java内存模型主内存与工作内存 java内存模型规定所有变量都存储在主内存,每条线程都有自己的工作内存。线程对变量的所有操作都必须在工作内存中进行,不能直接读写主内存中的变量。不同线程之间也无法直接访问对方工作内存中的变量,需要通过主内存来完成。内存的交互操作(8种): lock(锁定):作用于主内存unlock(解锁):作用于主内存read(读取):作用于主内存,把一个变量从主内原创 2017-04-13 21:51:16 · 392 阅读 · 0 评论 -
Java线程安全与锁优化
线程安全定义:当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,则是线程安全的。实现方法: 互斥同步(阻塞同步):悲观性并发策略 通过互斥的手段(临界区、信号量、互斥量)使得在多个线程并发访问共享数据时,保证共享数据在同一时刻只被一个线程使用。通俗讲就是通过线程阻原创 2017-04-13 23:04:05 · 458 阅读 · 0 评论