学JAVA语言最好的是谁主编的哪本教材?

Python020

学JAVA语言最好的是谁主编的哪本教材?,第1张

对于Java的入门书籍,蔡学镛推荐的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(针对C++背景)》,我并没有看过这两本书。其实我觉得电子工业出版社的《Java 2编程详解》或者《Java 2从入门到精通》就很不错。

Java语言基础

谈到Java语言基础学习的书籍,大家肯定会推荐Bruce Eckel的《ThinkinginJava》。它是一本写的相当深刻的技术书籍,Java语言基础部分基本没有其它任何一本书可以超越它。该书的作者BruceEckel在网络上被称为天才的投机者,作者的《Thinking in C++》在1995年曾获SoftwareDevelopmentJoltAward最佳书籍大奖,《Thinking inJava》被评为1999年JavaWorld“最爱读者欢迎图书”,并且赢得了编辑首选图书奖。作者从1986年至今,已经发表了超过150篇计算机技术文章,出版了6本书(其中4本是关于C++的),并且在全世界做了数百次演讲。他是《Thinking in Java》、《Thinking inC++》、《C++ Inside&Out》《Using C++》和《Thinking inPatterns》的作者,同时还是《BlackBeltC++》文集的编辑。他的书被读者称为“最好的Java参考书……绝对让人震惊”;“购买Java参考书最明智的选择”;“我见过的最棒的编程指南”。作者的非凡才华,极其跨越语言的能力,使作者被选为Java发展10年间与Java关系最密切的10个人物之一。

《Thinking in Java》讲述了Java语言的方方面面,很多Java语言的老手都评价“这是一本将Java语言讲得相当丑陋的书”。该书谈及了java语言的很多细节,每一个方面都是相当深刻的。通过本书你可以看到“丑陋的”java语言。

网络上关于java语言讲解的视频很多很多,其中不凡有垃圾。《翁恺—JAVA语言》可能是你学习java语言基础的唯一选择,该讲座基本按照《ThinkinginJava》这本书讲解,其中不凡有翁老师的很多有意思的笑话。我很幸运学习就是从此视频开始的。内容包括30讲,我总共看了3遍。

不过,对于初学者我不太推荐使用《Thinking in Java》,我比较推荐Prentice Hall PTR 的《CoreJava2》国内称为《Java 2 核心技术》,目前是第七版。网络上大家都可以下载到电子版。Oreilly的《Java inanutshell》也是一个不错的选择。读完以上两本后,你可以看看翁恺老师的视频,接着可以研究《Thinking in Java》了

为了捡到钱。。。

import java.awt.Button

import java.awt.Frame

import java.awt.GridLayout

import java.awt.Label

import java.awt.TextField

import java.awt.event.MouseEvent

import java.awt.event.MouseListener

import java.awt.event.WindowEvent

import java.awt.event.WindowListener

public class First {

public static void main(String[] args) {

first()//第一题

second()//第2个

third()//第3题

}

private static void third() {

final String reg = "[^0-9]*"

Frame f = new Frame("Third question")

Label first = new Label("Number1")

Label second = new Label("Number2")

final TextField num1 = new TextField(15)

final TextField num2 = new TextField(15)

f.add(first)//

f.add(num1)

f.add(second)

f.add(num2)

Button calc = new Button("Calculate")

final TextField result = new TextField()

calc.addMouseListener(new MouseListener(){

public void mouseClicked(MouseEvent e) {

if(num1.getText().matches(reg) || num2.getText().trim().matches(reg)){

result.setText("0")

return

}

int number1 = Integer.parseInt(num1.getText())

int number2 = Integer.parseInt(num2.getText())

int min = Math.min(number1, number2)

int max = Math.max(number1, number2)

int sum = 0

while(min <= max){

boolean isPrime = true

for(int j = 2j <= Math.sqrt(min)j++){

if(min % j == 0){

isPrime = false

}

}

sum += isPrime? min: 0

min++

}

result.setText(String.valueOf(sum))

}

public void mouseEntered(MouseEvent e) {}

public void mouseExited(MouseEvent e) {}

public void mousePressed(MouseEvent e) {}

public void mouseReleased(MouseEvent e) {}

})

f.add(calc)

f.add(result)

f.addWindowListener(new WindowClose())

f.setLayout(new GridLayout(3, 2))

f.setVisible(true)

f.pack()

}

private static void second() {

int[] ary = {14, 2, 5, 1, 6, 9, 456, 8}

for(int i = 0i <ary.lengthi++){

int index = i

for(int j = ij <ary.lengthj++){

if(ary[index] >ary[j]){

index = j

}

}

if(i != index){

int temp = ary[index]

ary[index] = ary[i]

ary[i] = temp

}

}

System.out.print("After sorting, the array is: ")

for(int i = 0i <ary.lengthi++){

System.out.print(ary[i] + ",")

}

}

private static void first() {

int money = 100

int qty = 100

for(int i = 0i <= money /5i++){

for(int j = 0j <= money/3 + 1j++){

int jichuQty = 100 - i - j

if(jichuQty % 3 == 0){

if(i * 5 + j * 3 + (100 - i - j ) / 3 == qty){

System.out.println("jiWeng = " + i + ", jimu = " + j + ", jichu= " + jichuQty)

}

}

}

}

}

}

class WindowClose implements WindowListener{

public void windowClosing(WindowEvent e) {

System.exit(0)

}

public void windowActivated(WindowEvent e) {}

public void windowClosed(WindowEvent e) {}

public void windowDeactivated(WindowEvent e) {}

public void windowDeiconified(WindowEvent e) {}

public void windowIconified(WindowEvent e) {}

public void windowOpened(WindowEvent e) {}

}