JAVA课本封面上为什么有一个杯子,它代表了什么意思?

Python017

JAVA课本封面上为什么有一个杯子,它代表了什么意思?,第1张

那是个咖啡杯 具体来历如下:

1991年,Sun公司的James Gosling。Bill Joe等人,为电视、控制烤面包机等家用电器的交互操作开发了一个Oak(一种橡树的名字)软件,他是Java的前身。当时,Oak并没有引起人们的注意,直到1994年,随着互联网和3W的飞速发展,他们用Java编制了HotJava浏览器,得到了Sun公司首席执行官Scott McNealy的支持,得以研发和发展。为了促销和法律的原因,1995年Oak更名为Java。Java的得名还有段小插曲呢,一天,Java小组成员正在喝咖啡时,议论给新语言起个什么名字的问题,有人提议用Java(Java是印度尼西亚盛产咖啡的一个岛屿),这个提议得到了其他成员的赞同,于是就采用Java来命名此新语言。

封面就是图片,用java的类抓取图片即可

package tool

import java.awt.BorderLayout

import java.awt.FlowLayout

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import java.io.BufferedReader

import java.io.ByteArrayOutputStream

import java.io.File

import java.io.FileOutputStream

import java.io.InputStream

import java.io.InputStreamReader

import java.net.HttpURLConnection

import java.net.URL

import java.util.LinkedList

import java.util.List

import java.util.regex.Matcher

import java.util.regex.Pattern

import javax.swing.ImageIcon

import javax.swing.JButton

import javax.swing.JFrame

import javax.swing.JPanel

import javax.swing.JScrollPane

import javax.swing.JTextField

import javax.swing.JTextPane

import javax.swing.SwingUtilities

import javax.swing.text.Style

import javax.swing.text.StyleConstants

import javax.swing.text.StyleContext

import javax.swing.text.StyledDocument

public class ImageViewer extends JFrame

{

private static final long serialVersionUID = 1L

private static final String DOWNLOADPATH = "download/"

JTextPane textPane = new JTextPane ()

LinkedList<String> initString = new LinkedList<String> ()

LinkedList<String> initStyles = new LinkedList<String> ()

LinkedList<String> path = new LinkedList<String> ()

public ImageViewer ()

{

setTitle ("图片预览下载器 v1.0")

setLayout (new BorderLayout ())

setSize (500, 300)

setLocationRelativeTo (null)

setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE)

}

private void addComponents ()

{

final JTextField urltField = new JTextField ()

JPanel right = new JPanel (new FlowLayout (FlowLayout.RIGHT, 0, 0))

final JButton go = new JButton ("GO")

textPane.setEditable (false)

JScrollPane content = new JScrollPane (textPane)

go.addActionListener (new ActionListener ()

{

@Override

public void actionPerformed ( ActionEvent e )

{

String url = urltField.getText ().trim ()

resolveHTML (url, "utf8", "(?i)\\<img[^\\>]*src[\\=\\s\'\"]+([^\\>\'\"]+)[\'\"]?[^\\>]*\\>")

}

})

JPanel up = new JPanel (new BorderLayout ())

up.add (urltField, BorderLayout.CENTER)

right.add (go)

JButton download = new JButton ("DOWNLOAD")

download.addActionListener (new ActionListener ()

{

@Override

public void actionPerformed ( ActionEvent e )

{

downloadImages ()

}

})

right.add (download)

up.add (right, BorderLayout.EAST)

add (up, BorderLayout.NORTH)

add (content, BorderLayout.CENTER)

}

private void downloadImages ()

{

File fp = new File (DOWNLOADPATH)

if (!fp.exists ())

{

fp.mkdir ()

}

for ( int i = 0 i < path.size () i++ )

{

try

{

String p = path.get (i)

URL url = new URL (p)

HttpURLConnection huc = (HttpURLConnection) url.openConnection ()

huc.setRequestMethod ("GET")

huc.setConnectTimeout (5 * 1000)

InputStream is = huc.getInputStream ()

ByteArrayOutputStream baos = new ByteArrayOutputStream ()

byte[] buffer = new byte[1024]

int len = -1

while (( len = is.read (buffer) ) != -1)

{

baos.write (buffer, 0, len)

}

baos.flush ()

baos.close ()

is.close ()

huc.disconnect ()

byte[] data = baos.toByteArray ()

String name = p.substring (p.lastIndexOf ("/") + 1, p.length ())

name = name.contains (".") ? name : name + ".jpg"

FileOutputStream fos = new FileOutputStream (new File (DOWNLOADPATH + name))

fos.write (data)

fos.flush ()

fos.close ()

}

catch (Exception e)

{

continue

}

}

}

private void loadImages ( List<String> initString, List<String> initStyles, List<String> url )

{

try

{

StyledDocument doc = textPane.getStyledDocument ()

doc.remove (0, doc.getLength ())

addStylesToDocument (doc, url, initStyles)

for ( int i = 0 i < initString.size () i++ )

{

doc.insertString (doc.getLength (), initString.get (i), doc.getStyle (initStyles.get (i)))

}

}

catch (Exception e)

{}

}

protected void addStylesToDocument ( StyledDocument doc, List<String> url, List<String> initStyles )

{

Style def = StyleContext.getDefaultStyleContext ().getStyle (StyleContext.DEFAULT_STYLE)

for ( int i = 0 i < initStyles.size () i++ )

{

Style s = doc.addStyle (initStyles.get (i), def)

StyleConstants.setAlignment (s, StyleConstants.ALIGN_CENTER)

ImageIcon icon = createImageIcon (url.get (i))

if (icon != null)

{

StyleConstants.setIcon (s, icon)

}

}

}

protected static ImageIcon createImageIcon ( String url )

{

URL imgURL = null

try

{

imgURL = new URL (url)

if (imgURL != null)

{

return new ImageIcon (imgURL)

}

}

catch (Exception e)

{}

return null

}

private void resolveHTML ( String spec, String charsetName, String regex )

{

try

{

URL url = new URL (spec)

HttpURLConnection huc = (HttpURLConnection) url.openConnection ()

InputStreamReader isr = new InputStreamReader (huc.getInputStream (), charsetName)

BufferedReader br = new BufferedReader (isr)

StringBuilder builder = new StringBuilder ()

String line = null

while (null != ( line = br.readLine () ))

{

builder.append (line)

}

br.close ()

isr.close ()

huc.disconnect ()

String bs = builder.toString ()

Pattern pattern = Pattern.compile (regex)

Matcher matcher = pattern.matcher (bs)

initString.clear ()

initStyles.clear ()

path.clear ()

while (matcher.find ())

{

String p = matcher.group (1)

initString.add (" ")

initStyles.add (p)

path.add (p)

}

loadImages (initString, initStyles, path)

}

catch (Exception e)

{

return

}

}

public static void main ( String[] args )

{

SwingUtilities.invokeLater (new Runnable ()

{

@Override

public void run ()

{

ImageViewer tester = new ImageViewer ()

tester.addComponents ()

tester.setVisible (true)

}

})

}

}

区别还是很大的。

本质区别,java版,Java版顾名思义是使用Java语言编程的,是minecraft的最初版本,一般称之为Java版JE版。基岩版,基岩版英文名称为BedrockEdition,使用C++语言编程,一般称为基岩版PE版携带版。

启动方式区别,Java版,Java版是使用启动器开始游戏的,可以选择游玩版本。基岩版,基岩版无启动器应该不能选择游玩版本(我未玩过基岩版,欢迎玩过的纠正)但能玩快照版本。