Java入门基础教程

By David 课程任务:16 个 学习人数: 268

将Java的入门基础知识贯穿在一个实例中,逐步深入,帮助你快速进入Java编程的世界!更加体系化地学习Java开发请参考Java Web实战课程,可参考天码营学员的成长和作品。为了巩固Java编程基础,你也可以尝试Java贪吃蛇游戏的编程练习。

超级名师

导师来自北京大学计算机专业的老师和业界一流的工程师,帮助你快速成长

求职必备

导师们最大的烦恼就是每天各路公司求他们推荐程序员,帮帮他们吧,快到碗里来

实战导向

图文、代码与视频有机结合的实战课程内容,打造真实的项目,最佳实践一网打尽

专业工具

随时随地学习在线学习,记录完整的学习过程与轨迹,沉淀终生受益的代码和内容

课程内容

  • Java语言的基础语法
  • 面向对象的基本概念
  • 开始上手Java编程的关键要素
  • Java常用API的使用

进阶内容

进阶Java教程请见:

David

北大教师,曾创办OSGi中文社区和软件开发协工具onboard

Ricky

天码营技术总监,全栈程序员, DevOps,超级工具控

Harttle

北大物理系出身的Linux极客,追求极致简单,武术发烧友

Cliff

传说中的快刀手,北大计算机应用与设计协会前理事长

Michael

Google工程师,北大信息科学技术学院本硕

Bob

Facebook工程师,北大信息科学技术学院本硕

Hash

北大数字艺术专业毕业,十年设计经历,极限运动爱好者

Li

任职于Twitter、Airbnb,德州扑克世界赌王大赛冠军

登录发表评论 登录 注册

daidai
daidai 于 2 天前
cser
cser 于 8 天前

因为你没有使用Post

Clipboard Image.png为什么没有出现?

import com.tianmaying.domain.Post;

我的代码:

@vking6

vking6
vking6 于 8 天前

Clipboard Image.png为什么没有出现?

import com.tianmaying.domain.Post;

我的代码:

cser
cser 于 10 天前

这里的参考代码就是你作业的起点~

老师参考代码里怎么只有和作业一样的模板而没有具体实现的代码呢?

@lizhengze7

lizhengze7
lizhengze7 于 10 天前

老师参考代码里怎么只有和作业一样的模板而没有具体实现的代码呢?

Toder
Toder 于 10 天前

是的。只有在引起歧义的情况下,this是必须的。比如有局部变量也命名为id的话,为了引用对象的成员变量,就必须使用this.id

请问这里的"id"与"this.id"是同一个变量么?

@lizhengze7

lizhengze7
lizhengze7 于 10 天前

请问这里的"id"与"this.id"是同一个变量么?

Toder
Toder 于 11 天前

应该是你的main方法签名不正确。

“Could not find or load main class HelloWorld.”是什么错误?

@Curious

Curious
Curious 于 11 天前

“Could not find or load main class HelloWorld.”是什么错误?

Cecilia
Cecilia 于 15 天前

谢谢啦

;%JAVA_HOME%\bin

请问一下win7环境变量是加;%JAVA_HOME%\bin

还是JAVA_HOME%\bin?

还有我想问一下作业是直接在网页上做吗?

这节课的作业是要输出“你好,天码营”吗?菜鸟没有搞懂作业让做啥 也不知道在哪写代码 

@Cecilia

@cser

cser
cser 于 15 天前

;%JAVA_HOME%\bin

请问一下win7环境变量是加;%JAVA_HOME%\bin

还是JAVA_HOME%\bin?

还有我想问一下作业是直接在网页上做吗?

这节课的作业是要输出“你好,天码营”吗?菜鸟没有搞懂作业让做啥 也不知道在哪写代码 

@Cecilia

Cecilia
Cecilia 于 15 天前

请问一下win7环境变量是加;%JAVA_HOME%\bin

还是JAVA_HOME%\bin?

Cecilia
Cecilia 于 15 天前

请问一下win7环境变量是加;%JAVA_HOME%\bin

还是JAVA_HOME%\bin?

还有我想问一下作业是直接在网页上做吗?

这节课的作业是要输出“你好,天码营”吗?菜鸟没有搞懂作业让做啥 也不知道在哪写代码 

shenruoshi
shenruoshi 于 15 天前

本节课作业怎么完成啊?

snails_wang
snails_wang 于 1 个月前

super写错了

likejian1993
likejian1993 于 1 个月前

hello world

shenruoshi
shenruoshi 于 1 个月前

还是完成不了?

123456
123456 于 1 个月前

作业里面第二问,我按照你们的预设不会写,但是改了一下也通过了,我想知道,你们预设想我怎么写?  

public boolean operation(int a, int b) {

        boolean fals;

     fals=((a&b)>(a|b))?true:false

        return fals;

    }

@foxppt

shenruoshi
shenruoshi 于 1 个月前

本课作业大家都是怎么完成的?

mynameisk1
mynameisk1 于 1 个月前

应该是没有new初始化内存地址,new了后的地址是不一样的,没有new之前处于同一个内存地址。

str1==str2 比较的应该是对像的引用地址,肯定是不同的,

str1.equals(str2)  是比较字符内容.

老师看一下我这个代码,为什么两次结果会不一样

class Demo_string {

public static void main(String[] args) {

String str1 = "abc";

String str2 = "abc";

System.out.println(str1 == str2);

System.out.println(str1.equals(str2));

System.out.println("----------------------");

String str3 = new String("abc");

String str4 = new String("abc");

System.out.println(str3 == str4);

System.out.println(str3.equals(str4));

}

}

Clipboard Image.png

@powersn

vailydia
vailydia 于 1 个月前

请问大家本课程的实战任务中的答案可以在哪里看到?谢谢!

foxppt
foxppt 于 1 个月前

作业里面第二问,我按照你们的预设不会写,但是改了一下也通过了,我想知道,你们预设想我怎么写?  

public boolean operation(int a, int b) {

        boolean fals;

     fals=((a&b)>(a|b))?true:false

        return fals;

    }

Toder
Toder 于 1 个月前

