Java数据库连接——JDBC基础知识(操作数据库:增删改查) 首先我们需要往所用的软件中添加相对应的sqljdbc.jar。 大体流程 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forN ...
分类:
数据库 时间:
2018-08-04 11:39:14
阅读次数:
187
JDK=JRE+开发工具包; JRE=JVM+核心内库; JVM--java virtual machine(Java虚拟机)。Java语言的一个非常重要的特点就是跨平台,而要实现跨平台就是依靠JVM(Java虚拟机)。不同的平台对应不同的JVM,Java程序编译后生成的字节码文件(.class文件 ...
分类:
其他好文 时间:
2018-08-04 00:36:55
阅读次数:
202
运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole、大名鼎鼎的VisualVM,IBM的Memory Analyzer等等,但是在生产环境出现问题的时候,一方面工具的使用会有所限制,另一方面喜欢装X的我们,总喜欢在出现 ...
分类:
编程语言 时间:
2018-08-03 18:05:29
阅读次数:
159
工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗费性能的分析(dump文件分析)一般也不会在生产直接分析,往往dump下来的文件达1G左右,人工分析效率较低,因此利用工具来分析jvm相关问题,长长可以到达事半功倍的效果来。 jvm监控分析工具一般分为两类,一种是jdk自带的工具,一种是第三 ...
分类:
编程语言 时间:
2018-08-03 18:02:41
阅读次数:
149
1.前言 HotSpot采取了可达性分析算法用来判断对象是否被能被GC,无论是引用计算法还是可达性分析算法都是判断对象是否存在引用来判断对象是否存活。如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。为了丰富的描述对象与对象之间的关系,更为了实现 ...
分类:
编程语言 时间:
2018-08-03 17:27:22
阅读次数:
145
"a=b"和"a.equals(b)"有什么区别? 如果 a 和 b 都是对象,则 a==b 是比较两个对象的引用,只有当 a 和 b 指向的是堆中的同一个对象才会返回 true,而 a.equals(b) 是进行逻辑比较,当内容相同时,返回true,所以通常需要重写该方法来提供逻辑一致性的比较。 ...
分类:
编程语言 时间:
2018-08-02 23:13:38
阅读次数:
337
总结自《深入理解java虚拟机》 上图: 这是阅读该章节后画的一个总结图 运行时数据区可以分为两部分:线程共享区和线程私有区 一、线程共享区 这部分区域又分为堆(Heap)和方法区(也就是通常所说的非堆内存) 1、Heap (1)堆是在JVM启动时创建,主要存放对象实例,在虚拟机规范中的描述是:所有 ...
分类:
其他好文 时间:
2018-08-02 20:52:53
阅读次数:
145
书中写道,如果JDK1.6会返回两个false,JDK1.7运行则会返回一个true一个false。 因为JDK1.6中,intern()方法会把首次遇到的字符串实例复制到永久代中,返回的也是永久代中这个字符串的实例的引用,而StringBulder创建的字符串实例在Java堆上,所以必然不是同一个 ...
分类:
编程语言 时间:
2018-08-02 20:35:23
阅读次数:
177
所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能问题,那么这些问题就会变的非常常见,了解JVM内存也是为了服务器出现性能问题的时候可以快速的了解那块的内存区域出现问 ...
分类:
编程语言 时间:
2018-08-02 19:10:57
阅读次数:
145
Java虚拟机的内存区域中,程序计数器、虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭;栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这三个区域的内存分配和回收都具有确定性。垃圾回收重点关注的是堆和方法区部分的 ...
分类:
编程语言 时间:
2018-08-02 02:11:11
阅读次数:
149