摘要:
此部分详细介绍了 C# 语言主要功能,以及通过 .NET Framework 可以在 C# 中使用的功能。 阅读此部分的大部分内容的前提是,你已对 C# 和一般编程概念有一定的了解。 如果完全没有接触过编程或 C#,建议参阅 C# 教程简介或 C# 入门互动教程,此教程不需要具备任何编程知识。 若要 阅读全文
随笔档案-2018年11月
C# 指南
2018-11-25 19:49 by GarfieldEr007, 228 阅读, 收藏, 编辑
摘要:
C# 指南提供了许多有关 C# 语言的资源。 此网站面向许多不同的受众群体。 你可能希望探索本指南的不同部分,具体视你的编程经验或 C# 语言和 .NET 使用经验而定。 对于从未接触过编程的开发者: 从浏览 C# 教程简介开始。 通过了解这些教程,可以在浏览器中交互式浏览 C# 语言。 可以从这里 阅读全文
C#与Java 的区别
2018-11-25 19:48 by GarfieldEr007, 313 阅读, 收藏, 编辑
摘要:
相同点:都是面向对象编程的语言,都能够实现面向对象的(封装,继承,多态)思想 不同点:1. c#中的命名空间是namespace类似于Java中的package(包),在Java中导入包用import而c#中用using。 2. c#和Java都是从main函数入口的,但是c#中的main函数的首字 阅读全文
Java&C#语法差别
2018-11-25 19:46 by GarfieldEr007, 292 阅读, 收藏, 编辑
摘要:
Java C# 主类名与文件名 必须一致 可以不一致 命名空间导入方式 import关键字 using关键字 常量 final关键字 Const关键字 基本数据类型 C#中有无符号数,Java没有。C#中有值类型,且可自己定义值类型的结构体(struct)。Java中的基本类型(或叫基元类型)即为值 阅读全文
C#与JAVA的区别
2018-11-25 19:44 by GarfieldEr007, 2862 阅读, 收藏, 编辑
摘要:
C#(C-Sharp)是Microsoft的新编程语言,被誉为“C/C++家族中第一种面向组件的语言”。然而,不管它自己宣称的是什么,许多人认为C#更像是Java的一种克隆,或者是Microsoft用来替代Java的产品。事实是否是这样的呢? 本文的比较结果表明,C#不止是Java的同胞那么简单。如 阅读全文
Java(C#)基础差异-数组
2018-11-25 19:43 by GarfieldEr007, 378 阅读, 收藏, 编辑
摘要:
1、填充数组 Java 数组填充替换方法Arrays.fill() 举例如下: 运行结果如下: 2、复制数组 Java 数组复制使用方法Arrays.copyOf以及Arrays.copyOfRange (1)Arrays.copyOf 语法如下: copyOf(arr,int newlength) 阅读全文
【JAVA与C#比较】其它
2018-11-25 19:42 by GarfieldEr007, 327 阅读, 收藏, 编辑
摘要:
从语言方面的知识点来说,这应该是最后一篇有关java和C#的比较了。如果要了解两者具体各知识点的异同,请查看前面的相关文章,不过后面有可能存在,不能放到前面文章所列知识点的情况,应该就会补充到这里吧。总之,有关JAVA与C#比较这个系列,并未定型,后面随着更为了解的深入,还是会做一些添加和修改。 其 阅读全文
C#和java之间的一些差异与共性
2018-11-25 19:40 by GarfieldEr007, 866 阅读, 收藏, 编辑
摘要:
C#与java之间的一些共性和差异整理 隐藏:与java中的重写几乎一致,但是需要添加new关键字让编译器知道,否则会有警告 虚方法:1.声明为virtual的方法就是虚方法,在子类中使用override进行重写,当程序发现该方法是虚方法时,会去寻找子类中是否重写了该方法,如果被重写了,那么就调用子 阅读全文
C#与Java的语法差异
2018-11-25 19:39 by GarfieldEr007, 655 阅读, 收藏, 编辑
摘要:
C#与Java的语法差异C与Java的语法差异前言程序结构基本语法数据类型字符串变量与常量运算符判断语句循环语句访问权限方法数组结构枚举类继承多态运算符重载接口命名空间预处理器指令正则表达式异常IO泛型集合属性索引器委托事件匿名方法前言本文主要供有Java基础的读者快速掌握C#基本语法使用,重点落在 阅读全文
JAVA与C#的区别
2018-11-25 19:38 by GarfieldEr007, 348 阅读, 收藏, 编辑
摘要:
Java和C#都是编程的语言,它们是两个不同方向的两种语言 相同点: 他们都是面向对象的语言,也就是说,它们都能实现面向对象的思想(封装,继承,多态) 区别: 1.c#中的命名空间是namespace类似于Java中的package(包),在Java中导入包用import而c#中用using。2.c 阅读全文
Java(C#)基础差异-语法
2018-11-25 19:37 by GarfieldEr007, 250 阅读, 收藏, 编辑
摘要:
1、long类型 Java long类型,若赋值大于int型的最大值,或小于int型的最小值,则需要在数字后加L或者l,表示该数值为长整数,如long num=2147483650L。 举例如下: 运行结果如下,第二句会报错为: C# 举例如下: C#下可以直接定义long类型变量并输出。 2、fo 阅读全文
Java和C#差异点
2018-11-25 19:37 by GarfieldEr007, 261 阅读, 收藏, 编辑
摘要:
语法: 1. Java的byte为-128~127相当于c#的sbyte,c#byte为0-255。2. Java中没有无符号变量。 类结构: 1. Java没有Internal修饰符。2. Java的final相当于c# const。3. Java继承基类用extends;使用implements 阅读全文
Android网络请求之OkHttp框架
2018-11-25 19:01 by GarfieldEr007, 283 阅读, 收藏, 编辑
摘要:
首先声明权限 <uses-permission android:name="android.permission.INTERNET"/> 在build.gradle中加入 compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.squareup 阅读全文
java类中serialversionuid 作用 是什么?举个例子说明
2018-11-22 22:34 by GarfieldEr007, 215 阅读, 收藏, 编辑
摘要:
serialVersionUID适用于Java的序列化机制。简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同 阅读全文
程序员 30 岁前,该如何规划自己的职业发展?
2018-11-22 19:56 by GarfieldEr007, 236 阅读, 收藏, 编辑
摘要:
有读者问我职业规划这个话题,姑且今天好好谈谈,因为我一直认为这个话题对职场工作人士非常重要,今天我就来聊聊程序员的职业规划。 1.为什么职业规划很重要?在回答这个问题之前,我得先给大家解释下为什么职业规划很重要,我就简单的举个例子,我想大部分人职业生涯的初期,跳槽、换工作大都是为了薪资,哪个方向赚的 阅读全文
自学编程需要注意什么?
2018-11-22 19:56 by GarfieldEr007, 346 阅读, 收藏, 编辑
摘要:
前几天在知乎上看到这么一个问题,一位在读学生,自己非常想自学编程,但是很怕走一些弯路,于是提问「自学编程需要注意什么?」,我看了一圈回答,看起来都不是自学过来的,很多回答抓不到重点。 我的读者都知道,我是非科班 0 基础自学过来的,我很清楚一个人自学编程有哪些误区,有哪些需要注意的地方,以及哪些可以 阅读全文
推荐两份学习 Kotlin 和机器学习的资料
2018-11-22 19:55 by GarfieldEr007, 287 阅读, 收藏, 编辑
摘要:
最近 Kotlin 和人工智能比较火,有不少同学留言问我怎么学习 Kotlin,怎么学习机器学习,今天就给大家推荐两份不错的学习资料。 1. Kotlin 学习资料其实,在我看来最好的学习资料就是 Kotlin 官网,官方网站有详细的教程,包括怎么搭建环境,使用什么样的工具,怎么学习语法等等,地址在 阅读全文
公司没大牛带,需要离职么?
2018-11-22 19:54 by GarfieldEr007, 216 阅读, 收藏, 编辑
摘要:
最近,我小密圈的一位圈友问了我这么一个问题: 张哥,我在想要不要辞职了,我来公司 8 个月了,也确实学到了好多东西,但我最近感觉天天写的代码都一模一样,持续两个月了,这让我有些不安,公司最厉害的程序员水平都跟我差不多,我想辞职了去找一家产品公司,可又怕我水平不高别人看不上,我到底是辞不辞? 这个问题 阅读全文
推荐一份 Google 面试指南
2018-11-22 19:12 by GarfieldEr007, 308 阅读, 收藏, 编辑
摘要:
经常有不少读者在我公众号后台留言,说自己还是应届毕业生,缺乏工作经验与项目经验,不知道如何才能通过面试? 其实,项目经验固然重要,但是企业也知道,对于应届毕业生,是很难有拿得出手的项目经验出来的,毕竟缺乏实际工作经验,哪怕你是优秀生,也大多是在理论知识上,所以,一般来说,企业针对应届毕业生的面试,则 阅读全文
福利 | 简历模板大放送
2018-11-22 19:11 by GarfieldEr007, 284 阅读, 收藏, 编辑
摘要:
我发现最近有不少同学都在面试,而且很多人给我留言说不知道什么样的简历模板比较好,那么今天我特意花了些时间给大家制作了三份简历模板,希望对求职面试的同学有所帮助。 先说明下,一份好的简历模板并不会帮你得到一份工作,只是可能会给 HR 的第一印象不错,让你的简历被筛选中的概率提高点,真正决定你是不是被录 阅读全文
每个人都需要的中文排版指南
2018-11-22 19:11 by GarfieldEr007, 324 阅读, 收藏, 编辑
摘要:
之前有不少人在我公众号留言,说看我的排版很舒服,求指导。 我不是一个专业的写字人,我是程序员出身,在写代码的时候有点小洁癖,尽量会把每个细节做到更好,所以我在公众号写作的时候一样会注重每个细节,我认为排版是对写作最基本的要求,所以当我决定要在公众号写作的时候,就非常在意排版,并且一直在改进, 可惜的 阅读全文
如何脱颖而出?成为优秀的人
2018-11-22 19:10 by GarfieldEr007, 364 阅读, 收藏, 编辑
摘要:
前两天有一位同学在小密圈里问我一个问题,说自己高中学历,想要学习编程,不知道可行么? 我给他的回答是:很难,非常难,比你想象的还要难,但是难不代表不可行。 有别的热心的同学评论说,没什么不行的,只要比别人更努力就行,你看张哥,当初不也是非科班,学渣出身么,一步步靠自己努力走到现在。 是啊,很多读者喜 阅读全文
如何提升你的阅读能力?
2018-11-22 19:09 by GarfieldEr007, 413 阅读, 收藏, 编辑
摘要:
导读: 今天我想给大家分享下我自己的阅读经验,这些经验甚至是我花钱学习,加上自己实践总结而来的,请大家有耐心的、一字一句的读完,我相信会对你今后的人生有很大的帮助。 我在上篇文章「我的 2016」年终总结时提到:我工作至今 5 年多,唯一没放弃的是坚持阅读。足以看出阅读这件事对我影响之深,我一直认为 阅读全文
未来最重要的三个能力
2018-11-22 19:09 by GarfieldEr007, 373 阅读, 收藏, 编辑
摘要:
我前几天发过这么一篇文章「你可能不知道 Google 最近的「小动作」」,细心的读者们会注意到文中提到这么一句话: 我个人认为人人都该学点编程。 我绝不是随口一说,编程绝对是未来最重要的能力之一,如果说未来的人才只能具备三个能力的话,那么我会选择:编程、写作和英语。 1.首先,说说编程。 看看这几年 阅读全文
如何提升你的面试机会?
2018-11-22 19:08 by GarfieldEr007, 289 阅读, 收藏, 编辑
摘要:
最近太多人给我留言,说投了好多简历石沉大海,杳无音信,感觉都要放弃编程了,还有人给我留言,说自己是培训机构出来的,老师让学生们伪造简历,说大家都这么干的,而自己对伪造简历这种行为很不耻,但是不伪造又很难找到工作,很困惑,不知道该怎么办?好吧,今天我就来给大家写篇文章解答下,顺便教教你们如何提升你的面 阅读全文
2016 Top 10 Android Library
2018-11-22 19:08 by GarfieldEr007, 229 阅读, 收藏, 编辑
摘要:
过去的 2016 年,开源社区异常活跃,很多个人与公司争相开源自己的项目,让人眼花缭乱,然而有些项目只是昙花一现,有些项目却持久创造价值,为开发者提供了极大的便利,这些终究由时间来判断。今天,我就来整理一篇,我个人认为的 2016 年对 Android 开发有巨大帮助的,甚至改变了 Android 阅读全文
推荐一些非常有用的学习网站
2018-11-22 19:07 by GarfieldEr007, 425 阅读, 收藏, 编辑
摘要:
昨天的文章很多人表示很受用,同时有人留言让我推荐一些学习渠道啥的,马上双 11,姑且忙中偷闲送波福利给你们,今天就给你们推荐一些绝对有用的学习网站。 1. free-programming-books这个就不多说了,之前有推荐过的,免费的计算机编程类书籍,很多很全,不过都是英文的,有英语阅读习惯的人 阅读全文
谈谈学习方法
2018-11-22 19:06 by GarfieldEr007, 278 阅读, 收藏, 编辑
摘要:
上一篇文章公众号上有同学给我留言:张哥,我是一名大二学生,我很喜欢 Android,但是我感觉我的逻辑思维有点慢,学习方法也不得巧,所以,问下您有什么建议吗?还是说我不适合学编程,大学计算机专业! 其实不止这位同学,之前很多人给我留言,说因为兴趣,选择了编程,而且自己也很努力,也在持续坚持学习,然而 阅读全文
如何选择一家公司?
2018-11-22 19:05 by GarfieldEr007, 350 阅读, 收藏, 编辑
摘要:
之前很多读者问我手里有几个 offer,不知道怎么选择,这部分人的比例还是挺多的,一直都想写一下来着,但是一直都没抽出时间,今天这个特别的日子,送给你们一个特别的福利,就教教你们如何选择一家靠谱的公司吧! 优先选团队而不是优先选公司我们加入一家公司,不管这家公司的规模怎样,业务形态怎样,对你影响最深 阅读全文
你为什么还不够优秀?
2018-11-22 19:05 by GarfieldEr007, 224 阅读, 收藏, 编辑
摘要:
这两天公司准备招一名 iOS 工程师,jd 一发,瞬间收到了上百份简历,不禁感慨现在的人才市场真是供大于求啊,找工作真是比以前难多了。 于是一个个筛选简历进行面试,其中碰到有不少把 iOS 写成 IOS 的,不客气的说,碰到这样的我直接把简历给 pass 掉了,为此还单独发了条微博,有不少人支持,当 阅读全文
教你一招最屌的阅读开源项目的姿势
2018-11-22 19:04 by GarfieldEr007, 391 阅读, 收藏, 编辑
摘要:
相信自从看了我的 GitHub 教程很多人开始爱上了 GitHub,有些人微博也不刷了,知乎也不刷了,改刷 GitHub 了,而且刷的不亦乐乎。这是好事,多接触多了解一些开源项目,对你之后的项目中的开发效率有很大提高。但是,我要告诉你们的是,你们不是正确的姿势在阅读开源项目,今天就教你们一招最屌的姿 阅读全文
我是如何管理我的团队的?
2018-11-22 19:03 by GarfieldEr007, 204 阅读, 收藏, 编辑
摘要:
这个话题也是之前不少人问过我的,因为读者中很多人已经从一个工程师的角色转变到了小组长或者 Leader 的角色,一开始很多人对这个角色很不适应,包括我自己,庆幸的是我从这个过程中走出来了,从一个默默无闻的单枪匹马的 Android 工程师,到之后组建 Android 团队成为 Android Lea 阅读全文
如何正确使用开源项目?
2018-11-22 19:01 by GarfieldEr007, 397 阅读, 收藏, 编辑
摘要:
前天发了一篇文章「如何选择开源项目?」广受大家喜爱,其实我们在使用开源项目的过程中有不少注意的事项,今天就来给大家补充下「如何正确的使用开源项目?」 如果你是个人练手项目,那随你心情,想怎么用怎么用,没啥需要强调的注意事项,本篇文章仅是以在商业项目采用开源库做介绍。 1.使用成熟稳定的开源项目 现在 阅读全文
我面试到底问什么?
2018-11-22 19:01 by GarfieldEr007, 222 阅读, 收藏, 编辑
摘要:
最近太多的同学给我留言说「现在毕业季了,迫切希望张哥写一篇关于Android面试的文章」,好吧,今天终于兑现承诺了,这篇文章为你们而写。 首先,你们要明白,关于面试每个公司都不一样,甚至同一家公司不同的面试官也不一样,没有一个统一的技巧或者面试流程教你们,但是对于面试是有一些通用的原则的,这些年我大 阅读全文
如何选择开源项目?
2018-11-22 19:00 by GarfieldEr007, 230 阅读, 收藏, 编辑
摘要:
今天这篇文章也是因为最近不少人给我留言说「张哥,现在我接触到了开源社区,发现不少开源项目,但是却不知道如何选择应用到自己的项目上?」 这个问题比较好,相信不少人都有这样的疑问,且听我细细给大家说来。 什么是开源? 「开源」是从英文「Open Source」翻译精简而来,其实是开放源码的意思,我们知道 阅读全文
html表格中的tr td th用法
2018-11-22 18:54 by GarfieldEr007, 716 阅读, 收藏, 编辑
摘要:
表格是html中经常使用到的,简单的使用可能很多人都没问题,但是更深入的了解的人恐怕不多,下面我们先来看一下如何使用。 <table>是<tr>的上层标签<tr>必须在一个<table></table>里面,它不能单独使用,相当于<table>的属性标签. <table>标示一个表格,<tr>标示这 阅读全文
如何用 Java 实现 Web 应用中的定时任务?
2018-11-14 21:53 by GarfieldEr007, 1343 阅读, 收藏, 编辑
摘要:
定时任务,是指定一个未来的时间范围执行一定任务的功能。在当前WEB应用中,多数应用都具备任务调度功能,针对不同的语音,不同的操作系统, 都有其自己的语法及解决方案,windows操作系统把它叫做任务计划,linux中cron服务都提供了这个功能,在我们开发业务系统中很多时候会涉及到这个功能。本场ch 阅读全文
java定时任务实现的几种方式
2018-11-14 21:52 by GarfieldEr007, 5801 阅读, 收藏, 编辑
摘要:
摘要: 在开发测试工具的应用后台,经常听到同事说要做个定时任务把做日志处理,或者数据清理,包括做些复杂的业务计算逻辑,在选择定时任务的时候,怎么能够快速实现,并且选择一种更适合自己的方式呢? 我这里把定时任务的实现收集整理了一些方法,希望可以帮到刚开始做定时任务的同学,写得不对的地方请指正。 一 在 阅读全文
Java 定时任务 & 任务调度
2018-11-14 21:51 by GarfieldEr007, 595 阅读, 收藏, 编辑
摘要:
任务调度是指基于 给定时间点,给定时间间隔 或者 给定执行次数 自动执行任务。 方式1:通过 Thread 来实现 例如如下的代码,可以每隔 1000 毫秒做一次打印操作。 public class Job_Schedule_Test1 { public static void main(Strin 阅读全文
Java之旅--定时任务(Timer、Quartz、Spring、LinuxCron)
2018-11-14 21:50 by GarfieldEr007, 1036 阅读, 收藏, 编辑
摘要:
在Java中,实现定时任务有多种方式,本文介绍4种,Timer和TimerTask、Spring、QuartZ、Linux Cron。 以上4种实现定时任务的方式,Timer是最简单的,不需要任何框架,仅仅JDK就可以,缺点是仅仅是个时间间隔的定时器,调度简单;Spring和QuartZ都支持cro 阅读全文
详解java定时任务
2018-11-14 21:49 by GarfieldEr007, 379 阅读, 收藏, 编辑
摘要:
在我们编程过程中如果需要执行一些简单的定时任务,无须做复杂的控制,我们可以考虑使用JDK中的Timer定时任务来实现。下面LZ就其原理、实例以及Timer缺陷三个方面来解析java Timer定时器。 一、简介 在java中一个完整定时任务需要由Timer、TimerTask两个类来配合完成。 AP 阅读全文
几种任务调度的 Java 实现方法与比较
2018-11-14 21:48 by GarfieldEr007, 404 阅读, 收藏, 编辑
摘要:
前言 任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务调度的 Java 实现: Timer ScheduledExecutor 开源工具包 Quartz 开源工具包 JCronTab 此外,为结合实现复杂的任务调度,本文还将介绍 Calendar 的一些 阅读全文
Java| 编译和反编译
2018-11-14 21:37 by GarfieldEr007, 613 阅读, 收藏, 编辑
摘要:
原文链接: http://www.yveshe.com/articles/2018/05/01/1525172129089.html 什么是编程语言? 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language)。编程语言(Programming Language) 阅读全文
Java反编译工具CFR,Procyon简介
2018-11-14 21:35 by GarfieldEr007, 2741 阅读, 收藏, 编辑
摘要:
Java反编译工具有很多,个人觉得使用最方便的是jd-gui,当然jad也不错,jd-gui主要提供了图形界面,操作起来很方便,但是jd-gui很久没有更新了,java 7出来很久了,jd-gui在反编译java 7的class文件时候会遇到部分语法不支持的问题,下面我举几个例子,我使用的是jd-g 阅读全文
定制你自己的CRF模型
2018-11-14 21:31 by GarfieldEr007, 812 阅读, 收藏, 编辑
摘要:
如何训练自己的CRF模型 Ansj从5.0版本之后支持训练自己的crf模型,在此之前虽然已经很早支持了CRF模型,但是在用户的自训练上要求苛刻,而且本身实现的CRF从性能到准确率都不如CRF++或者第三方的,好吧.目前我做的是完败,所以另辟蹊径,打不过就嫖呗.只要支持他们训练的模型就可以.下面是一个 阅读全文
CFR Java Decompiler 反编译
2018-11-14 21:31 by GarfieldEr007, 1356 阅读, 收藏, 编辑
摘要:
java反编译,JAD & CFR 目前我们开发中大都使用JAD进行java反编译。这个工具已经过于陈旧,最突出的问题就是经常反编译出错。 使用CFR反编译工具能够很好的解决这个问题,并且支持java8,这个工具更活跃。 CFR 附件是Java反编译工具CFR,支持java7,java8的反编译,能 阅读全文
用CRF++开源工具做文本序列标注教程
2018-11-14 21:30 by GarfieldEr007, 1772 阅读, 收藏, 编辑
摘要:
本文只介绍如何快速的使用CRF++做序列标注,对其中的原理和训练测试参数不做介绍。 官网地址:CRF++: Yet Another CRF toolkit 主要完成如下功能: 输入 -> "周杰伦是谁" 输出 -> "[周杰伦:artist]是谁" 以下所有内容均为原创,如果觉得本教程不错的话,点个 阅读全文
CRFPP/CRF++编译安装与部署
2018-11-14 21:29 by GarfieldEr007, 1619 阅读, 收藏, 编辑
摘要:
CRFPP/CRF++编译安装与部署 from: http://blog.51cto.com/wutengfei/2095715 阅读全文
CRF 及CRF++ 安装与解释
2018-11-14 21:28 by GarfieldEr007, 1325 阅读, 收藏, 编辑
摘要:
CRF简介 Conditional Random Field:条件随机场,一种机器学习技术(模型) CRF由John Lafferty最早用于NLP技术领域,其在NLP技术领域中主要用于文本标注,并有多种应用场景,例如: 分词(标注字的词位信息,由字构词) 词性标注(标注分词的词性,例如:名词,动词 阅读全文
Java反编译工具Jad详解
2018-11-14 21:23 by GarfieldEr007, 2856 阅读, 收藏, 编辑
摘要:
做项目过程中需要反编译一个jar包,于是作了一些学习,记录下来。 Jad(JAva Decompiler)是一个Java的反编译器,可以通过命令行把Java的class文件反编译成源代码。 如果你在使用编写代码的时候遇到找不到源代码的第三方库,而且你又需要看看这个库的具体实现,那么你就需要使用这个东 阅读全文
如何解决问题
2018-11-14 21:11 by GarfieldEr007, 405 阅读, 收藏, 编辑
摘要:
最近打算去新的岗位,尝试新的业务,当然也就需要新的思考,新的碰撞,想起前段时间看过温伯格1982年出版的《你的灯亮着吗?》,把序言中的总结点摘录下来,希望能给自己带来些许思路。 问题其实就是你期望的东西和你体验的东西之间的差别。 1)动手去解决问题之前,好好想想问题的来源; 2)如何站在各个角度来看 阅读全文
Java 得到泛型中得到T.class
2018-11-14 21:10 by GarfieldEr007, 1815 阅读, 收藏, 编辑
摘要:
Class <T> entityClass = (Class <T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; getGenericInterfaces()和getGen 阅读全文
能力成长模型
2018-11-14 21:10 by GarfieldEr007, 406 阅读, 收藏, 编辑
摘要:
最近看了温伯格1986年出版的《技术领导之路》, 很老的书,讲的都是一些浅显但容易被忽视的道理, 就像第一章,讲作者自己玩弹子球的水平提升, 时间长了,以为自己的水平提升像下图这样,每年都在逐步提升: 而实际上往往不是,能力的提升过程通常都是“高原-突破”式的, 在高原时期沉淀和思考,在学会新方法后 阅读全文
java Class的 getSuperclass与getGenericSuperclass区别
2018-11-14 21:09 by GarfieldEr007, 584 阅读, 收藏, 编辑
摘要:
Class的getInterfaces与getGenericInterface区别 http://www.cnblogs.com/maokun/p/6773076.html 一、getSuperclass 返回直接继承的父类(由于编译擦除,没有显示泛型参数) 返回表示此 Class 所表示的实体(类 阅读全文
再有人问你volatile是什么,把这篇文章也发给他
2018-11-13 21:40 by GarfieldEr007, 425 阅读, 收藏, 编辑
摘要:
在上一篇文章中,我们围绕volatile关键字做了很多阐述,主要介绍了volatile的用法、原理以及特性。在上一篇文章中,我提到过:volatile只能保证可见性和有序性,无法保证原子性。关于这部分内容,有读者阅读之后表示还是不是很理解,所以我再单独写一篇文章深入分析一下。 volatile与有序 阅读全文
深入理解乐观锁与悲观锁
2018-11-13 21:40 by GarfieldEr007, 197 阅读, 收藏, 编辑
摘要:
在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。 乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。 无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种 阅读全文
再有人问你Java内存模型是什么,就把这篇文章发给他
2018-11-13 21:39 by GarfieldEr007, 319 阅读, 收藏, 编辑
摘要:
前几天,发了一篇文章,介绍了一下JVM内存结构、Java内存模型以及Java对象模型之间的区别。有很多小伙伴反馈希望可以深入的讲解下每个知识点。Java内存模型,是这三个知识点当中最晦涩难懂的一个,而且涉及到很多背景知识和相关知识。 网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》 阅读全文
再有人问你synchronized是什么,就把这篇文章发给他
2018-11-13 21:38 by GarfieldEr007, 327 阅读, 收藏, 编辑
摘要:
在再有人问你Java内存模型是什么,就把这篇文章发给他。中我们曾经介绍过,Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized、volatile、final、concurren包等。 在《深入理解Java虚拟机》中,有这样一 阅读全文
《成神之路-基础篇》JVM——Java内存模型(已完结)
2018-11-13 21:37 by GarfieldEr007, 341 阅读, 收藏, 编辑
摘要:
Java内存模型 本文是《成神之路系列文章》的第一篇,主要是关于JVM的一些介绍。 持续更新中 Java内存模型 JVM内存结构 VS Java内存模型 VS Java对象模型(Hollis原创) 再有人问你Java内存模型是什么,就把这篇文章发给他。(Hollis原创) 内存模型是怎么解决缓存一致 阅读全文
各大互联网公司架构演进之路汇总
2018-11-13 21:36 by GarfieldEr007, 385 阅读, 收藏, 编辑
摘要:
大型网站架构演化历程 大型网站架构技术一览 Web 支付宝和蚂蚁花呗的技术架构及实践 聚划算架构演进和系统优化 (视频+PPT) 淘宝交易系统演进之路 (专访) 淘宝数据魔方技术架构解析 淘宝技术发展历程和架构经验分享(视频+PPT) 阿里游戏高可用架构设计实践 高德——快速转型时期的稳定性架构实践 阅读全文
《成神之路系列文章》
2018-11-13 21:36 by GarfieldEr007, 257 阅读, 收藏, 编辑
摘要:
Java工程师成神之路一文介绍了一个普通的Java工程师想要成神需要学习的所有相关知识点。很多内容介绍都是直接抛了一个链接,并且大部分都是英文文档或者相关技术的官网。 本系列文章主要从头开始总结Java工程师成神之路一文中介绍的所有知识点。 编程届有一句老话,叫做不要重复造轮子。虽然我并不完全认同这 阅读全文
Java工程师成神之路~(2018修订版)
2018-11-13 21:33 by GarfieldEr007, 273 阅读, 收藏, 编辑
摘要:
针对本文,博主最近在写《成神之路系列文章》 ,分章分节介绍所有知识点。欢迎关注。 一、基础篇 JVM JVM内存结构 堆、栈、方法区、直接内存、堆和栈区别 Java内存模型 内存可见性、重排序、顺序一致性、volatile、锁、final 垃圾回收 内存分配策略、垃圾收集器(G1)、GC算法、GC参 阅读全文
Java的并发编程中的多线程问题到底是怎么回事儿?
2018-11-13 21:32 by GarfieldEr007, 257 阅读, 收藏, 编辑
摘要:
在我之前的一篇《再有人问你Java内存模型是什么,就把这篇文章发给他。》文章中,介绍了Java内存模型,通过这篇文章,大家应该都知道了Java内存模型的概念以及作用,这篇文章中谈到,在Java并发编程中,通常会遇到三个问题,即原子性问题、一致性问题和有序性问题。 上面一篇文章简单介绍了一下,由于各种 阅读全文
深入理解多线程(五)—— Java虚拟机的锁优化技术
2018-11-13 21:31 by GarfieldEr007, 579 阅读, 收藏, 编辑
摘要:
本文是《深入理解多线程》的第五篇文章,前面几篇文章中我们从synchronized的实现原理开始,一直介绍到了Monitor的实现原理。 前情提要 通过前面几篇文章,我们已经知道: 1、同步方法通过ACC_SYNCHRONIZED关键字隐式的对方法进行加锁。当线程要执行的方法被标注上ACC_SYNC 阅读全文
Java中线程池,你真的会用吗?
2018-11-13 21:24 by GarfieldEr007, 1363 阅读, 收藏, 编辑
摘要:
在《深入源码分析Java线程池的实现原理》这篇文章中,我们介绍过了Java中线程池的常见用法以及基本原理。 在文中有这样一段描述: 可以通过Executors静态工厂构建线程池,但一般不建议这样使用。 关于这个问题,在那篇文章中并没有深入的展开。作者之所以这么说,是因为这种创建线程池的方式有很大的隐 阅读全文
深入理解多线程(四)—— Moniter的实现原理
2018-11-13 21:23 by GarfieldEr007, 402 阅读, 收藏, 编辑
摘要:
在深入理解多线程(一)——Synchronized的实现原理中介绍过关于Synchronize的实现原理,无论是同步方法还是同步代码块,无论是ACC_SYNCHRONIZED还是monitorenter、monitorexit都是基于Monitor实现的,那么这篇来介绍下什么是Monitor。 操作 阅读全文
深入理解多线程(三)—— Java的对象头
2018-11-13 21:22 by GarfieldEr007, 834 阅读, 收藏, 编辑
摘要:
上一篇文章中我们从HotSpot的源码入手,介绍了Java的对象模型。这一篇文章在上一篇文章的基础上再来介绍一下Java的对象头。主要介绍一下对象头的作用,结构以及他和锁的关系。 Java对象模型回顾与勘误 在上一篇文章中,关于对象头的部分描述有误,我已经在我博客的文章中就行修正 。这里再重新表述一 阅读全文
深入理解多线程(一)——Synchronized的实现原理
2018-11-13 21:21 by GarfieldEr007, 403 阅读, 收藏, 编辑
摘要:
synchronized,是Java中用于解决并发情况下数据同步访问的一个很重要的关键字。当我们想要保证一个共享资源在同一时间只会被一个线程访问到时,我们可以在代码中使用synchronized关键字对类或者对象加锁。那么,本文来介绍一下synchronized关键字的实现原理是什么。在阅读本文之间 阅读全文
深入理解多线程(二)—— Java的对象模型
2018-11-13 21:21 by GarfieldEr007, 694 阅读, 收藏, 编辑
摘要:
上一篇文章中简单介绍过synchronized关键字的方式,其中,同步代码块使用monitorenter和monitorexit两个指令实现,同步方法使用ACC_SYNCHRONIZED标记符实现。后面几篇文章会从JVM源码的角度更加深入,层层剥开synchronized的面纱。 在进入正题之前,肯 阅读全文
面经 | 我是如何通过校招拿到京东的Offer的
2018-11-13 18:54 by GarfieldEr007, 577 阅读, 收藏, 编辑
摘要:
本文来自粉丝投稿,原作者:红鼻子熊。 版权归Hollis所有。 OFFER:京东2018校招物流研发岗 个人:211小硕 面试时间:2017年秋天 整体:三轮面试,前两轮为技术面试,最后为hr面试 一面 面试时间较长,回答速度也较快,所有问题都进行了完整的回答。形式为电话面试,都是基础,难度一般,不 阅读全文
学了编译原理能否用 Java 写一个编译器或解释器?
2018-11-13 18:36 by GarfieldEr007, 1340 阅读, 收藏, 编辑
摘要:
16 个回答 默认排序 16 个回答 默认排序 默认排序 RednaxelaFX JavaScript、编译原理、编程 等 7 个话题的优秀回答者 282 人赞同了该回答 能。我一开始学编译原理的时候就是用Java写了好多小编译器和解释器。其实用什么语言来实现编译器并不是最重要的部分(虽然Ja 阅读全文
Javac编译原理
2018-11-13 18:34 by GarfieldEr007, 414 阅读, 收藏, 编辑
摘要:
java源代码(符合语言规范)-->javac-->.class(二进制文件)-->jvm-->机器语言(不同平台不同种类) 如何让java的语法规则适应java虚拟机的语法规则?这个任务由javac编译器来完成java语言规范转换成java虚拟机语言规范。 编译流程: 流程: 词法分析器:将源码转 阅读全文
Java编译原理
2018-11-13 18:33 by GarfieldEr007, 300 阅读, 收藏, 编辑
摘要:
1. 关于动态加载机制 学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分。很多人都能背出来Java语言的特点,所谓的动态加载机制等等。当然概念往往是先记住而后消化的,可有多少人真正去体会过动态加载的机制,试图去寻找过其中的细节呢? 提供大家一个方法:在命令行窗口运行J 阅读全文
深入分析Java的编译原理
2018-11-13 18:33 by GarfieldEr007, 710 阅读, 收藏, 编辑
摘要:
在《Java代码的编译与反编译》中,有过关于Java语言的编译和反编译的介绍。我们可以通过javac命令将Java程序的源代码编译成Java字节码,即我们常说的class文件。这是我们通常意义上理解的编译。 但是,字节码并不是机器语言,要想让机器能够执行,还需要把字节码翻译成机器指令。这个过程是Ja 阅读全文
无IDE时编译和运行Java
2018-11-13 18:29 by GarfieldEr007, 395 阅读, 收藏, 编辑
摘要:
最近 Java subreddit 出现了一篇”在没有IDE的情况下编译Java包” 的帖子,这个帖子抛出了这么一个问题,“是否存在一个命令可以编译一组处于同一文件夹下独立包内的java文件的方法(这称之为bin),同时怎样运行新的类文件呢?” 它的提出者 kylolink解释说,“当我开始依赖Ec 阅读全文
Java 代码编译和执行的整个过程
2018-11-13 18:28 by GarfieldEr007, 223 阅读, 收藏, 编辑
摘要:
Java 字节码的执行是由 JVM 执行引擎来完成,流程图如下所示: Java 代码编译和执行的整个过程包含了以下三个重要的机制: Java 源码编译机制 类加载机制 类执行机制 Java 源码编译机制 Java 源码编译由以下三个过程组成: 分析和输入到符号表 注解处理 语义分析和生成 class 阅读全文
java常见反编译工具
2018-11-13 18:23 by GarfieldEr007, 2572 阅读, 收藏, 编辑
摘要:
1、Java反编译插件 —— Jadclipse JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins目录下,然后修改window -> Preferences -> Java -> JadClipse 阅读全文
Java代码的编译与反编译那些事儿
2018-11-13 18:23 by GarfieldEr007, 501 阅读, 收藏, 编辑
摘要:
编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language)。编程语言(Programming Language)分为低级语言(Low-level Language)和高级语言(High-level Language)。 机器语言(Machine Lang 阅读全文
java反编译工具
2018-11-13 18:00 by GarfieldEr007, 260 阅读, 收藏, 编辑
摘要:
介绍 Java 反编译工具有很多种,以下介绍其中一些工具 jad jad 是一款使用非常广泛地 Java 反编译工具,官网 http://www.varaneckas.com/jad 提供下载 批量反编译 .class 示例 jad.exe -r -ff -d src -s java classes 阅读全文
Btrace使用教程
2018-11-13 14:44 by GarfieldEr007, 277 阅读, 收藏, 编辑
摘要:
下载 安装及环境配置 BTrace简介及使用须知 使用方法 使用场景 实战DEMO 1.监控指定方法的耗时 2.监控指定函数中所有外部调用的耗时情况.PS:这里最好只监控一个函数 太多的话 性能没法看 3.按接口、父类监控方法的执行 4.正则表达式定位监控 5.监控代码是否到达了某类的某一行 6.打 阅读全文
我的Java学习推荐书目
2018-11-13 14:43 by GarfieldEr007, 199 阅读, 收藏, 编辑
摘要:
一、基础类1、《Thinking in java》,入门第一位是建立正确的概念。2、《Core Java》,我没系统读过,这本书更贴近实践,更多API的介绍,同样,更新也更频繁。 二、进阶类1、《Effective Java》,在熟悉语法、API之后,你需要知道最佳实践和陷阱,没有比这本更好的。2、 阅读全文
BTrace使用简介
2018-11-13 14:41 by GarfieldEr007, 120 阅读, 收藏, 编辑
摘要:
很多时候在online的应用出现问题时,很多时候我们需要知道更多的程序的运行细节,但又不可能在开发的时候就把程序中所有的运行细节都打印到日志上,通常这个时候能采取的就是修改代码,重新部署,然后再观察,但这种方法对于online应用来说不是很好,另外一方面如果碰到不好改的代码,例如引用的其他的外部的包 阅读全文
BTrace使用小结
2018-11-13 14:40 by GarfieldEr007, 396 阅读, 收藏, 编辑
摘要:
简介 BTrace是一个安全的JVM动态追踪工具,最初为原Sun公司Kenai项目下面的一个子项目。 典型的使用场景是,“我要查个问题,可那个方法没有打印入口参数和返回结果日志”,“我想看某个方法的执行耗时”,“我想查看某方法如System.GC()的调用栈”等等,这些都是BTrace可以小试牛刀的 阅读全文
如何在生产环境使用Btrace进行调试
2018-11-13 14:39 by GarfieldEr007, 291 阅读, 收藏, 编辑
摘要:
占小狼 转载请注明原创出处,谢谢! 背景 记得前几天有人问我:在生产环境中可能经常遇到各种问题,你们一般是如何进行调试的? 很惭愧,没有经验。因为平时碰不到生产环境的服务器,定位问题需要各种数据,所以大多数问题的解决方式都是在本地打断点进行调试,或者在测试环境利用输出日志进行调试,这种方式简单粗暴, 阅读全文
BTrace : Java 线上问题排查神器
2018-11-13 14:38 by GarfieldEr007, 161 阅读, 收藏, 编辑
摘要:
BTrace 是什么 BTrace 是检查和解决线上的问题的杀器,BTrace 可以通过编写脚本的方式,获取程序执行过程中的一切信息,并且,注意了,不用重启服务,是的,不用重启服务。写好脚本,直接用命令执行即可,不用动原程序的代码。 原理 总体来说,BTrace 是基于动态字节码修改技术(Hotsw 阅读全文
淘宝Tprofiler工具实现分析
2018-11-13 14:31 by GarfieldEr007, 367 阅读, 收藏, 编辑
摘要:
工具介绍TProfiler是一个可以在生产环境长期使用的性能分析工具.它同时支持剖析和采样两种方式,记录方法执行的时间和次数,生成方法热点 对象创建热点 线程状态分析等数据,为查找系统性能瓶颈提供数据支持.TProfiler在JVM启动时把时间采集程序注入到字节码中,整个过程无需修改应用源码.运行时 阅读全文
JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码
2018-11-13 14:30 by GarfieldEr007, 284 阅读, 收藏, 编辑
摘要:
本文是《JVM 性能调优实战之:一次系统性能瓶颈的寻找过程》 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍),并准确定位系统瓶颈:我们应用里静态对象不是太多、有大量的业务线程在频繁创建一些生命周期很长的临时对象,代码里有 阅读全文
性能工具TProfiler介绍文档
2018-11-13 14:28 by GarfieldEr007, 303 阅读, 收藏, 编辑
摘要:
工具介绍 TProfiler是一个可以在生产环境长期使用的性能分析工具.它同时支持剖析和采样两种方式,记录方法执行的时间和次数,生成方法热点 对象创建热点 线程状态分析等数据,为查找系统性能瓶颈提供数据支持. TProfiler在JVM启动时把时间采集程序注入到字节码中,整个过程无需修改应用源码.运 阅读全文
CAP原则(CAP定理)、BASE理论
2018-11-13 10:10 by GarfieldEr007, 152 阅读, 收藏, 编辑
摘要:
CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。 CAP原则是NOSQL数据库的基石。Consistency(一致性)。 Availability(可用性 阅读全文
分布式系统理论基础 - CAP
2018-11-13 10:10 by GarfieldEr007, 164 阅读, 收藏, 编辑
摘要:
引言 CAP是分布式系统、特别是分布式存储领域中被讨论最多的理论,“什么是CAP定理?”在Quora 分布式系统分类下排名 FAQ 的 No.1。CAP在程序员中也有较广的普及,它不仅仅是“C、A、P不能同时满足,最多只能3选2”,以下尝试综合各方观点,从发展历史、工程实践等角度讲述CAP理论。希望 阅读全文
CAP 定理的含义
2018-11-13 10:09 by GarfieldEr007, 127 阅读, 收藏, 编辑
摘要:
分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。 分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。 本文介绍该定理。它其实很好懂,而且是显而易见的。下面的内容主要参考了 Michael Whit 阅读全文
JVM监测分析JConsole
2018-11-11 21:38 by GarfieldEr007, 214 阅读, 收藏, 编辑
摘要:
一、基本操作 启动界面 1.JConsole是什么 从Java 5开始引入了JConsole。JConsole是一个内置Java性能分析器,可以从命令行或在GUI shell中运行。您可以轻松地使用JConsole(或者,它更高端的“近亲” VisualVM)来监控Java应用程序性能和跟踪Java 阅读全文
JConsole详解
2018-11-11 21:37 by GarfieldEr007, 557 阅读, 收藏, 编辑
摘要:
一、JConsole是什么 从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Jav 阅读全文
jconsole工具使用
2018-11-11 21:36 by GarfieldEr007, 371 阅读, 收藏, 编辑
摘要:
Jconsole,Java Monitoring and Management Console。Jconsole是JDK自带的监控工具,在JDK/bin目录下可以找到。它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监控,并画出大量的图表,提供强大的可视化界面。 阅读全文
JVM 虚拟机字节码指令表
2018-11-11 21:01 by GarfieldEr007, 787 阅读, 收藏, 编辑
摘要:
把JVM虚拟机字节指令表整理了一下,方便搜索,偶尔复习下 纯手工整理,可能存在一些问题,如果发现请及时告之我会修正 from: https://segmentfault.com/a/1190000008722128 阅读全文
轻松看懂Java字节码
2018-11-11 21:01 by GarfieldEr007, 5614 阅读, 收藏, 编辑
摘要:
java字节码 计算机只认识0和1。这意味着任何语言编写的程序最终都需要经过编译器编译成机器码才能被计算机执行。所以,我们所编写的程序在不同的平台上运行前都要经过重新编译才能被执行。 而Java刚诞生的时候曾经提过一个非常著名的宣传口号: "一次编写,到处运行"。 Write Once, Run A 阅读全文
大话+图说:Java字节码指令——只为让你懂
2018-11-11 20:59 by GarfieldEr007, 1063 阅读, 收藏, 编辑
摘要:
前言 随着Java开发技术不断被推到新的高度,对于Java程序员来讲越来越需要具备对更深入的基础性技术的理解,比如Java字节码指令。不然,可能很难深入理解一些时下的新框架、新技术,盲目一味追新也会越来越感乏力。 本文既不求照本宣科,亦不求炫技或著文立说,仅力图以最简明、最形象生动的方式,结合例子与 阅读全文
深入理解java虚拟机(六)字节码指令简介
2018-11-11 20:59 by GarfieldEr007, 371 阅读, 收藏, 编辑
摘要:
Java虚拟机指令是由(占用一个字节长度、代表某种特定操作含义的数字)操作码Opcode,以及跟随在其后的零至多个代表此操作所需参数的称为操作数 Operands 构成的。由于Java虚拟机是面向操作数栈而不是寄存器的架构,所以大多数指令都只有操作码,而没有操作数。 字节码指令集是一种具有鲜明特点、 阅读全文
JVM Object Query Language (OQL) 查询语言
2018-11-11 17:10 by GarfieldEr007, 581 阅读, 收藏, 编辑
摘要:
Object Query Language (OQL) OQL is SQL-like query language to query Java heap. OQL allows to filter/select information wanted from Java heap. While pr 阅读全文
JVM OQL查询语言
2018-11-11 17:08 by GarfieldEr007, 665 阅读, 收藏, 编辑
摘要:
OQL查询语言 SELECT Clause The SELECT clause determines what to extract from the heap dump. To display objects and be able to browse the outgoing reference 阅读全文
Java命令学习系列(七)——javap
2018-11-10 21:56 by GarfieldEr007, 386 阅读, 收藏, 编辑
摘要:
javap是jdk自带的一个工具,可以对代码反编译,也可以查看java编译器生成的字节码。 一般情况下,很少有人使用javap对class文件进行反编译,因为有很多成熟的反编译工具可以使用,比如jad。但是,javap还可以查看java编译器为我们生成的字节码。通过它,可以对照源代码和字节码,从而了 阅读全文
Java命令学习系列(六)——jinfo
2018-11-10 21:55 by GarfieldEr007, 260 阅读, 收藏, 编辑
摘要:
jinfo可以输出java进程、core文件或远程debug服务器的配置信息。这些配置信息包括JAVA系统参数及命令行参数,如果进程运行在64位虚拟机上,需要指明-J-d64参数,如:jinfo -J-d64 -sysprops pid 另外,Java7的官方文档指出,这一命令在后续的版本中可能不再 阅读全文
Java命令学习系列(五)——jhat
2018-11-10 21:54 by GarfieldEr007, 363 阅读, 收藏, 编辑
摘要:
jhat(Java Heap Analysis Tool),是一个用来分析java的堆情况的命令。之前的文章讲到过,使用jmap可以生成Java堆的Dump文件。生成dump文件之后就可以用jhat命令,将dump文件转成html的形式,然后通过http访问可以查看堆情况。 jhat命令解析会Jav 阅读全文
Java命令学习系列(三)——Jmap
2018-11-10 21:53 by GarfieldEr007, 304 阅读, 收藏, 编辑
摘要:
Jmap jmap是JDK自带的工具软件,主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。可以使用jmap生成Heap Dump。在Java命令学习系列(零)——常见命令及Java Dump介绍和Java命令学习系列(二)——Jstack中分别有关于Java 阅读全文
Java命令学习系列(四)——jstat
2018-11-10 21:53 by GarfieldEr007, 246 阅读, 收藏, 编辑
摘要:
jstat(JVM Statistics Monitoring Tool)是用于监控虚拟机各种运行状态信息的命令行工具。他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形的服务器上,它是运行期定位虚拟机性能问题的首选工具。 jstat位于java的bin 阅读全文
Java命令学习系列(二)——Jstack
2018-11-10 21:52 by GarfieldEr007, 294 阅读, 收藏, 编辑
摘要:
jstack是java虚拟机自带的一种堆栈跟踪工具。 功能 jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停 阅读全文
Java命令学习系列(一)——Jps
2018-11-10 21:51 by GarfieldEr007, 342 阅读, 收藏, 编辑
摘要:
jps位于jdk的bin目录下,其作用是显示当前系统的java进程情况,及其id号。 jps相当于Solaris进程工具ps。不象”pgrep java”或”ps -ef grep java”,jps并不使用应用程序名来查找JVM实例。因此,它查找所有的Java应用程序,包括即使没有使用java执行 阅读全文
Java命令学习系列(零)——常见命令及Java Dump介绍
2018-11-10 21:50 by GarfieldEr007, 1156 阅读, 收藏, 编辑
摘要:
一、常用命令: 在JDK的bin目彔下,包含了java命令及其他实用工具。 jps:查看本机的Java中进程信息。 jstack:打印线程的栈信息,制作线程Dump。 jmap:打印内存映射,制作堆Dump。 jstat:性能监控工具。 jhat:内存分析工具。 jconsole:简易的可视化控制台 阅读全文
Java开发必须掌握的线上问题排查命令
2018-11-10 21:49 by GarfieldEr007, 238 阅读, 收藏, 编辑
摘要:
作为一个合格的开发人员,不仅要能写得一手还代码,还有一项很重要的技能就是排查问题。这里提到的排查问题不仅仅是在coding的过程中debug等,还包括的就是线上问题的排查。由于在生产环境中,一般没办法debug(其实有些问题,debug也白扯。。。),所以我们需要借助一些常用命令来查看运行时的具体情 阅读全文
Jigsaw 项目:Java 模块系统新手引导
2018-11-10 21:39 by GarfieldEr007, 863 阅读, 收藏, 编辑
摘要:
前言 随着 2017 年 10 月 Java 9 的发布,Java 能够使用模块系统了,但是中文互联网上的资料太少,许多关于 Java 模块系统的文章都只是介绍了模块系统的好处,或者给了一些毫无组织的代码片段,新手在第一次使用模块系统时往往不知道如何下手。 好在 OpenJDK 官方文档给出了一个很 阅读全文
Java9模块化(Jigsaw)初识
2018-11-10 21:38 by GarfieldEr007, 1009 阅读, 收藏, 编辑
摘要:
对比 Java9 以前 上面2个图分别对应的分别是JDK8/9的目录下的 src.zip 文件,从图片上看上 Java9 的目录都发生变化了,从以前的一个 java 里面就拆除了好几个模块,比如 java.logging, java.desktop, java.se 等,当然也把之前存放在 tool 阅读全文
Java9 modules (Jigsaw)模块化迁移
2018-11-10 21:36 by GarfieldEr007, 844 阅读, 收藏, 编辑
摘要:
要点 通过模块化的方式开发应用程序,实现更好的设计,如关注点分离和封装性。 通过Java平台模块化系统(JPMS),开发者可以定义他们的应用程序模块,决定其他模块如何调用他们的模块,以及他们的模块如何依赖其他模块。 对于已经使用了其他模块系统(如Maven或Gradle)的应用程序来说,还是有可能再 阅读全文