class datatype1
{
public static void main(String args[])
{
int i1 = 1;
Integer i2 = 1;
Integer i3 = new Integer(1);
System.out.println("i1 == i2"+(i1==i2));
System.out.println("i1 == i3"+(i1==i3));
System.out.println("i2 == i3"+(i2==i3));
}
}
Run Code Online (Sandbox Code Playgroud)
产量
i1 == i2true
i1 == i3true
i2 == i3false
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么我在比较i2和i3时会出错吗?
class strb
{
static public void main(String...string)
{
StringBuilder s1 = new StringBuilder("Test");
StringBuilder s2 = new StringBuilder("Test");
System.out.println(s1);
System.out.println(s2);
System.out.println(s1==s2);
System.out.println(s1.equals(s2)); //Line 1
System.out.println(s1.toString()==s2.toString()); //Line 2
if(s1.toString()==s2.toString())System.out.println("True"); //Line 3
}
}
Run Code Online (Sandbox Code Playgroud)
输出是
Test
Test
false
false
Run Code Online (Sandbox Code Playgroud)
只需对.equals快速提问.
无论对象内容如何,.equals只有当两个对象引用指向同一个对象时才返回true?
编辑:现在我理解有关的部分,.equals但为什么第2行和第3行也没有返回true?
编辑:我相信==看看引用变量的地址,所以s1和s2不能相等.如果我的假设不对,请更正我
while (condition) {
if (condition) {
statement1;
statement2;
break;
} else {
statement3;
statement4;
}
}
Run Code Online (Sandbox Code Playgroud)
通过break在if子句中使用,我们确保循环停止并退出.
我不明白break语句如何"知道"它是否在一个循环中,它首先退出,或者它如何"知道"跳转到哪里.这是怎么发生的?
class A {
public static void main(String...args) {
Integer var = 10;
if(var instanceof Character) // Line1
System.out.println("var is a Character");
}
}
Run Code Online (Sandbox Code Playgroud)
我知道第1行不会编译,因为编译器发现它var不是Character.
我不明白的是为什么编译器会引发错误,而不是返回的false或true.
如果编译器返回false或true(instanceof即将操作视为常规的基于if的验证),那么它会更有用..它不会吗?
还是我错过了一些明显的东西?
这是我的代码块.
class Alpha{
public void Gamma() {
System.out.println("Alphas");
}
}
class Beta extends Alpha{
public void Gamma() throws Exception //Line 1
{
try {
System.out.println("Betas");
} catch(Exception e) {
System.out.println("Exception caught");
} finally {
System.out.println("xfg");
}
}
public static void main(String[] args) throws Exception {
Alpha g = new Beta();
g.Gamma();
}
}
Run Code Online (Sandbox Code Playgroud)
此代码无法编译,因为我在Line1中添加了"throws".
编译器抱怨重写的方法不能抛出异常.
为什么这样 ?.
为什么重写的方法不能抛出异常?
因为我可以通过在子类的实现中添加n行代码来覆盖基类中的方法.
这些添加的代码可以抛出异常,为什么我不能在重写方法中使用"throws"?
我被告知Activity.findViewById(int)方法是一个方便的方法,在幕后调用View.findViewById(int).
我无法找到任何文档来解释Java的便捷方法(我只能看到iOS).
PS:我在粗略的谷歌搜索期间或通过SO prev post找不到任何答案.如果已经有一个指出,那么我将关闭这个.
class For1
{
public static void main(String args[])
{
int a = 0;
for(;;)
{
break;
System.out.println(a); //Line 1
++a;//Line 2
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道第1行/第2行永远不会执行.但我仍然不明白为什么抛出编译时错误.我收到"无法访问的语句"编译错误.
这是否意味着编译器检查它是否能够编译所有分支/代码行?
class Y {
public static void main(String[] args) throws RuntimeException{//Line 1
try {
doSomething();
}
catch (RuntimeException e) {
System.out.println(e);
}
}
static void doSomething() throws RuntimeException{ //Line 2
if (Math.random() > 0.5) throw new RuntimeException(); //Line 3
throw new IOException();//Line 4
}
}
Run Code Online (Sandbox Code Playgroud)
当我抛出两种类型的异常(Line4中的IOException和Line3中的RunTimeException)时,我发现我的程序在我在第1行和第2行的throws子句中指示"IOException"之前不会编译.
而如果我反向"抛出"以指示抛出IOException,则程序会成功编译,如下所示.
class Y {
public static void main(String[] args) throws IOException {//Line1
try {
doSomething();
}
catch (RuntimeException e) {
System.out.println(e);
}
}
static void doSomething() throws IOException {//Line 2
if (Math.random() > 0.5) throw …Run Code Online (Sandbox Code Playgroud) 有人能告诉我为什么我会因为明确地将NULL值设置为数组元素而遇到编译错误?
class array_1
{
public static void main(String args[])
{
int[] a = new int[5];
a[0]=1;
a[2]='a';
a[3]=null; //Compiler complains here
for(int i : a) System.out.println(i);
}
}
Run Code Online (Sandbox Code Playgroud)
我假设因为它的int数组和允许的文字值是0而不是NULL.我对吗 ?
我在尝试了解async函数在React Native中的工作方式时有些挣扎。
在此示例中,我通过异步调用来调用sqllite db调用,并获取和的值,height并将standard这两个值作为称为的对象返回result。
如下面的控制台输出所示,值在sqllite db中存在。
从componentDidMount生命周期方法调用的方法是异步方法。
可以看出,我正在await等待实际执行(也就是从sqllite获取数据)完成。
X行始终返回未定义状态。
Y线似乎根本不执行,因为状态根本没有从初始值100和“ asasd”更改。
我已经仔细检查了代码,但不确定在这里缺少什么。
有人可以看看并让我知道吗?
App.js
import React, { Component } from 'react';
import { View, Text } from 'react-native';
import {
dropLogsTable,
createLogsTable,
getProfileHeightStandardfromDB,
getProfileHeightStandardPremade,
saveLogsRecord
} from '../src/helper';
export default class App extends Component {
state = {
logarray: [],
profileobject: {profileheight: 100, profilestandard: "asasd"},
};
componentDidMount() {
dropLogsTable();
createLogsTable();
this.fetchProfileData();
}
async fetchProfileData() {
console.log('Before …Run Code Online (Sandbox Code Playgroud) java ×9
android ×1
asynchronous ×1
compilation ×1
exception ×1
expo ×1
instanceof ×1
javascript ×1
loops ×1
react-native ×1
reactjs ×1