我有一个数组,我正在寻找重复.
duplicates = false;
for(j = 0; j < zipcodeList.length; j++){
for(k = 0; k < zipcodeList.length; k++){
if (zipcodeList[k] == zipcodeList[j]){
duplicates = true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当没有重复时,此代码不起作用.为什么?
使用AudioTrack进行播放时,我有时需要重新采样不符合AudioTrack支持的采样率的音频.在这样做时,我需要在当前音频配置下确定当前设备下AudioTrack支持的最大采样率.
由于AudioTrack的允许采样率很难记录,我决定窥探源代码AudioTrack并发现这个惊人的界限:
private static final int SAMPLE_RATE_HZ_MAX = 96000;
Run Code Online (Sandbox Code Playgroud)
AudioTrack无论设备的实际播放能力如何,实例似乎都在应用96 KHz的硬限制.
更令人困惑的是在AudioFormat类中,我将其传递给AudioTrack包含以下行的构造函数(API 21):
if ((sampleRate <= 0) || (sampleRate > 192000)) {
Run Code Online (Sandbox Code Playgroud)
在它的setSampleRate()方法.现在这是192 KHz的硬限制.所以,传递> 192千赫到的AudioFormat(或它的助洗剂)将导致IllegalArgumentException从AudioFormat与传递一个配置192千赫<X <96 kHz采样率的AudioFormat成AudioTrack也将引发IllegalArgumentException.
到目前为止,我发现最令人困惑的是getNativeOutputSampleRate()AudioTrack中的方法实际上确实返回了正确的输出采样率(好吧,鉴于它直接从本机层运行,但不那么令人惊讶).
并且最重要的是,该方法setPlaybackRate()声称:
有效采样率范围是1 Hz到getNativeOutputSampleRate(int)返回值的两倍.
事实上,我确实尝试过,它有效吗?请考虑以下代码段:
int nativeRate = AudioTrack.getNativeOutputSampleRate(AudioManager.STREAM_MUSIC);
android.util.Log.i("UI", "Native stream rate: " + nativeRate + " Hz");
// Build audio attributes
AudioAttributes.Builder attribBuilder = new AudioAttributes.Builder();
attribBuilder.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC);
attribBuilder.setUsage(AudioAttributes.USAGE_MEDIA); …Run Code Online (Sandbox Code Playgroud) 我正在使用新的Notification.MediaStyle类为FTP流媒体音乐播放器应用程序实现Lollipop风格的通知.我将专辑封面设为我的"大图标".
鉴于专辑封面直接取自当前正在播放的文件,此专辑封面的大小取决于来源(可能高达5000x5000).
从我的棒棒糖前代码中,我在以下定义的最大大小下解码位图:
android.R.dimen.notification_large_icon_width
和
android.R.dimen.notification_large_icon_height
这适用于解码时间更快,内存使用是理想的.
但是,当此代码应用于我的MediaStyle样式时,展开的视图使用比尺寸参数定义的图标大得多的图标,从而在展开时产生模糊的专辑封面.
是否有一些常量来定义MediaStyle大图标的展开视图的最大大小?或者这个问题有一些解决方法吗?就目前而言,以全分辨率解码艺术是不可接受的,因为它可能导致应用程序因OOM而崩溃.
在为控制台应用程序构建包装器时,我遇到了这个奇怪的问题,其中连接到外部进程的输出(stdout)的输入流完全空白,直到外部进程退出.
我的代码如下:
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
public class Example{
public static void main(String args[]) throws IOException{
File executable = ...
ProcessBuilder pb = new ProcessBuilder(executable.getCanonicalPath());
pb.redirectErrorStream(true);
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream(), Charset.forName("UTF-8")));
String line;
while((line = br.readLine()) != null){
System.out.println(line);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几种从输入流中读取的变体,并且都导致了相同的行为.
我试过了:
CharBuffer charBuf = CharBuffer.allocate(1000);
InputStreamReader isr = new InputStreamReader(p.getInputStream(), Charset.forName("UTF-8"));
while(isr.read(charBuf) != -1){
System.out.print(charBuf.flip().toString());
}
Run Code Online (Sandbox Code Playgroud)
和
byte[] buf = new byte[1000];
int r;
while((r = p.getInputStream().read(buf)) …Run Code Online (Sandbox Code Playgroud) 我试图val在下面的代码中为变量赋值:
var cmdValue = "/cmd/fetch?x=";
var val;
var returned_data;
function what(){
val = update('#TAG#');
}
function update(tag) {
var req1 = newXMLHttpRequest();
req1.open("GET",cmdValue + tag, true);
req1.send("");
return req1.onreadystatechange= function () {
if (req1.readyState == 4 && req1.status == 200) {
returned_data = req1.responseText;
return returned_data;
}else{
}
};
}
Run Code Online (Sandbox Code Playgroud)
我正在跟踪Firebug中的变量,事实证明它val被分配了函数.有没有办法让代码运行,然后将值赋给变量val?
对于特定的线程安全数据结构,我需要保护对中央数据结构(即字节数组)的访问.在这种情况下,我选择使用ReentrantLocks,因为它的公平性政策以及创建多个条件的高级功能.
并发的条件很复杂,如下所示:
在我最初的实现中,我选择实现两个嵌套锁,如下所示:
ReentrantLock lockFoo = new ReentrantLock(true);
ReentrantLock lockCentral = new ReentrantLock(true);
Condition centralCondition = lockCentral.newCondition();
public void foo(){
// thread-safe processing code here
lockFoo.lock();
lockCentral.lock();
try{
// accessing code here
try{
// waits upon some condition for access
while(someCondition){
centralCondition.await();
}
}catch(InterruptedException ex){
// handling code here
}
// more processing
}finally{
lockCentral.unlock();
lockFoo.unlock();
}
}
Run Code Online (Sandbox Code Playgroud)
结构在方法上是等效的bar,只需用另一个锁对象lockBar.此外,代码减少了我更复杂的多条件等待,并为简单起见信号到单一条件.
使用这个,我不禁感到代码看起来不必要地复杂和模糊不仅因为有两个嵌套的锁,它们共享一个try-finally,更不用说如何在整个过程中lockCentral释放和重新获取多次lockFoo.
相反,我试图重新组织外锁(lockFoo和lockBar)作为一个条件lockCentral,如下所示:
ReentrantLock lockCentral …Run Code Online (Sandbox Code Playgroud) Java 套接字编程InputStream.available()什么时候有用?BufferedInputStream.available()
我有一个简单的登录系统保护机制,通过将用户的 IP、失败的尝试次数和上次尝试时间记录到名为bannedusers. 但是,当我尝试使用下面的代码将新条目插入数据库时,execute() 函数返回 false 并且无法执行。
代码如下:
private $con;
function updateTable($IP, $attempt, $exists){
$time = time();
//The following statement is actually in the constructor, moved here for completeness
$this->con = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME); //All these constants are predefined and verified to be correct.
if($this->con->connect_error){
return true; //If there is a connection error, just let the user log in... We'll deal with this later
}
//Another function already determines if the entry exists or not.
if(!$exists){
//ip, …Run Code Online (Sandbox Code Playgroud) 到目前为止,我已经设法在充气城堡的轻量级API中生成ECDHE对.但是,我尝试从byte []重新创建公钥时遇到问题.
由于ECPublicKeyParameters对象只有一个方法getQ(),我假设重建密钥所需的全部内容.其他参数如使用的曲线(P-521)保持不变.
我正在做以下事情:
AsymmetricCipherKeyPair kp = kpgen.generateKeyPair(); //ECDHE Key Generator
ECPublicKeyParameters pubKey = (ECPublicKeyParameters)kp.getPublic();
byte[] aPubKeybytes = pubKey.getQ().getEncoded(false); //Should I set to true or false?
Run Code Online (Sandbox Code Playgroud)
除非有另一种方法来获取公钥pubKey的原始字节,否则我没有看到在不调用返回ECPoint对象的方法getQ()的情况下获取字节的方法.
我的问题是如何使用bouncy castle的轻量级API将byte []重建为ECPoint对象.或者,更好的是,如何使用从原始pubKey对象派生的字节数组重建整个ECPublicKeyParameter对象.
java bouncycastle elliptic-curve public-key-encryption diffie-hellman
我想使用下面的代码获取新数据并将其更新到我的 listView 中,我想要的是当我滚动到 listView 底部时,它会自动更新并将新数据添加到列表中。
例如:像facebook一样,只在底部添加新数据而不滚动并保持当前位置
但我最终遇到了一些问题。哪个是
1) 列表视图已更新,但它滚动回顶部。
listview .setOnScrollListener(new OnScrollListener() {
private int currentVisibleItemCount;
private int currentScrollState;
private int currentFirstVisibleItem;
private int totalItem;
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
this.currentScrollState = scrollState;
this.isScrollCompleted();
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
this.currentFirstVisibleItem = firstVisibleItem;
this.currentVisibleItemCount = visibleItemCount;
this.totalItem = totalItemCount;
}
private void isScrollCompleted() {
if (totalItem - currentFirstVisibleItem == currentVisibleItemCount
&& this.currentScrollState == SCROLL_STATE_IDLE) {
Log.d("this is", "the end");
page …Run Code Online (Sandbox Code Playgroud) 我已经在JScrollPane中放置了一个JPanel对象,并且滚动按预期工作.通过覆盖paintComponent(),我试图在JPanel对象中进行自定义绘制.但是,当JPanel对象放在JScrollPane中时,JPanel不再正确绘制(而只显示其背景颜色).
因为我的应用程序要求不断更新JPanel,所以构造一个单独的线程以特定间隔重新绘制JPanel.
以下代码摘录显示了我当前的项目:
a)来自我的JPanel的paintComponent()(此方法已被裁减为仅绘画,实际绘制将是从另一个线程而不是这个大粉红色静态框提供的不断更新的BufferedImage):
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
//Render Frame
// 'RXDisplayCanvas' is the JPanel.
Graphics2D G2D = (Graphics2D)RXDisplayCanvas.getGraphics();
G2D.setColor(Color.PINK);
//800 and 600 are arbitrary values for this example, real values are calculated at runtime. The value calculation code is verified to work (as its used elsewhere in a similar scenario)
G2D.fillRect(0, 0, 800, 600);
G2D.dispose();
}
Run Code Online (Sandbox Code Playgroud)
b)定期重新绘制帧的'updater'线程:
@Override
public void run() {
long MaxFrameTime;
long Time;
while(isVisible()){
// 'FPSLimit' is a integer value (default to 30)
MaxFrameTime …Run Code Online (Sandbox Code Playgroud) 基于minIndex,我设置了不同的视图可见性.我认为它可以被重构为简单的方式.
switch (minIndex) {
case 0:
viewOne.setVisibility(View.VISIBLE);
break;
case 1:
viewTwo.setVisibility(View.VISIBLE);
break;
case 2:
viewThree.setVisibility(View.VISIBLE);
break;
case 3:
viewFour.setVisibility(View.VISIBLE);
break;
case 4:
viewFive.setVisibility(View.VISIBLE);
break;
case 5:
viewSix.setVisibility(View.VISIBLE);
break;
}
Run Code Online (Sandbox Code Playgroud)
如何将此代码重构为更易读的代码?
作为开发人员进行Web开发,我想知道是否J2EE或PHP更好地构建网站.
我最初的想法是J2EE更好,因为它是Java基于的,但在阅读了几篇文章后,我读到PHP可能更容易,更专注于Web开发.
在这个主题上,我有另一个问题,在查看关于网页设计和构造的不同文章时,我遇到了声称用J2EE,Java和Ruby构建的网站.J2EE与Java相同吗?或者是完全不同的东西.
java ×9
android ×3
php ×2
ajax ×1
arrays ×1
audiotrack ×1
bouncycastle ×1
concurrency ×1
inputstream ×1
java-ee ×1
javascript ×1
jpanel ×1
jquery ×1
jscrollpane ×1
locking ×1
mysql ×1
mysqli ×1
refactoring ×1
sample-rate ×1
sockets ×1
sql ×1
swing ×1