IntelliJ IDEA15 预览版的新特性

    最近IntelliJ Idea出了新版本15的早期预览版,内容来源:http://blog.jetbrains.com/idea/2015/06/intellij-idea-15-eap-is-open/

    名字是Minerva,古罗马的智慧女神

    在通用功能方面,15更多的是改进和局部创新,并不像14有巨大的变化,甚至有些改进给人一种『然而并没有什么卵用』的感觉。当然每次新版本都会对很多专项领域有更多支持,如一些框架或者语言的支持。因此新版本改动是很大,但是涉及到每个人常用的,可能不多,也可以理解






1. 改进了对lambada的debug

    java8引入了函数式的lambada语法,但是由于其语法的特殊性,调试并不是非常方便,所以新版本针对其做了改进,不仅可以单步调试,还可以让光标指哪打哪。





2. 『然并卵#1』,灵活的code formatter

    我们都知道code formatter,也知道formatter的规则要在IDE设置中调整,空格啊,换行啊之类的。好的,15让你可以单独选中某些代码,然后局部做出调整。(然而鬼才会去在意这些东西啊,本人从小到大,除了调过每行最大宽度就没动过默认formatter。。。。)





3.  Find in Path的结果将实时展示

    当我们想查找哪些文件中含有某个关键词时,就要依靠Find in Path,相当于一个全局搜索的功能。通常输入关键词后,需要点击确定,然后展现结果列表。所以为了让用户体验做的更好,15提供了实时展现搜索结果。不过,这只能算一个简易的界面,阅读效果是没法和『确认』后的正规结果列表比。当然,这种程度可能也已经满足了大多数情况了。


 



4. 『然并卵#2』,提交代码窗口中的代码比较面板可以修改代码。。。

    其实idea的正规比较代码窗口(就是那个左右两半代码比较的窗口),本来也是可以修改代码的。而这里指的是代码提交窗口中,那个简易的代码比较面板。其实如果它没提这个更新,我都不知道原来这里不能改代码了。。。鬼才会在这么小一个面板里去看代码比较啊。。。




不过要提一点在14.1版本中代码比较的一个更新,特别棒!通常代码比较是左(中)右面板横向比较,它提出一个one side模式,就是将diff的代码纵向排列。比如这样:

System.out.println("hello");
System.out.println("helle");

再配合一定的颜色高亮,一下就看出区别了。特别是代码很长,或者引号、括号特别多的场景,非常适合。不得不说,JetBrain团队在用户体验方面做的确实到位,看来有一位不错的产品经理。。。



5.  Database Tools也有小的改进

    一个是改进了新建database的界面,以前的确实有点怪;
    一个是sql查询结果列表,终于显示加上了分页按钮(早该加了)
    然后就是改进了展示数据库表的tree结构,以往是不分table,view,seq等等类型的,现在做了划分。当然,正规的数据库连接工具,这一点还是必须要的,像plsql这种从来都是区分的。

     这里顺便安利一点,idea的database tools虽然不能完全替代plsql或者navicat这种专业工具,但是很多时候已经足够用了,而且还有自己的优势。
    比如代码中,写sql字符串时,表名列名、关键词等,都会有自动提示和代码补全,还有高亮显示字段和语法,就像在plsql里写sql时一样。甚至更强大,如果表里有A,B,C三个字段,你想要全部select,但又不想select星,此时idea的就提供了 "select A, B, C"这样的选择,真是十几个字段的福音,用户体验啊,用户体验!



另外还有一些改进,有的比较琐碎,就不一一列举了。哦,还有好像默认字体变了,但也有可能是因为我用的mac版的原因。

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

JAVA对内存和非堆内存 - 2015-07-08 18:07:38

