是否有一个免费的包,用于在Java中读取,操作和编写ASN.1?
肯定是:
当我学习Java从一些20年的基础,帕斯卡,COBOL和C的过程式编程的背景来了,我当时认为它是最难的事情是包裹我的头周围的OOP术语和概念的时间.现在我带大约8年的稳固的Java,我得出的结论是,关于Java编程和类似的语言,如C#单最难的事情是多线程/并发方面.
编写可靠且可扩展的多线程应用程序非常困难!随着处理器变得"更宽"而不是更快的趋势,它正在迅速变得非常关键.
当然,最困难的领域是控制线程之间的交互以及由此产生的错误:死锁,竞争条件,陈旧数据和延迟.
所以我的问题是:您采用什么方法或方法来生成安全的并发代码,同时减少死锁,延迟和其他问题的可能性?我提出了一种有点非传统的方法,但在几个大型应用程序中工作得非常好,我将在这个问题的详细答案中分享.
我有一些通用代码,我无法弄清楚如何合法地阻止警告; 我目前正在使用@SuppressWarnings("unchecked"),因为似乎在没有警告的情况下无法完成转换泛型类型.
我怎样才能摆脱注释?
我有的是:
public MyObject(SharedContext<Object> ctx) {
super(ctx); // set protected field 'context'
...
context.set("Input Fields" ,Collections.synchronizedMap(new TreeMap<String,Pair<String,Boolean>>(String.CASE_INSENSITIVE_ORDER)));
context.set("Output Fields" ,Collections.synchronizedMap(new TreeMap<String,String> (String.CASE_INSENSITIVE_ORDER)));
context.set("Event Registry",new EventRegistry(log) );
}
@SuppressWarnings("unchecked")
protected void startup() {
inputFields =(Map<String,Pair<String,Boolean>>)context.get("Input Fields" ,null);
outputFields =(Map<String,String> )context.get("Output Fields" ,null);
eventRegistry =(EventRegistry )context.get("Event Registry",null);
...
}
Run Code Online (Sandbox Code Playgroud)
受保护的变量上下文是类型SharedContext<Object>.
如果没有注释,编译器会发出警告:
...\MyClass.java:94: warning: [unchecked] unchecked cast
found : java.lang.Object
required: java.util.Map<java.lang.String,com.mycompany.Pair<java.lang.String,java.lang.Boolean>>
inputFields =(Map<String,Pair<String,Boolean>>)context.get("Input Fields" ,null);
^
...\MyClass.java:95: warning: [unchecked] unchecked cast
found : java.lang.Object
required: java.util.Map<java.lang.String,java.lang.String>
outputFields =(Map<String,String> …Run Code Online (Sandbox Code Playgroud) 我希望能够在JFrame上使用Java的paint()进行绘制.当我点击的JFrame(任何地方现在)我想的JFrame与点击的坐标重新绘制-类似这样的Java小程序http://www.realapplets.com/tutorial/MouseClickExample.html
正在工作:
不工作:
这是我的代码 - 请尽可能严格 - 我希望改进我的Java编程技术(如果你有时间)指出我可以改进的每个方面.
任何帮助将非常感谢.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class AreaForText extends JPanel implements MouseListener {
int xpos;
int ypos;
JFrame myJFrame = new JFrame();
public void setJFrame() {
myJFrame.setSize(300, 150);
myJFrame.setTitle("Bigger Text!");
myJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myJFrame.setVisible(true);
myJFrame.getContentPane().add(new AreaForText());
myJFrame.addMouseListener(new AreaForText());
}
public void mouseClicked(MouseEvent me) {
//Save the coordinates of the click lke this.
xpos = MouseInfo.getPointerInfo().getLocation().x;
ypos = MouseInfo.getPointerInfo().getLocation().y;
System.out.print("Click" + " x: " + xpos + " y: " + …Run Code Online (Sandbox Code Playgroud) 我正在使用旧的IBM iSeries(IBM-i,i5OS,AS/400等),在O/S版本V5R3M0上使用Java 5 JVM(Classic,而不是ITJ J9).
简而言之,这是一个场景:
这一切都按预期工作.
但是,当我运行JVM时,正确配置指向商店并提供密码(我过去使用在Portecle中创建的自签名证书进行测试),并尝试在443上启动我的Web服务器,我收到以下安全异常:
java.security.KeyStoreException: Cannot store non-PrivateKeys
Run Code Online (Sandbox Code Playgroud)
谁能告诉我哪里出错了,或者我接下来要检查什么?
我想在HTML表单上创建一个表单提交按钮,该表单的文本与将提交给主机的关键字的文本不同.所以我用过
<button type="submit" name="SubmitAction" value="Done" accesskey="D"><u>D</u>one for Now</button>
Run Code Online (Sandbox Code Playgroud)
但W3Schools警告说:
注意:如果您
<button>在HTML表单中使用该元素,则不同的浏览器可能会提交不同的值.用于<input>在HTML表单中创建按钮.
有没有办法使用按钮上<input>显示的文本与提交给主机的值不同来创建按钮?
不同浏览器发送的变体有哪些<button>?
注意:我不需要支持任何旧版本的IE 9,并且实际上将使用当前版本的Chrome和FireFox.
是否存在免费的通用ASN.1解码/转储/检查程序?我有一个可疑的ASN.1块可能解密失败了,我想检查它看它看起来有效,如果有的话它包含什么元素.
我一直在尝试增强我用Java编写的GUI系统以使用子像素抗锯齿并且已经成功,除了一个剩余的异常.这是我昨天提出的另一个问题.
剩下的问题是将设置渲染提示KEY_ANTIALIASING设置为VALUE_ANTIALIAS_ON会导致KEY_TEXT_ANTIALIASING在设置为LCD(子像素)AA值时被忽略.任何人都可以对此有所了解吗?目前我在渲染文本之前被迫使用VALUE_ANTIALIAS_OFF,并在渲染文本后将其重新打开(以便其他绘画,如圆圈等,是AA'd).
下面的独立测试程序证明了这个问题.正如您所看到的,如果您运行它,当字体不是时,圆圈会涂上AA,反之亦然.将AA预配置为所有绘画工作会很好.
import java.awt.*;
import java.awt.event.*;
public class AwtTestFrame1c extends Panel {
AwtTestFrame1c() {
setBackground(SystemColor.control);
}
public void paint(Graphics gc) {
Graphics2D g2d = (Graphics2D)gc;
int py=0;
py=paintText(g2d,py,RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB,true );
py=paintText(g2d,py,RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB,false);
}
private int paintText(Graphics2D dgc, int py, Object val, boolean aa) {
char[] txt=("The quick brown fox jumped over the lazy dog ("+val+", General AA: "+aa+")").toCharArray();
if(aa ) { dgc.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON ); }
else { dgc.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF); }
if(val !=null) { dgc.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,val); }
dgc.setFont(font);
dgc.drawOval(5,py+5,15,15);
dgc.drawChars(txt,0,txt.length,30,py+line-5);
return (py+line); …Run Code Online (Sandbox Code Playgroud) 我希望在每个单元格之间有一个填充表,但不是在外边缘单元格周围,也就是说,不在表格本身周围.
使用:
border-collapse : separate;
border-spacing : 0.5em;
Run Code Online (Sandbox Code Playgroud)
给我填充到处,同时使用:
border-collapse : collapse;
Run Code Online (Sandbox Code Playgroud)
在任何地方都没有填充.
尝试另一种方法,我可以得到填充单独之间的细胞水平使用td + td选择器.但是我不能使用tr + tr选择器,因为它似乎tr忽略了边距,填充和边界规则.
当然,普通td选择器上的填充适用于所有单元格,甚至是外部单元格的外边缘.
这只适用于当代浏览器 - 对我来说没有IE 6或7非常感谢你.而且我不会在IE 8上失去任何睡眠,尽管如果有效的话会很好.
我使用以下内容来计算文件中模式的出现次数:
my @lines = grep /$text/, <$fp>;
print ($#lines + 1);
Run Code Online (Sandbox Code Playgroud)
但有时它打印的比实际值多一个.我检查过它是因为最后一个元素@lines是null,这也是计算的.
有时候grep结果的最后一个元素是空的吗?此外,如何解决此问题?
java ×5
asn.1 ×2
html ×2
antialiasing ×1
arrays ×1
awt ×1
concurrency ×1
cryptography ×1
css-tables ×1
fonts ×1
form-submit ×1
generics ×1
grep ×1
html5 ×1
ibm-midrange ×1
javascript ×1
jframe ×1
multicore ×1
packages ×1
padding ×1
perl ×1
rendering ×1
repaint ×1
spacing ×1
ssl ×1
utility ×1
validation ×1
warnings ×1