在JTextField中能把密码的格式设置为****吗?
可以的。解释:java中定义了JPasswordField组件的,本组件就是直接正常输入,但是输入后,会马上变成一个“*”,这个和input中的password是一样的实现道理的。举例:publicJPasswordFieldpw=newJPasswordField();
static和Volatile的区别?
变量放在主存区上,使用该变量的每个线程,都将从主存区拷贝一份到自己的工作区上进行操作。
volatile, 声明这个字段易变(可能被多个线程使用),Java内存模型负责各个线程的工作区与主存区的该字段的值保持同步,即一致性。
static, 声明这个字段是静态的(可能被多个实例共享),在主存区上该类的所有实例的该字段为同一个变量,即唯一性。
volatile, 声明变量值的一致性;static,声明变量的唯一性。
此外,volatile同步机制不同于synchronized, 前者是内存同步,后者不仅包含内存同步(一致性),且保证线程互斥(互斥性)。
static 只是声明变量在主存上的唯一性,不能保证工作区与主存区变量值的一致性;除非变量的值是不可变的,即再加上final的修饰符,否则static声明的变量,不是线程安全的。
下面摘自Java语言规范(Java Language Specification)的官方解释:
1) If a field is declared static, there exists exactly one incarnation of the field, no matter how many instances (possibly zero) of the class may eventually be created.
2) A field may be declared volatile, in which case the Java Memory Model ensures that all threads see a consistent value for the variable。
java中GUI编程部分是不是不是它的优势?
说实话,GUI框架不学也行,但是事件驱动的设计思想可以学一下。学习一下Java的事件监听机制还是有帮助的,你可以快速粗读一遍。对于布局和一些控件没必要多学,用Button和TextField实践一下Listener怎么写还是可以的。然而如果是学生的话,认真学一下也没什么坏处,如果这是你第一门语言的话。毕竟现在用不上,将来再学别的也是事半功倍,如果是急着就业的话,我就不多说什么了。
怎么实现java敏感数据脱敏?
反射只能获取到字段。局部变量是无能为力的。所以如果将a/b设置为字段,那么就可以。为了防止字段被污染,可以使用private字段。class Foo{private static String a;private static String b;public static void main(String[] args){String c="a"
;Field f=Foo.class.getDeclaredField(c)
;f.setAccessible(true)
; // 在别的类中调用必须加,这里可以不加String res=(String)f.get(null);}}