前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dimple在左耳听风ARTS打卡(第六期)

Dimple在左耳听风ARTS打卡(第六期)

作者头像
程序员小跃
发布2019-12-25 17:24:32
3590
发布2019-12-25 17:24:32
举报
文章被收录于专栏:程序员小跃程序员小跃

所谓ARTS: 每周至少做一个LeetCode的算法题;阅读并点评至少一篇英文技术文章;学习至少一个技术技巧;分享一篇有观点和思考的技术文章。(也就是Algorithm、Review、Tip、Share 简称ARTS)这是第六期打卡。

Algorithm LeetCode算法

有效的括号 (leetcode.com/problems/v)

题目描述:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

有效字符串需满足: 1. 左括号必须用相同的右括号闭合 2. 左括号必须以正确的顺序闭合

注意空字符串可被认为是有效字符串 示例 1:

代码语言:javascript
复制
输入:"()""
输出: true

示例 2:

代码语言:javascript
复制
输入: "()[]{}"
输出: true

示例 3:

代码语言:javascript
复制
输入: "(]"
输出: false

示例 4:

代码语言:javascript
复制
输入: "([)]"
输出: false

示例 5:

代码语言:javascript
复制
输入: "{[]}"
输出: true

这道算法题,考察的情况就不是之前那些题目一样,是常规操作了。我说的常规操作,这里的意思是说对字符串的增删改查的操作,因为你仔细查看这题,你会发现,其实这就是一道堆栈问题。

之前没做过入栈出栈的题目,刚好这道题可以拿来练手了。这题的思路,无非就是对堆栈的熟悉程度,小编给出中文版力扣中的解题思路,供大家参考。在这里,小编就不啰嗦了,相信官网里给出的解释比我这个更能让大家看懂。地址:

(leetcode-cn.com/problem)

代码语言:javascript
复制
public static boolean isValid(String s) {
    Stack<Character> stack = new Stack<>();
    for(char c : s.toCharArray()) {
        if (c == '(' || c == '[' || c == '{') {
            stack.push(c);
        } else {
            if (stack.isEmpty()) {
                return false;
            } else {
                char top = stack.pop();
                if (c == ')' && top != '(') {
                    return false;
                } 
                if (c == ']' && top != '[') {
                    return false;
                } 
                if (c == '}' && top != '{') {
                    return false;
                }
            }
        }
    }
    return stack.isEmpty();
}    

Review 阅读并点评至少一篇英文文章

GitHub Protest Over Chinese Tech Companies’ “996” Culture Goes Viral (radiichina.com/github-p)

今天在知乎上去看一些国外的技术网站的推荐,很多人都推荐了raddit,我也就点进去看了,结果这条标题吸引了我。

对的,就是前些天在我们技术圈很是风靡的关于“996”的话题的,我就饶有兴趣的点点开看了,文章很短,因为恰逢5.1假期,我给自己偷下懒。

朋友们都知道GitHub是“托管和审查代码,管理项目,并与3100万开发人员一起构建软件”的网站,这个996已成为有史以来发展最快的GitHub存储库之一,说明还是引起了很多人写代码的朋友的关注,很多大V也针对这个事件写过文章,都发表了自己的观点。

当然啦,还有马云爸爸,他的话更是轰动,怕别人误解还是啥的,还在微博里做了补充。更引起波澜的自然就是京东的东哥了,文中也提到,京东是被重点点名的企业,何况还有各种新闻缠绕,曾经的曾经,京东是多少人羡慕的地方吧。

对于我们IT从业人员来说,996并不可怕,可怕的是你996了还没有收获,无论从技术、精神还是金钱上,那这个996就毫无意义。仅是个人观点,各位不要做多猜测哈。

这次吹水了,下周好好找找资源,继续学习技术,干起来。

Tip 一个技术技巧

前两次是《Java核心技术36讲》的学习内容,第26和27讲,因为这门课记录的笔记比较多,这次还是继续分享这门课的笔记,接下来的第28讲内容,谈谈你的GC调优思路。

谈谈你的GC调优思路

对于GC调优来说,首先就需要清楚调优的目标是什么?从性能的角度看,通常关注三个方面内存占用(footprint)、延时(latency)和吞吐量(throughput) 基本的调优思路可以总结为:

  • 理解应用需求和问题,确定调优目标
  • 掌握JVM和GC的状态,定位具体的问题,确定真的有GC调优的必要
  • 这里需要考虑,选择的GC类型是否符合我们的应用特征,如果是,具体问题表现在哪里,是Minor GC过长,还是Mixed GC等出现异常停顿情况;如果不是,考虑切换到什么类型,入CMS和G1都是更侧重于低延迟的GC选项
  • 通过分析确定具体调整的参数或者软硬件配置
  • 验证是否达到调优目标,如果达到目标,即可以考虑结束调优;否则,重新完成分析、调整、验证这个过程

调优建议

  • 首先,建议尽量升级到较新的JDK版本
  • 第二,掌握GC调优信息收集途径

Share 一篇有观点和思考的技术文章

继续设计模式的学习执行,更新到观察者模式。在上面说道,我学习Java输出了一篇学后感,和大家一起共勉。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奔跑吧攻城狮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Algorithm LeetCode算法
  • Review 阅读并点评至少一篇英文文章
  • Tip 一个技术技巧
  • Share 一篇有观点和思考的技术文章
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档