恩?smirk

kongbai
kongbai 于 1 个月前

有人么

cser
cser 于 1 个月前

从1加到100的和

int i = 1;
int sum = 0;
while (i <= 100) {
    sum += i;
    i++;
}谁能分析一下这个过程

@JuanJuan_0324

JuanJuan_0324
JuanJuan_0324 于 1 个月前
int i = 1;
int sum = 0;
while (i <= 100) {
    sum += i;
    i++;
}谁能分析一下这个过程

ZXJSWIFT
ZXJSWIFT 于 1 个月前

嗯嗯好的,理解了,O(∩_∩)O谢谢

定义一个变量的标准写法:Post是类型,post是这个类型的变量(对象实例),你也可以命名为任意合法的标识符,比如post2

请问第一个大写的Post和后面小写的post的区别是什么呀

@ZXJSWIFT

@cser

cser
cser 于 1 个月前

定义一个变量的标准写法:Post是类型,post是这个类型的变量(对象实例),你也可以命名为任意合法的标识符,比如post2

请问第一个大写的Post和后面小写的post的区别是什么呀

@ZXJSWIFT

ZXJSWIFT
ZXJSWIFT 于 1 个月前

请问第一个大写的Post和后面小写的post的区别是什么呀

Toder
Toder 于 1 个月前

遍历posts这个list

 for (Post post : posts) 

是什么意思?

@LIMING

LIMING
LIMING 于 1 个月前
 for (Post post : posts) 

是什么意思?

Toder
Toder 于 2 个月前

修改了,谢谢提醒!

String s2 = Interger.toString(n); // 将整数转换为字符串

写错了

String s2 = Integer.toString(n); // 将整数转换为字符串

@feiafeia

feiafeia
feiafeia 于 2 个月前
String s2 = Interger.toString(n); // 将整数转换为字符串

写错了

String s2 = Integer.toString(n); // 将整数转换为字符串
Toder
Toder 于 2 个月前

创建一个Post类。

/**

  • */

package com.JayNoE.Text;

/**

  • @author JayNoE

    *

    */

public class JayNoE {

public static void main(String[] args) {

    Post post = new Post("天码营的博客", "这是我的第一篇博客"); // 创建博客对象

    post.print(); // 调用对象方法

}

}

报错:

Exception in thread "main" java.lang.Error: Unresolved compilation problems:

Post cannot be resolved to a type

Post cannot be resolved to a type

at com.JayNoE.Text.JayNoE.main(JayNoE.java:14)

这是什么情况啊

@JayNoE

Toder
Toder 于 2 个月前

 跟赋值类似,一个是先打印后自增,一个是先自增后打印

public class LianXi {

public static void main(String[] args) {

// TODO Auto-generated method stub

int a=5;

int b=5;

System.out.println("使用后置运算符得结果为:"+(a++));//显示后置结果

System.out.println("使用前置运算符得结果为:"+(++b));//显示前置结果

int a1=5;

a1++;

System.out.println(a1);

}

}  有点不太理解为什么  运行输出得a是5,b是6。.


涉及到赋值的时候,语义不一样。一个是新自增再赋值,一个是先赋值再自增。不涉及赋值的时候,语义是一样的。

在运算的时候我发现比如 int a = 5;

++a;与a++;得到的数据是一样的。可以这么理解吗?还是习惯上自增自减在后面更好一些。谢谢啦

@Maybe_sea

@Toder

@Maybe_sea

Maybe_sea
Maybe_sea 于 2 个月前

public class LianXi {

public static void main(String[] args) {

// TODO Auto-generated method stub

int a=5;

int b=5;

System.out.println("使用后置运算符得结果为:"+(a++));//显示后置结果

System.out.println("使用前置运算符得结果为:"+(++b));//显示前置结果

int a1=5;

a1++;

System.out.println(a1);

}

}  有点不太理解为什么  运行输出得a是5,b是6。.


涉及到赋值的时候,语义不一样。一个是新自增再赋值,一个是先赋值再自增。不涉及赋值的时候,语义是一样的。

在运算的时候我发现比如 int a = 5;

++a;与a++;得到的数据是一样的。可以这么理解吗?还是习惯上自增自减在后面更好一些。谢谢啦

@Maybe_sea

@Toder

Toder
Toder 于 2 个月前

涉及到赋值的时候,语义不一样。一个是新自增再赋值,一个是先赋值再自增。不涉及赋值的时候,语义是一样的。

在运算的时候我发现比如 int a = 5;

++a;与a++;得到的数据是一样的。可以这么理解吗?还是习惯上自增自减在后面更好一些。谢谢啦

@Maybe_sea

Maybe_sea
Maybe_sea 于 2 个月前

在运算的时候我发现比如 int a = 5;

++a;与a++;得到的数据是一样的。可以这么理解吗?还是习惯上自增自减在后面更好一些。谢谢啦

Toder
Toder 于 2 个月前

是这样的。

byte、int、long、和short都可以用十进制、16进制以及8进制,区分不同进制时候,是不是不论正负值,比如8进制就是 int a = 08   //正的八进制数  int b = -08  //负的八进制数  这样吗?

@Maybe_sea

Maybe_sea
Maybe_sea 于 2 个月前

byte、int、long、和short都可以用十进制、16进制以及8进制,区分不同进制时候,是不是不论正负值,比如8进制就是 int a = 08   //正的八进制数  int b = -08  //负的八进制数  这样吗?

Toder
Toder 于 2 个月前

基础知识的话,学习Java的基本概念和语法之后,然后动手练习吧,重在练习。

LFF633
LFF633 于 2 个月前

快速学习JAVA 的基础知识,有什么好的方法和建议吗?请指教!!!!!

Toder
Toder 于 2 个月前

java.lang.OutOfMemoryError?正常不应该出现这种问题才是哪。。。

谢谢!

Clipboard Image.png

如果这个放在while循环中,会出现java heap space 请问是为什么,是否是因为频繁的操作StringBuffer?

StringBuffer用于大量字符串的拼接操作效率要更好。

下面几行代码就是判断结束:

