我尝试使用在线工具,例如google / qr_codes和
goQR.me,但都没有“ 字母数字字符 ”选项,只有完整的二进制(UTF8或ISO)字符集。我只需要一点字母数字(AZ,0-9,-,/等),因此可以用Version-1(21行)QR码符号表示“ http://bit.ly/1234
”(带的字符串length=18
)之类的字符串。
我还尝试安装(Linux,PHP,Python等)工具...而且,令我惊讶的是,没有“字母数字”选项!(仅间接地是“ binary”选项)。
例子:
良好:https : //chart.googleapis.com/chart? chs = 250x250 & cht = qr & chl =http : //bit.ly/12&chld=L|1生成带有版本1 QR 的符号“ http://bit.ly/12
”(带的字符串length=16
) -码。好!指南说“ ...最多可以编码25个字母数字字符”,因此16 <25,然后是版本1。
1.1 错误:https://chart.googleapis.com/chart?chs = 250x250&cht = qr&chl = http://bit.ly/12&chld=M | 1 (将L更改为M),生成版本2(25行)符号。
1.2 错误:https://chart.googleapis.com/chart?chs = 250x250&cht = qr&chl = http://bit.ly/1234&chld=L | 1 (将长度从16更改为18),生成版本2(25行)符号。
尝试对其进行编程...很糟糕...请参阅http://phpqrcode.sourceforge.net/,即使在编程时,也无法选择真正的“字母数字”选项!无版本1的符号可以生成(!),用这种工具。
我有像Person这样的自定义类:
public class Person {
int age;
String name;
}
Run Code Online (Sandbox Code Playgroud)
现在我想Person
基于类对对象进行排序age
.
所以我将使用Comparable
接口和实现compareTo()
方法.
而且compareTo
会有基于刚才比较人物对象的逻辑age
.
所以,如果我这样做:
Collections.sort(list); // where list is a list of person
Run Code Online (Sandbox Code Playgroud)
我会基于的获得排序人名单age
.
但我在某处读到,我们equals()
在Comparable
执行时也需要覆盖方法.
但我现在还没有看到它的使用.
任何人都可以解释一下,equals()
如果我想sort
基于age
什么,还需要覆盖方法?
我试图打印出一个数字的所有主要因素.我的代码如下:
public static boolean isPrime(long n){
long i = n;
while (i > 0){
if (n % i == 0 && !(i == 1 || i == n)){
return false;
}
i--;
}
return true;
}
public static void primeFactors(long n){
long i = n;
while (i > 0){
if (isPrime(i)){
System.out.println(i);
}
i--;
}
}
Run Code Online (Sandbox Code Playgroud)
此代码适用于小数字:5,5000,例如,当我向方法输入600851475143时,我的程序运行,没有输出任何内容.为什么会这样?
我有一个文本文件,其中包含我的计算机上保存的内容abcdefgh.我想使用FileInputStream来显示控制台上的字符,同时还要测量执行此操作所需的时间.它看起来像这样:
public class Readtime {
public static void main(String args[]) throws Exception{
FileInputStream in=new FileInputStream("bolbol.txt");
while(in.read()!=-1){
long startTime = System.nanoTime();
int x = in.read();
long endtime = System.nanoTime();
System.out.println(endtime-startTime);
System.out.println((char)x);
}
in.close();
}
}
Run Code Online (Sandbox Code Playgroud)
我在控制台上得到的是以下内容:
8863
b
7464
d
6998
f
6997
h
Run Code Online (Sandbox Code Playgroud)
其余的字母现在在哪里?就好像只进行了4次读操作一样.我的想法是朝着字符大小的方向前进,一次read()
只能读取一个字节,但我没有到达任何地方.
请参阅此https://en.wikipedia.org/wiki/Double-checked_locking,我们有:
// "Double-Checked Locking" idiom
class Foo {
private Helper helper;
public Helper getHelper() {
if (helper == null) {
synchronized(this) {
if (helper == null) {
helper = new Helper();
}
}
}
return helper;
}
// other functions and members...
}
Run Code Online (Sandbox Code Playgroud)
第二次测试的目的是什么?2个线程是否真的可以同时访问同一个关键部分?
我有一个物品清单。用户可以通过点击来选择一个项目。我想使用 CSS 更改所选项目的颜色。假设用户点击了 item1,那么 item1 会变成红色。现在,如果用户单击 item 2,则 item2 将变为红色。我的 HTML 代码:
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我正在使用与PHPCI的Continuous Intergration并且使用多个分支.目前,我们很高兴使用master分支来提交(并直接构建)所有更改.
当另一个程序员推送一些东西,我必须提交我的东西时,通常会发生以下情况:
git commit -a -m 'fixed some stuff'
git pull origin master # -- this creates a merge, even when there's no conflicts
git push origin master
Run Code Online (Sandbox Code Playgroud)
然后,这将创建2个新提交.其中一个是完全没用的,因为它简单地重述了其他开发人员已经做过的事情!这会减慢CI并且非常烦人.我很好,如果有一个冲突提交(虽然没有真正的理由单独构建它),但我认为必须有一种解决这些空合并的方法..文件实际上没有改变,除了新的东西,承诺.
任何人都知道是否有另一种合并方式不会创建合并提交?
我正在尝试迭代日期而没有成功,因为发生了一个inifite循环,它不会停止在数据库中创建记录.为什么?
我有以下方法,将一个日期作为参数传递,然后返回更新.
public static Date addDays(Date date, int days) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, days);
return cal.getTime();
}
Run Code Online (Sandbox Code Playgroud)
然后我以这种方式在for循环中使用它......
for (Date initDate = fromDate; initDate.before(toDate); addDays(initDate, 1)) {
// Do something...
}
Run Code Online (Sandbox Code Playgroud)
fromDate和toDate是以这种方式解析为sql.Date的JTextField的值.
private java.sql.Date fechaParser(String f) {
SimpleDateFormat formatDate = new SimpleDateFormat("dd/MM/yyyy");
Date date;
try {
date = formatDate.parse(f);
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
return sqlDate;
} catch (ParseException e) {
JOptionPane.showMessageDialog(null, "Wrong date format.");
e.printStackTrace();
}
return null;
}
Run Code Online (Sandbox Code Playgroud) 一旦其中一个变量达到所需数量,我希望它停止.为什么这段代码要等到两个变量等于20或更大才结束?
z = 20
x = 1
y = 0
while x < z or y < z:
inp = int(input('enter a number'))
if x > y:
y += inp
elif y > x:
x += inp
print(x, y)
Run Code Online (Sandbox Code Playgroud)
或使用类似这些例子的东西只是不断添加,永不停止:
while x != z or y != z:
while x or y < z:
while x or y != z:
Run Code Online (Sandbox Code Playgroud) 似乎有符号数字的补码表示现在是最流行的(并且可能是现代硬件中使用的唯一表示)。为什么它比其他人更好?