在看Netty时,看到了一个词,“非堆内存”。 简单来说,堆内存就是heap, 非堆内存就是non-heap.       按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给 自己用的,所以方法区、JVM内部处理或优化
 一、概述    ASM 的 CoreApi 中还提供了对 class 中方法的生成和解析的组件。前面两篇着重介绍了 ClassVisitor 组件的应用场景。 ClassVisitor Api 中的 visitMethod(int access, String name, String desc, String signature, String[] exceptions) 方法返回了一个 MethodVisitor 对象, MethodVisitor 类提供了对于字节码文件中方法的字节码进行解析。同

使用maven或者ant工具打包zip - 2015-07-08 18:07:23

maven zip 打包 1.pom 配置plugin : plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-assembly-plugin/artifactId version2.4/version configuration descriptors descriptorassembly.xml/descriptor /descriptors /configuration executions !-- 当执行mvn packag

java基础 - 2015-07-08 17:07:31

Java面向对象编程 一、基本成员 1.类 语法:修饰符 class 类名{ //类成员 } 类修饰符:public protected 缺省 private static abstract final *final 和 abstract不能同时修饰一个类。 final表示不能被继承,abstract表示只能用于继承. 类成员:属性,方法,构造方法,类,接口,枚举类 成员分类:类相关(使用类名直接调用)   对象相关(创建对象,才能通过对象调用) 2.封装 把类的状态信息隐藏在类内部,不允许外部程序直接调
1.使用百度地图计算 请参考: http://api.map.baidu.com/library/GeoUtils/1.2/examples/simple.html http://api.map.baidu.com/library/GeoUtils/1.2/docs/symbols/BMapLib.GeoUtils.html     2.使用java计算   import java.awt.geom.GeneralPath;import java.awt.geom.Point2D;import java.

CopyOnWriteArrayList的排序 - 2015-07-08 17:07:09

ArrayList能用Collections.sort()进行排序,但CopyOnWriteArrayList不能用Collections.sort()进行排序 原因: CopyOnWriteArrayList没有set(), 而ArrayList则支持set方法 public E set(int index,E element)   如果需要使用Collections.sort(),要么用线程不安全的ArrayList,要么如以下网址所示自己处理     Sorting a CopyOnWriteArr

线程本地存储-ThreadLocal - 2015-07-08 17:07:09

线程本地存储(线程本地变量)可以使相同变量的每个不同的线程都创建不同的存储。因此,如果有5个线程都使用同一个变量V所表示的对象,那线程本地存储就会生成5个用于V的不同的存储块,它们使得你可以将状态与线程关联起来。通过查看源码可以发现,其内部实现是通过一个叫ThrealLocalMap来做的,每个线程都有一个ThreadLocalMap,每个线程的ThreadLocalMap对象可以用来保存每个线程运行时的线程本地变量值。 【示例代码】 package test.demo.threadlocal;impor

java8新特性 - 2015-07-08 14:07:36

一、接口的默认方法 Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下: 复制代码 代码如下: interface Formula {     double calculate(int a);     default double sqrt(int a) {         return Math.sqrt(a);     } } Formula接口在拥有calculate方法之外同时还定义了sqrt方法,实现了Formula接口的子
JxADF( http://osgi.jxtech.net )是一个基于B/S的企业级快速插件开发平台,主要功能、特点如下: 基于J2EE技术。 从需求、设计到开发、实施、上线、运维提供一套完整的方法论。 移动设备、桌面设备自适应UI风格,真正做到开发一次,随处运行。 插件式开发,支持插件的热部署,可做到应用7X24小时不间断运行、维护。 表单(单表、主从表)增、删、查、改的快速开发,开发人员只需要关注业务逻辑,零JS、零CSS,大大地提升了开发效率、降低开发成本。 插件的安装、配置、启用、停用等都是一键式

第四章 数组与方法 - 2015-07-08 04:07:18

第四章 数组与方法 一、数组的定义及使用:                  ①数组:一组相关数据(变量)的集合                  ②一维数组:      数据类型 数组名 [] = null     // 声明                                                         数组名 = new 数据类型 [ 长度 ]           // 分配内存