if (word.equals(END_OF_POST)) {
            break;
        }

END_OF_POST的值这里设置为***(你可以设置为其他),即最后一行输入***就表示内容输入结束。

@Toder

@wangyang

Toder
Toder 于 2 个月前

你需要新创建一个Post类。

/**

  • */

package com.JayNoE.Text;

/**

  • @author JayNoE

    *

    */

public class JayNoE {

public static void main(String[] args) {

    Post post = new Post("天码营的博客", "这是我的第一篇博客"); // 创建博客对象

    post.print(); // 调用对象方法

}

}

报错:

Exception in thread "main" java.lang.Error: Unresolved compilation problems:

Post cannot be resolved to a type

Post cannot be resolved to a type

at com.JayNoE.Text.JayNoE.main(JayNoE.java:14)

这是什么情况啊

@JayNoE

JayNoE
JayNoE 于 2 个月前

/**

 * 

 */

package com.JayNoE.Text;

/**

 * @author JayNoE

 *

 */

public class JayNoE {  

    

    public static void main(String[] args) {

        

        Post post = new Post("天码营的博客", "这是我的第一篇博客"); // 创建博客对象

        post.print(); // 调用对象方法

        

    }

}



报错:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 

Post cannot be resolved to a type

Post cannot be resolved to a type

at com.JayNoE.Text.JayNoE.main(JayNoE.java:14)






这是什么情况啊

wangyang
wangyang 于 2 个月前

谢谢!

Clipboard Image.png

如果这个放在while循环中,会出现java  heap space 请问是为什么,是否是因为频繁的操作StringBuffer?

StringBuffer用于大量字符串的拼接操作效率要更好。

下面几行代码就是判断结束:

if (word.equals(END_OF_POST)) {
            break;
        }

END_OF_POST的值这里设置为***(你可以设置为其他),即最后一行输入***就表示内容输入结束。

@Toder

Toder
Toder 于 2 个月前

StringBuffer用于大量字符串的拼接操作效率要更好。

下面几行代码就是判断结束:

if (word.equals(END_OF_POST)) {
            break;
        }

END_OF_POST的值这里设置为***(你可以设置为其他),即最后一行输入***就表示内容输入结束。

wangyang
wangyang 于 2 个月前

这是综合实例的例子,将content放进去会出现java heap space ,如果拿出来或出现死循环。并且没有办法判断结束的关键字,为什么还要加StringBuffer

Clipboard Image.png

Toder
Toder 于 2 个月前

增加之后自然覆盖了。

我要重新配的话之前的还有删除吗

现在应该弄好了吧?

实话实说我一经安装了好几次了还在其它的电脑上安装过,检查了好几遍,还上百度搜过都不行,算了我再检查检查吧

Path环境变量后面增加;%JAVA_HOME%\bin

了吗?


JAVA_HOME 设置的是JDK的安装目录吗?另外你下载的是JDK还是JRE?

我win7按照你的教程安装jdk环境变量设置好了之后在cmd上输入java显示安装成功而我输入javac则显示"javac不是内部或外部命令,也不是可运行的程序或批处理文件"为什么?

@夢一场″

@Toder我下的当然是jdk啦我设置的是jdk的安装目录jdk和jre不是捆绑安装的吗

@夢一场″

@Toder

@夢一场″

@Toder

@夢一场″

夢一场″
夢一场″ 于 2 个月前

我要重新配的话之前的还有删除吗

现在应该弄好了吧?

实话实说我一经安装了好几次了还在其它的电脑上安装过,检查了好几遍,还上百度搜过都不行,算了我再检查检查吧

Path环境变量后面增加;%JAVA_HOME%\bin

了吗?


JAVA_HOME 设置的是JDK的安装目录吗?另外你下载的是JDK还是JRE?

我win7按照你的教程安装jdk环境变量设置好了之后在cmd上输入java显示安装成功而我输入javac则显示"javac不是内部或外部命令,也不是可运行的程序或批处理文件"为什么?

@夢一场″

@Toder我下的当然是jdk啦我设置的是jdk的安装目录jdk和jre不是捆绑安装的吗

@夢一场″

@Toder

@夢一场″

@Toder

Toder
Toder 于 2 个月前

现在应该弄好了吧?

实话实说我一经安装了好几次了还在其它的电脑上安装过,检查了好几遍,还上百度搜过都不行,算了我再检查检查吧

Path环境变量后面增加;%JAVA_HOME%\bin

了吗?


JAVA_HOME 设置的是JDK的安装目录吗?另外你下载的是JDK还是JRE?

我win7按照你的教程安装jdk环境变量设置好了之后在cmd上输入java显示安装成功而我输入javac则显示"javac不是内部或外部命令,也不是可运行的程序或批处理文件"为什么?

@夢一场″

@Toder我下的当然是jdk啦我设置的是jdk的安装目录jdk和jre不是捆绑安装的吗

@夢一场″

@Toder

@夢一场″

Toder
Toder 于 2 个月前

U R right!

  • 首字符之后可以是任何字符的组合

没有勘误吗?不是任何字符,是字母(A-Z或者a-z),美元符($)、或者下划线(_)或者数字吧。

@1034353684

1034353684
1034353684 于 2 个月前
  • 首字符之后可以是任何字符的组合

没有勘误吗?不是任何字符,是字母(A-Z或者a-z),美元符($)、或者下划线(_)或者数字吧。

kkkevinxx
kkkevinxx 于 2 个月前

谢谢

你是想创建两个Post吧,这样写:

Post post1 = new Post("天码营的博客", "这是我的第一篇博客"); 
Post post2= new Post("天码营的博客", "这是我的第二篇博客");

就是开头的创建和是应对象。

public class HelloWorld {  

    public static void main(String[] args) {

        Post post = new Post("天码营的博客", "这是我的第一篇博客"); // 创建博客对象
        post.print(); // 调用对象方法

    }
}

代码贴上来

最早的Post post = new Post(...)括号里只打一对"我的..."会报错,打两个"我的...","第一个..."就没事了,为什么啊,,

@kkkevinxx

@Toder

@kkkevinxx

@Toder

