char*str="hello";
Run Code Online (Sandbox Code Playgroud)
在这种情况下,字符串文字存储在只读存储器中.
char str[10]="name";
Run Code Online (Sandbox Code Playgroud)
在这种情况下,字符串文字存储在可写存储器中.
为什么分配的内存与两个字符串文字有区别?
代码1:
struct demo
{
int a;
}d[2];
int main()
{
d[0].a=5;
d[1]=d[0];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这段代码工作正常
代码2:
struct demo
{
int a;
}d[2];
int main()
{
d[0].a=5;
d[1]=d[0];
if(d[0]==d[1])
{
printf("hello");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
此代码给出错误
error: invalid operands to binary == (have 'struct demo' and 'struct demo')
Run Code Online (Sandbox Code Playgroud)
为什么在Code 2中出现此错误?
int main()
{
srand(time(NULL));
int r=rand();
}
Run Code Online (Sandbox Code Playgroud)
上面的函数可以生成任何数字,但如果我想从给定的一组值生成一个数字,该怎么办呢?
例如,如果我想从值中随机生成一个数字4,6,1,7,8,3.
有没有办法实现这个目标?
任何帮助,将不胜感激.
class Demo
{
void demo()
{
System.out.println("Inside demo of "+Thread.currentThread().getName());
try
{
Thread.sleep(1000000);
}
catch(InterruptedException exc)
{
System.out.println(Thread.currentThread().getName()+" interrupted");
}
}
}
class MyThread1 implements Runnable
{
Thread thread;
Demo d;
MyThread1(String name, Demo ob)
{
d = ob;
thread = new Thread(this, name);
thread.start();
}
@Override
public void run()
{
System.out.println(thread.getName()+" starting");
synchronized(d)
{
d.demo();
}
System.out.println(thread.getName()+" ending");
}
}
class MyThread2 implements Runnable
{
Thread thread;
Demo d;
MyThread2(String name, Demo ob)
{
d = ob;
thread = …Run Code Online (Sandbox Code Playgroud) import java.util.*;
class TreeMapDemo
{
public static void main(String args[])
{
Comparator <String> c1 = (str1, str2) -> 0;
Comparator <String> c2 = (str1, str2) -> 1;
TreeMap <String, Double> tm1 = new TreeMap(c1.thenComparing(c2));
//Working fine
TreeMap <String, Double> tm2 = new TreeMap(((str1, str2) -> 0).thenComparing((str1, str2) -> 1));
//Error: Lambda expression not expected here
//<none> can not be dereferenced
}
}
Run Code Online (Sandbox Code Playgroud)
我的查询是:
如果
c1 = (str1, str2) -> 0而且c2 = (str1, str2) -> 1,
那么为什么
c1.thenComparing(c2) …
我无法识别以下Java中的字符串声明的区别.
假设我有两个字符串
String str1="one";
String str2="two";
Run Code Online (Sandbox Code Playgroud)
有什么区别
String str3=new String(str1+str2);
Run Code Online (Sandbox Code Playgroud)
和
String str3=str1+str2;
Run Code Online (Sandbox Code Playgroud)
在上述两个声明中,内容都str3将是onetwo.
假设我创建了一个新字符串
String str4="onetwo";
Run Code Online (Sandbox Code Playgroud)
然后,在上述声明中,
if(str4==str3) {
System.out.println("This is not executed");
}
Run Code Online (Sandbox Code Playgroud)
为什么str3而str4不是指同一个对象?
c ×3
java ×3
string ×2
arrays ×1
char ×1
declaration ×1
dereference ×1
dot-operator ×1
equality ×1
java-8 ×1
lambda ×1
memory ×1
pointers ×1
random ×1
srand ×1
struct ×1
synchronized ×1