在逛 programcreek 的时候,我发现了一些小而精悍的主题.比如说:创建 Java 字符串,用 "" 还是构造函数?像这类灵魂拷问的主题,非常值得深入地研究一下. 01."" 来看这样一串代码: String a = "沉默王二"; String b = "沉默王二"; System.out.println(a == b); // true System.out.println(a.equals(b)); // tru…
JVM内存结构,是很重要的知识,相信每一个静心准备过面试的程序员都可以清楚的把堆.栈.方法区等介绍的比较清楚. 上图,是一张在作者根据<Java虚拟机规范(Java SE 8)>中描述的JVM运行时内存区域结构画的. 很多人都知道Java对象是在堆内存中分配空间的(JIT优化除外),也知道内存分配过程中是线程安全的,那么虚拟机到底是如何保证线程安全的呢?本文就来简单介绍一下. 1.Java对象的内存分配 我们知道,Java是一门面向对象的语言,我们在Java中使用的对象都需要被创建出来,在Ja…
创建Java字符串数组 注:jni中没有与String[]对应的数据类型,所以需要创建对象数组,循环添加jstring对象 #include <Sample3.h> #include <string.h> #include <stdlib.h> #define ARRAY_LENGTH 5 JNIEXPORT jobjectArray JNICALL Java_Sample3_stringMethod (JNIEnv *env, jobject obj, jstring…
在逛 programcreek 的时候,我发现了一些小而精悍的主题.比如说:Java 的 substring() 方法是如何工作的?像这类灵魂拷问的主题,非常值得深入地研究一下. 另外,我想要告诉大家的是,研究的过程非常的有趣,就好像在迷宫里探宝一样,起初有些不知所措,但经过一番用心的摸索后,不但会找到宝藏,还会有一种茅塞顿开的感觉,非常棒. 对于绝大多数的初级程序员或者说不重视"内功"的老鸟来说,往往停留在"知其然不知其所以然"的层面上--会用,但要说底层的原理,…
限时 1 秒钟给出答案,来来来,听我口令:"Java 如何获取数组和字符串的长度?length 还是 length()?" 在逛 programcreek 的时候,我发现了上面这个主题.说实话,我当时脑海中浮现出了这样一副惊心动魄的画面: 面试官老马坐在我的对面,地中海式的发型令我敬佩有加.尽管略显疲惫,但他仍然自信地向我抛出了上面这个问题.稍稍迟疑了一下,我回答说:"数组用 length,字符串用 length 跟上小括号".老马不愧是面试中的高手,一瞬间就从我的…
在逛 programcreek 的时候,发现了一些精妙绝伦的主题.比如说:为什么 Java 字符串是不可变的?像这类灵魂拷问的主题,非常值得深思. 对于绝大多数的初级程序员来说,往往停留在"知其然不知其所以然"的层面上--会用,但要说底层的原理,可就只能挠挠头双手一摊一张问号脸了. 很长一段时间内,我也一直处于这种层面上.导致的局面就是,我在挖一些高深点的技术方案时,往往束手无策:在读一些高深点的技术文章时,往往理解不了作者在说什么. 借此机会,我就和大家一起,对"为什么 J…
在逛 programcreek 的时候,我发现了一些专注细节但价值连城的主题.比如说:如何检查Java数组中是否包含某个值 ?像这类灵魂拷问的主题,非常值得深入地研究一下. 另外,我想要告诉大家的是,作为程序员,我们千万不要轻视这些基础的知识点.因为基础的知识点是各种上层技术共同的基础,只有彻底地掌握了这些基础知识点,才能更好地理解程序的运行原理,做出更优化的产品. 我曾在某个技术论坛上分享过一篇非常基础的文章,结果遭到了无数的嘲讽:"这么水的文章不值得分享."我点开他的头像进入他的主…
首先来看一下C/C++中怎么创建Java对象:在JNIEnv中有两种方法是用来创建Java对象的: 第一种方法: jobject  NewObject(jclass clazz  , jmethodID methodID, ....): 参数解释: clazz:这个很简单,就是需要创建的Java对象的Class对象 methodID:这个是传递一个方法的ID,想一想Java对象在创建的时候,需要执行什么方法呢?对,没错那就是构造方法 第三个参数:是构造函数需要传入的参数值(默认的构造方法是不需要…
show me the code and take to me,做的出来更要说的明白 GitHub项目JavaHouse同步收录 喜欢就点个赞呗! 你的支持是我分享的动力! 引入 我们经常听到工厂模式,比如说 Spring 用了工厂模式啦,面试也会被问到工厂模式等等,这见工厂模式是日常开发中比较重要的一种设计模式.其实工厂模式也是比较简单的一种设计模式,这年头似乎不了解工厂模式,你都不好意思说你学过 编程一样(手动狗头).那么,允许我灵魂拷问一下,你真的了解工厂模式吗. UML类图 不急,我们先…
原创/朱季谦 灵魂拷问,这位独秀同学,你会这道题吗?  请说说,"System.out.println()"原理...... 这应该是刚开始学习Java时用到最多一段代码,迄今为止,与它算是老朋友了.既然是老朋友,就应该多去深入了解下其"内心"深处的"真正想法". 在深入了解之前,先给自己提几个问题: System是什么?out是什么?println又是什么?三个代码组成为何能实现打印信息的功能? 接下来,我们就带着问题,去熟悉我们这位相处已久的…