Ted_java
Ted_java 于 2 个月前

3Q!

@David 的一篇文章 《为什么需要Java接口》

思考:接口的方法没有具体实现。两个类具体实现接口方法的途径不同,如animal里有方法eat和sleep,类1实现eat用嘴,类2实现eat用鼻子。那接口的意义何在?

虽然调用这2个类的eat方法名称是一样的。


讲集合时说ArrayList和LinkedList都是List接口的实现,ArrayList和LinkedList调用getAll(),其内部实现机制不一样说的就是这种情况吧?


@Toder 

@Ted_java

@Toder

Toder
Toder 于 2 个月前

@David 的一篇文章 《为什么需要Java接口》

思考:接口的方法没有具体实现。两个类具体实现接口方法的途径不同,如animal里有方法eat和sleep,类1实现eat用嘴,类2实现eat用鼻子。那接口的意义何在?

虽然调用这2个类的eat方法名称是一样的。


讲集合时说ArrayList和LinkedList都是List接口的实现,ArrayList和LinkedList调用getAll(),其内部实现机制不一样说的就是这种情况吧?


@Toder 

@Ted_java

Ted_java
Ted_java 于 2 个月前

思考:接口的方法没有具体实现。两个类具体实现接口方法的途径不同,如animal里有方法eat和sleep,类1实现eat用嘴,类2实现eat用鼻子。那接口的意义何在?

虽然调用这2个类的eat方法名称是一样的。


讲集合时说ArrayList和LinkedList都是List接口的实现,ArrayList和LinkedList调用getAll(),其内部实现机制不一样说的就是这种情况吧?


@Toder 

powersn
powersn 于 2 个月前

str1==str2 比较的应该是对像的引用地址,肯定是不同的,

str1.equals(str2)  是比较字符内容.

老师看一下我这个代码,为什么两次结果会不一样

class Demo_string {

public static void main(String[] args) {

String str1 = "abc";

String str2 = "abc";

System.out.println(str1 == str2);

System.out.println(str1.equals(str2));

System.out.println("----------------------");

String str3 = new String("abc");

String str4 = new String("abc");

System.out.println(str3 == str4);

System.out.println(str3.equals(str4));

}

}

Clipboard Image.png

bigbang
bigbang 于 2 个月前

