谈到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) {}
}