首先,非常感谢回复,总而言之,在此是为了方便而言(http://tonylian.iteye.com/blog/563457)。再次感谢!

因为在我们这个场景中,所有PostRepository的对象的方法是一样的共享的,即对象是没有状态,这个时候直接使用类的静态方法即可,可以省却创建对象的开销。

这里为什么要使用静态方法呢?(PostRepository类中的方法)

@bigbang

@Toder

cser
cser 于 2 个月前

这里加和不加都可以

public String getTitle() {
        return title;
    }

这里不用加this吗?

@madara

madara
madara 于 2 个月前
public String getTitle() {
        return title;
    }

这里不用加this吗?

Ted_java
Ted_java 于 2 个月前
for(Post post:postsMap.values()){
   posts.add(post);
}


for(Map.Entry<Long, Post>postEntry : postMap. entrySet()){
posts.add(postEntry.getValue());
}
Toder
Toder 于 2 个月前

因为在我们这个场景中,所有PostRepository的对象的方法是一样的共享的,即对象是没有状态,这个时候直接使用类的静态方法即可,可以省却创建对象的开销。

这里为什么要使用静态方法呢?(PostRepository类中的方法)

@bigbang

bigbang
bigbang 于 2 个月前

这里为什么要使用静态方法呢?(PostRepository类中的方法)

Toder
Toder 于 3 个月前

你是想创建两个Post吧,这样写:

Post post1 = new Post("天码营的博客", "这是我的第一篇博客"); 
Post post2= new Post("天码营的博客", "这是我的第二篇博客");

就是开头的创建和是应对象。

public class HelloWorld {  

    public static void main(String[] args) {

        Post post = new Post("天码营的博客", "这是我的第一篇博客"); // 创建博客对象
        post.print(); // 调用对象方法

    }
}

代码贴上来

最早的Post post = new Post(...)括号里只打一对"我的..."会报错,打两个"我的...","第一个..."就没事了,为什么啊,,

@kkkevinxx

@Toder

@kkkevinxx

kkkevinxx
kkkevinxx 于 3 个月前

就是开头的创建和是应对象。

public class HelloWorld {  
    
    public static void main(String[] args) {
        
        Post post = new Post("天码营的博客", "这是我的第一篇博客"); // 创建博客对象
        post.print(); // 调用对象方法
        
    }
}

代码贴上来

最早的Post post = new Post(...)括号里只打一对"我的..."会报错,打两个"我的...","第一个..."就没事了,为什么啊,,

@kkkevinxx

@Toder

Toder
Toder 于 3 个月前

代码贴上来

最早的Post post = new Post(...)括号里只打一对"我的..."会报错,打两个"我的...","第一个..."就没事了,为什么啊,,

@kkkevinxx

kkkevinxx
kkkevinxx 于 3 个月前

最早的Post post = new Post(...)括号里只打一对"我的..."会报错,打两个"我的...","第一个..."就没事了,为什么啊,,

Toder
Toder 于 3 个月前

放到main函数中执行。

String str1 = new String("abc");

String str2 = new String("abc");

System.out.println(str1 == str2);

System.out.println(str1.equals(str2);


这段字符串操作怎样在程序中实现?

@Ted_java

Ted_java
Ted_java 于 3 个月前

String str1 = new String("abc");

String str2 = new String("abc");

System.out.println(str1 == str2);

System.out.println(str1.equals(str2);


这段字符串操作怎样在程序中实现?

snaiiiiil
snaiiiiil 于 3 个月前

Clipboard Image.png

删除后还是这样,自动修复后说no suggestions available。我自己加上了

import com.hello.domain.Post;

这行代码,运行正常。有点懵。

感谢。


 把default package中的文件删除了试试。可以用用Eclipse的自动修复功能,ctrl+1。

Clipboard Image.png请问我按照要求将两个 java文件拖入到不同的包内,图中的图标左下角为什么会出现x?打开HelloWorld.java没有以下代码:

import com.tianmaying.domain.Post;

错误显示的是:Description Resource Path Location Type

Post cannot be resolved to a type HelloWorld.java /HelloWorld/src/com/hello line 6 Java Problem

代码都是对的呀。

@snaiiiiil

@Toder

344922690
344922690 于 3 个月前

好TM难啊   各位兄弟都是花了多长时间入门的

qe1114126167
qe1114126167 于 3 个月前

或运算写错了 \ | --> || 

@fengzhi714

Toder
Toder 于 3 个月前

 把default package中的文件删除了试试。可以用用Eclipse的自动修复功能,ctrl+1。

Clipboard Image.png请问我按照要求将两个 java文件拖入到不同的包内,图中的图标左下角为什么会出现x?打开HelloWorld.java没有以下代码:

import com.tianmaying.domain.Post;

错误显示的是:Description Resource Path Location Type

Post cannot be resolved to a type HelloWorld.java /HelloWorld/src/com/hello line 6 Java Problem

代码都是对的呀。

@snaiiiiil

snaiiiiil
snaiiiiil 于 3 个月前

Clipboard Image.png请问我按照要求将两个 java文件拖入到不同的包内,图中的图标左下角为什么会出现x?打开HelloWorld.java没有以下代码:

import com.tianmaying.domain.Post;

错误显示的是:Description Resource Path Location Type

Post cannot be resolved to a type HelloWorld.java /HelloWorld/src/com/hello line 6 Java Problem

代码都是对的呀。

cser
cser 于 3 个月前

选择Linux版本下载后解压就行了啊。

请问ubuntu下如何安装Eclipse IDE for Java EE Developers

@zouxiangyuanfang

zouxiangyuanfang
zouxiangyuanfang 于 3 个月前

请问ubuntu下如何安装Eclipse IDE for Java EE Developers

peng163fj
peng163fj 于 3 个月前

1.右键src-new-class-填写Post(注意大小写)

注意package helloworld不要删除

复制黏贴<构造函数>的代码

点击绿色执行按钮

2.右键src-new-class-填写helloworld

注意package helloworld不要删除

复制黏贴<创建和使用对象>的代码

点击绿色执行按钮

3.再按照<包与import>来执行

夢一场″
夢一场″ 于 3 个月前

实话实说我一经安装了好几次了还在其它的电脑上安装过,检查了好几遍,还上百度搜过都不行,算了我再检查检查吧

Path环境变量后面增加;%JAVA_HOME%\bin

了吗?


JAVA_HOME 设置的是JDK的安装目录吗?另外你下载的是JDK还是JRE?

我win7按照你的教程安装jdk环境变量设置好了之后在cmd上输入java显示安装成功而我输入javac则显示"javac不是内部或外部命令,也不是可运行的程序或批处理文件"为什么?

@夢一场″

@Toder我下的当然是jdk啦我设置的是jdk的安装目录jdk和jre不是捆绑安装的吗

@夢一场″

@Toder

Toder
Toder 于 3 个月前

Path环境变量后面增加;%JAVA_HOME%\bin

了吗?


JAVA_HOME 设置的是JDK的安装目录吗?另外你下载的是JDK还是JRE?

我win7按照你的教程安装jdk环境变量设置好了之后在cmd上输入java显示安装成功而我输入javac则显示"javac不是内部或外部命令,也不是可运行的程序或批处理文件"为什么?

@夢一场″

@Toder我下的当然是jdk啦我设置的是jdk的安装目录jdk和jre不是捆绑安装的吗

@夢一场″

夢一场″
夢一场″ 于 3 个月前

JAVA_HOME 设置的是JDK的安装目录吗?另外你下载的是JDK还是JRE?

我win7按照你的教程安装jdk环境变量设置好了之后在cmd上输入java显示安装成功而我输入javac则显示"javac不是内部或外部命令,也不是可运行的程序或批处理文件"为什么?

@夢一场″

@Toder我下的当然是jdk啦我设置的是jdk的安装目录jdk和jre不是捆绑安装的吗

Toder
Toder 于 3 个月前

JAVA_HOME 设置的是JDK的安装目录吗?另外你下载的是JDK还是JRE?

我win7按照你的教程安装jdk环境变量设置好了之后在cmd上输入java显示安装成功而我输入javac则显示"javac不是内部或外部命令,也不是可运行的程序或批处理文件"为什么?

@夢一场″

夢一场″
夢一场″ 于 3 个月前

我win7按照你的教程安装jdk环境变量设置好了之后在cmd上输入java显示安装成功而我输入javac则显示"javac不是内部或外部命令,也不是可运行的程序或批处理文件"为什么?

Toder
Toder 于 3 个月前

构造函数。

    public Graph(){}

请问老师,这一行代码是什么意思?

@Zurich

Zurich
Zurich 于 3 个月前
    public Graph(){}

请问老师,这一行代码是什么意思?

Toder
Toder 于 3 个月前

定义一个字符串

将字符串转换为整数,

将整数转换为字符串

String s = “123”;
int n = Integer.parseInt(s); // 将字符串转换为整数
String s2 = Interger.toString(n); // 将整数转换为字符串

这个是啥什么意思啊?

@Zurich

Zurich
Zurich 于 3 个月前
String s = “123”;
int n = Integer.parseInt(s); // 将字符串转换为整数
String s2 = Interger.toString(n); // 将整数转换为字符串

这个是啥什么意思啊?

renakeji
renakeji 于 3 个月前

才接触java,所以看的有点认真

renakeji
renakeji 于 3 个月前

Clipboard Image.png

8种

jamesnet
jamesnet 于 3 个月前

Clipboard Image.png

为什么跳转到这个链接后没有显示参考代码,请问完整的代码在哪里可以下载

Toder
Toder 于 3 个月前

条件表达式,不同的条件进入不同的分支去执行代码。看最后一节。

这里面布尔表达式2的作用是什么?ifelse.png

@13691812781

13691812781
13691812781 于 3 个月前

这里面布尔表达式2的作用是什么?ifelse.png

Toder
Toder 于 3 个月前

变量引用的就是创建的String对象。

13691812781
13691812781 于 3 个月前

这里面字符串变量指向的字符序列和指向对象分别是什么?char.jpg

Toder
Toder 于 4 个月前

大写Post就是post这个类型的实例。看看第五课

能不能详细一点?比如我理解的是调用一个新的Post(“....”)赋值给post,那么小写字母开头的post就是一个变量,那么一个(大写字母的)Post是什么意思呢?

定义一个类型的变量。

谢谢提醒,原来是这么回事,竟然还能这么玩,请问大神Post post=new Post(".....")这里面前两个post是什么意思,怎么解释啊?

不要用内部类,专门新建一个Post.java文件来存放Post的代码。

终于写出了完整版HelloWorld.png

@13691812781

@Toder

@13691812781

@Toder

@13691812781

13691812781
13691812781 于 4 个月前

能不能详细一点?比如我理解的是调用一个新的Post(“....”)赋值给post,那么小写字母开头的post就是一个变量,那么一个(大写字母的)Post是什么意思呢?

定义一个类型的变量。

谢谢提醒,原来是这么回事,竟然还能这么玩,请问大神Post post=new Post(".....")这里面前两个post是什么意思,怎么解释啊?

不要用内部类,专门新建一个Post.java文件来存放Post的代码。

终于写出了完整版HelloWorld.png

@13691812781

@Toder

@13691812781

@Toder

Toder
Toder 于 4 个月前

定义一个类型的变量。

谢谢提醒,原来是这么回事,竟然还能这么玩,请问大神Post post=new Post(".....")这里面前两个post是什么意思,怎么解释啊?

不要用内部类,专门新建一个Post.java文件来存放Post的代码。

终于写出了完整版HelloWorld.png

@13691812781

@Toder

@13691812781

Toder
Toder 于 4 个月前

看得仔细!thumbsup 改过来了,谢谢!grin

此处数字不对jjj.png

@13691812781

13691812781
13691812781 于 4 个月前

此处数字不对jjj.png

13691812781
13691812781 于 4 个月前

谢谢提醒,原来是这么回事,竟然还能这么玩,请问大神Post post=new Post(".....")这里面前两个post是什么意思,怎么解释啊?

不要用内部类,专门新建一个Post.java文件来存放Post的代码。

终于写出了完整版HelloWorld.png

@13691812781

@Toder

13691812781
13691812781 于 4 个月前

那要怎么应用这个Post.java?

不要用内部类,专门新建一个Post.java文件来存放Post的代码。

终于写出了完整版HelloWorld.png

@13691812781

@Toder

Toder
Toder 于 4 个月前

不要用内部类,专门新建一个Post.java文件来存放Post的代码。

终于写出了完整版HelloWorld.png

@13691812781

13691812781
13691812781 于 4 个月前

终于写出了完整版HelloWorld.png

小小小小左
小小小小左 于 4 个月前

向上或者向下移动一行Windows快捷键也是Alt + ↑ or ↓吧

Toder
Toder 于 4 个月前

要创建一个Post类。

刚开始学习,不太懂Post的代码要怎么写,请问完整的要怎么写?

各位学过来的大哥们,为什么我原封不动的把代码复制到了esclipse里,也会报错啊。@Toder @vrmango @liangliangwqy

error.png

@HELLOWORLD

@13691812781

onlinesen
onlinesen 于 4 个月前

good

木里妹妹
木里妹妹 于 4 个月前

↖(^ω^)↗加油

wangdaxian
wangdaxian 于 4 个月前

没有写Post类,新建Post.java文件!

各位学过来的大哥们,为什么我原封不动的把代码复制到了esclipse里,也会报错啊。@Toder @vrmango @liangliangwqy 

error.png

@HELLOWORLD

jcy_999
jcy_999 于 4 个月前

请问这个实例的完整代码在哪里下载?

albionlance
albionlance 于 4 个月前

越看越不懂了

albionlance
albionlance 于 4 个月前

foo是fun吧

bltc4274
bltc4274 于 4 个月前
Toder
Toder 于 4 个月前

编译警告,或者项目设置的警告,一般不影响项目正常编译和运行。@1328803630 

1328803630
1328803630 于 4 个月前

Clipboard Image.png第一个文件有个感叹号,怎么回事?

xiaobaishu
xiaobaishu 于 5 个月前

Post post = new Post("");

cser
cser 于 5 个月前

一种常用的写法:

while (true) {
    if (someCondition) {
        break;
    }
}


while (true) {
            String command = scanner.next();
            System.out.println(command);
        }
          布尔表达式居然可以直接设定T/F啊

@mildshl

mildshl
mildshl 于 5 个月前
while (true) {
            String command = scanner.next();
            System.out.println(command);
        }
          布尔表达式居然可以直接设定T/F啊
Toder
Toder 于 5 个月前

getIdPost的方法,用以返回Postid属性。类的属性都是私有的,一般提供公共的gettersetter方法来让外部访问私有变量。比如:

class Post {
    private int id;

    public int getId() {
        return this.id;
    }

    public void setId(int id) {
        this.id = id;
    }
}


 if (post.getId() == id) {
                return post;
post.getId什么意思?
getId应该是个方法函数吧,可是搜索,没这个函数啊,import的这两个没包含他啊

@xi142623

Toder
Toder 于 5 个月前

posts.add(post);中的posts是一个List,调用的是Listadd方法。

xi142623
xi142623 于 5 个月前
public static void add(Post post) {
        posts.add(post);
    }这段代码方法里面又有add,没有具体实现呢,这不成了无限递归了。还有remove也是这样
xi142623
xi142623 于 5 个月前
 if (post.getId() == id) {
                return post;
post.getId什么意思?
getId应该是个方法函数吧,可是搜索,没这个函数啊,import的这两个没包含他啊
plumelet_Fly
plumelet_Fly 于 5 个月前

噗......自己少打了个分号......

应该是你的PATH环境变量配置的问题,再仔细检查一下路径

为什么我搜索不到java

‘java’不是内部或外部命令,也不是可运行的程序或批处理文件

@plumelet_Fly

@Ricky

Ricky
Ricky 于 5 个月前

应该是你的PATH环境变量配置的问题,再仔细检查一下路径

为什么我搜索不到java

‘java’不是内部或外部命令,也不是可运行的程序或批处理文件

@plumelet_Fly

plumelet_Fly
plumelet_Fly 于 5 个月前

为什么我搜索不到java

‘java’不是内部或外部命令,也不是可运行的程序或批处理文件

jewfdfdd
jewfdfdd 于 5 个月前

写不出来sob教程对该应用的程序结构描述太分散了

jewfdfdd
jewfdfdd 于 5 个月前

写不出来sob教程对该应用的程序结构描述太分散了

Toder
Toder 于 5 个月前

thumbsupthumbsupthumbsup

一起交流吧,smile

@Dream Van

Dream Van
Dream Van 于 5 个月前

一起交流吧,490524283smile

zzp1012
zzp1012 于 6 个月前

构造函数不能有返回值。

函数重载跟返回值没有关系。

zzp1012
zzp1012 于 6 个月前

throws放在执行代码的封装函数后面,调用该函数的方法必须用try/catch进行处理,否则编译将无法通过。

zzp1012
zzp1012 于 6 个月前

将可能出现异常的代码通过TRY/CATCH代码进行处理,当异常发生时,系统能够继续运行,而没有意外终止。

zzp1012
zzp1012 于 6 个月前

protected修饰成员变量和方法,同一个包里的类可以访问该变量方法;包外的子类可以访问该变量方法。

HELLOWORLD
HELLOWORLD 于 6 个月前

@天码君 @Toder 谢谢大哥,懂了。

天码君
天码君 于 6 个月前

@HELLOWORLD 

public class Post {
    private String title;
    private String content;
    
    public void print() {
        System.out.println(this.title);
        System.out.println(this.content);
    }
}
HELLOWORLD
HELLOWORLD 于 6 个月前

大哥还是不明白啊,教程里在哪儿有解释么?

@HELLOWORLD  创建Post类

@Toder

Toder
Toder 于 6 个月前

@HELLOWORLD  创建Post类

HELLOWORLD
HELLOWORLD 于 6 个月前

各位学过来的大哥们,为什么我原封不动的把代码复制到了esclipse里,也会报错啊。@Toder @vrmango @liangliangwqy 

error.png

maling
maling 于 6 个月前

课程代码在哪里?

zzp1012
zzp1012 于 6 个月前

1.JAVA中一个子类只能有一个父类。

2.子类会继承父类中的除构造函数以外的所有非Private成员方法和变量。(1.具体到该例子中就是,rectangle类继承graph类,他就默认具有了graph类的的name属性和show 方法 2. 即使是子类,也无权继承Private的属性)

3.子类不能继承父类构造函数,但要在自己的构造函数中

zzp1012
zzp1012 于 6 个月前

FINAL不能修饰构造方法。

shot_the_point
shot_the_point 于 6 个月前

@Toder 已经完成环境变量设置,谢谢blush

Toder
Toder 于 6 个月前

你说windows上编辑环境变量? 应该有个编辑按钮吧。

最后一步怎么调出编辑的对话框?

@shot_the_point

shot_the_point
shot_the_point 于 6 个月前

最后一步怎么调出编辑的对话框?

yikesaiting
yikesaiting 于 6 个月前

闲得无聊,看不进去啦

因为看的出来你非常兴奋grin

你咋知道

你用的搜狗拼音吧

克里马擦

@yikesaiting

@Toder

@yikesaiting

@天码君

天码君
天码君 于 6 个月前

因为看的出来你非常兴奋grin

你咋知道

你用的搜狗拼音吧

克里马擦

@yikesaiting

@Toder

@yikesaiting

yikesaiting
yikesaiting 于 6 个月前

你咋知道

你用的搜狗拼音吧

克里马擦

@yikesaiting

@Toder

Toder
Toder 于 6 个月前

你用的搜狗拼音吧

克里马擦

@yikesaiting

yikesaiting
yikesaiting 于 6 个月前

克里马擦

vrmango
vrmango 于 6 个月前

果然是这样,解决问题了,谢谢啊grin

post.print()而不是 Post.print(),此外要创建Post类才能使用,你写Post类的代码了吗?

问题依旧@Toder

@Toder

Toder
Toder 于 6 个月前

post.print()而不是 Post.print(),此外要创建Post类才能使用,你写Post类的代码了吗?

问题依旧@Toder

vrmango
vrmango 于 6 个月前

问题依旧@Toder QQ截图20160728135456.png

Toder
Toder 于 6 个月前

@vrmango 大小写有误,应该是:

Post post = new Post("天码营的博客", "这是我的第一篇博客"); // 创建博客对象
vrmango
vrmango 于 6 个月前

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 

Post cannot be resolved to a type

Post cannot be resolved to a type

at HelloWorld.main(HelloWorld.java:7)



Post Post = new Post("天码营的博客", "这是我的第一篇博客"); // 创建博客对象
David
David 于 6 个月前

JAVA_HOME 路径设置为JDK的目录,可能你设成JRE的了。

我在命令行里输入java -version显示信息 可是输入javac就说不是内部或者外部命令 怎么办啊?我环境变量都确认了好几遍了

@NLAURFUFTYO

NLAURFUFTYO
NLAURFUFTYO 于 6 个月前

我在命令行里输入java -version显示信息  可是输入javac就说不是内部或者外部命令  怎么办啊?我环境变量都确认了好几遍了

NLAURFUFTYO
NLAURFUFTYO 于 6 个月前

它又显示找不到或者无法加载主类HelloWorld

这里src是文件夹名称,不需要输入。你应该输入的是:

java HelloWorld

Clipboard Image.png这种情况怎么办啊?我感觉环境变量也设置好了啊

@NLAURFUFTYO

@David

David
David 于 6 个月前

这里src是文件夹名称,不需要输入。你应该输入的是:

java HelloWorld

Clipboard Image.png这种情况怎么办啊?我感觉环境变量也设置好了啊

@NLAURFUFTYO

NLAURFUFTYO
NLAURFUFTYO 于 6 个月前

Clipboard Image.png这种情况怎么办啊?我感觉环境变量也设置好了啊

fengxingjimo
fengxingjimo 于 6 个月前

复杂的初始化操作。了解。

@fengxingjimo 2 这种情况可以写很多语句(因为是个代码块),那就可以做很复杂的初始化操作。而1只能是一个表达式或者常量。

@Toder

Toder
Toder 于 6 个月前

@fengxingjimo 2 这种情况可以写很多语句(因为是个代码块),那就可以做很复杂的初始化操作。而1只能是一个表达式或者常量。

fengxingjimo
fengxingjimo 于 6 个月前

1.private static int count = 100;

2.static { count = 100; //这里假设100是从数据库中获取Post的数量}

1和2的区别是什么呢?(源自java入门基础的第九课)

fan2kvip
fan2kvip 于 7 个月前

www

wdshbhschana
wdshbhschana 于 7 个月前

拖动不知道什么意思

Toder
Toder 于 7 个月前

@liangliangwqy 你是对的,我以为是while循环,do/while最后确实需要有分号。

liangliangwqy
liangliangwqy 于 7 个月前

我没带分号的时候报错哦。

语法格式如下:

do {
	//循环内容
} while( 布尔表达式 );


这里不需要分号吧

while (i <= 100)

最后少了个分号

@liangliangwqy

@David

David
David 于 7 个月前

这里不需要分号吧

while (i <= 100)

最后少了个分号

@liangliangwqy

liangliangwqy
liangliangwqy 于 7 个月前
while (i <= 100)

最后少了个分号

liangliangwqy
liangliangwqy 于 7 个月前

5-引用类型

本页的代码中,Blog应该改成Post。

liangliangwqy
liangliangwqy 于 7 个月前

看了一下分号确实有问题,谢谢

@liangliangwqy 应该是你打的分号是中文的分号。

@Toder

Toder
Toder 于 7 个月前

@liangliangwqy 应该是你打的分号是中文的分号。

liangliangwqy
liangliangwqy 于 7 个月前

对这一行里的前两个Post不是太明白,在eclipse里面报错

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 

The left-hand side of an assignment must be a variable

Syntax error on token "Invalid Character", invalid AssignmentOperator

Syntax error on token "Invalid Character", ; expected

at blog.HelloWorld.main(HelloWorld.java:5)

 Post Post = new Post("天码营的博客", "这是我的第一篇博客"); // 创建博客对象
liangliangwqy
liangliangwqy 于 7 个月前

“比说我们要做一个博客应用”

应是“比如说。。。”

liangliangwqy
liangliangwqy 于 7 个月前

在这里D:\workspace\HelloWorld\bin\blog\HelloWorld.class

到系统中对应的文件目录中看看

你指的是哪里?

@liangliangwqy

@David

David
David 于 7 个月前

到系统中对应的文件目录中看看

你指的是哪里?

@liangliangwqy

liangliangwqy
liangliangwqy 于 7 个月前

你指的是哪里?

liangliangwqy
liangliangwqy 于 7 个月前

eclipse.jpg

应该在target或者build目录下有.class文件。

“运行javac命令后,如果成功编译没有错误的话,会出现一个HelloWorld.class的文件。”


在eclipse里面,运行程序之后输出了正确的内容,但是没看到.class文件,是用C图标表示的.class文件吗?

@liangliangwqy

@David

David
David 于 7 个月前

应该在target或者build目录下有.class文件。

“运行javac命令后,如果成功编译没有错误的话,会出现一个HelloWorld.class的文件。”


在eclipse里面,运行程序之后输出了正确的内容,但是没看到.class文件,是用C图标表示的.class文件吗?

@liangliangwqy

liangliangwqy
liangliangwqy 于 7 个月前

“运行javac命令后,如果成功编译没有错误的话,会出现一个HelloWorld.class的文件。”


在eclipse里面,运行程序之后输出了正确的内容,但是没看到.class文件,是用C图标表示的.class文件吗?

liangliangwqy
liangliangwqy 于 7 个月前

是的,网上查了一下,自己新建了一个Package就好了。

我猜是没有设置包(Package)的原因。暂时还没涉及这个概念,所以代码没有放在任何Package内。

有警告

@liangliangwqy

@David

David
David 于 7 个月前

我猜是没有设置包(Package)的原因。暂时还没涉及这个概念,所以代码没有放在任何Package内。

有警告

@liangliangwqy

liangliangwqy
liangliangwqy 于 7 个月前

有警告

cser
cser 于 7 个月前

很不错!

hmj123
hmj123 于 8 个月前

smile

fengzhi714
fengzhi714 于 8 个月前

或运算写错了 \ | --> || 

Toder
Toder 于 8 个月前
mysky13458
mysky13458 于 8 个月前
  1. g
David
David 于 8 个月前

最后一句

即两者在概念本质上是相同的。

改为

即两者在概念本质上是不同的。

@375889550

已经修改,谢谢!

375889550
375889550 于 8 个月前

最后一句

即两者在概念本质上是相同的。

改为

即两者在概念本质上是不同的。

Toder
Toder 于 8 个月前

试了一下,没有复现,出错信息是? @rockyzlwang

rockyzlwang
rockyzlwang 于 8 个月前

点击目录出现天马营出错的窗口,是什么情况?

wangzishuo
wangzishuo 于 8 个月前

第九章的static修饰方法有一处笔误 Post.getCont() 应该改为 Post.getCount()

93Kevin
93Kevin 于 9 个月前

我的邮箱激活链接一直无效@Toder

Toder
Toder 于 10 个月前

初步接触Java编程的童鞋看过来!heart_eyes  我们开放了一个Java基础教程,将Java的入门基础知识贯穿在一个实例中,逐步深入,可以帮助你快速进入Java编程的世界。万事开头难,逐步跟着这个教程走一遍,对Java应该就会有一种入门的感觉了。然后再去学习更高级的主题,或者更深入地学习其中的某些知识点。 

咨询老师