java代码编辑器教程,Java代码编辑器

如何用java编写一个简单的文本编辑器?

import java.awt.*;

相山网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、响应式网站等网站项目制作,到程序开发,运营维护。创新互联建站自2013年创立以来到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

public class f1 extends Frame implements ActionListener

{

private MenuBar menubar=new MenuBar();

private Menu filemenu=new Menu("文件");

private Menu editmenu=new Menu("编辑");

private Menu formmenu=new Menu("格式");

private MenuItem[] itemf=new MenuItem[4];

private MenuItem[] iteme=new MenuItem[6];

private MenuItem[] items=new MenuItem[2];

private TextArea tf=new TextArea();

public int a=0,b=0,c=0,style=Font.PLAIN,size=15;

public String s1="red:"+a+" "+"green:"+b+" "+"blue"+c,

s2="宋体";

public String[] sz1={"10","16","24","30","32","36"},

sz2={"宋体","黑体","幼圆","隶书","行楷","Arial","Georgia"},

sz3={"粗体","倾斜","常规","粗斜"};

JDialog dialog=new JDialog(this,"字体",true);

Container cp=dialog.getContentPane();

JLabel[] lb=new JLabel[8];

JLabel lb1=new JLabel(s1,JLabel.LEFT);

JButton b1=new JButton("确定"),

b2=new JButton("取消");

JComboBox jc1=new JComboBox(),

jc2=new JComboBox(),

jc3=new JComboBox();

JScrollBar jb1=new JScrollBar(JScrollBar.HORIZONTAL,10,5,0,260);

JScrollBar jb2=new JScrollBar(JScrollBar.HORIZONTAL,10,5,0,260);

JScrollBar jb3=new JScrollBar(JScrollBar.HORIZONTAL,10,5,0,260);

怎么在电脑上编写并运行Java程序

在电脑上安装第一的开放工具。

一、基础的开发就JDK就行了,这个jdk就提供了编译器,就是常说的java虚拟机,代码可以通过任何的文本编辑器编辑;

jdk是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。

jdk各个版本的特性

1997 年Servlet技术的产生以及紧接着JSP的产生,为Java对抗PHP,ASP等等服务器端语言带来了筹码。1998年,Sun发布了EJB1.0标准,至此J2EE平台的三个核心技术都已经出现。于是,1999年,Sun正式发布了J2EE的第一个版本。并于1999年底发布了J2EE1.2,在 2001年发布了J2EE1.3,2003年发布了J2EE1.4。

2.J2EE1.3 J2EE1.3的架构,其中主要包含了Applet容器,Application Client容器,Web容器和EJB容器,并且包含了Web Component,EJB Component,Application Client Component,以JMS,JAAS,JAXP,JDBC,JAF,JavaMail,JTA等等技术做为基础。 1.3中引入了几个值得注意的功能:Java消息服务(定义了JMS的一组API),J2EE连接器技术(定义了扩展J2EE服务到非J2EE应用程序的标准),XML解析器的一组Java API,Servlet2.3,JSP1.2也都进行了性能扩展与优化,全新的CMP组件模型和MDB(消息Bean)。

3.J2EE1.4 J2EE1.4 大体上的框架和J2EE1.3是一致的,1.4增加了对Web服务的支持,主要是Web Service,JAX-RPC,SAAJ,JAXR,还对EJB的消息传递机制进行了完善(EJB2.1),部署与管理工具的增强(JMX),以及新版本的Servlet2.4和JSP2.0使得Web应用更加容易。

4.JAVA EE 5

JAVA EE 5拥有许多值得关注的特性。其中之一就是新的 Java Standard Tag Library (JSTL) 1.2 规范。JSTL 1.2 的关键是统一表达式语言,它允许我们在 JavaServer Faces (JSF) 中结合使用 JSTL 的最佳特性。

二、专业的编辑器IDE有eclipse netbean等工具,做java开发的基本上都是用的以上开发工具。

1、eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。2007年6月,稳定版3.3发布;2008年6月发布代号为Ganymede的3.4版;2009年6月发布代号为Galileo的3.5版;2010年6月发布代号为Helios的3.6版;2011年6月发布代号为Indigo的3.7版;2012年6月发布代号为Juno的4.2版;2013年6月发布代号为Kepler的4.3版;2014年6月发布代号为Luna的4.4版;2015年6月项目发布代号为Mars的4.5版。

2、NetBeans

NetBeans 由Sun公司(2009年被甲骨文收购)在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的Java IDE。NetBeans当前可以在Solaris、Windows、Linux和Macintosh OS X平台上进行开发,并在SPL(Sun公用许可)范围内使用。

NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeans IDE已经支持PHP、Ruby、JavaScript、Groovy、Grails和C/C++等开发语言。NetBeans项目由一个活跃的开发社区提供支持, NetBean开发环境提供了丰富的产品文档和培训资源以及大量的第三方插件。

NetBeans是开源软件开发集成环境,是一个开放框架,可扩展的开发平台,可以用于Java、C/C++,PHP等语言的开发,本身是一个开发平台,可以通过扩展插件来扩展功能。[1]

在 NetBeans Platform 平台中,应用软体是用一系列的软体模组(Modular Software Components)建构出来。而这些模组是一个jar档(Java Archive File)它包含了一组Java程式的类别而它们实作全依据依 NetBeans 定义了的公开介面以及一系列用来区分不同模组的定义描述档(Manifest File)。有赖于模组化带来的好处,用模组来建构的应用程式可只要加上新的模组就能进一步扩充。

java源代码编辑器 设计用于编写Java源代码的编辑器,基本要求:可以完成源程序的文件打开,编辑和文件保存

一. 高亮的内容:

需要高亮的内容有:

1. 关键字, 如 public, int, true 等.

2. 运算符, 如 +, -, *, /等

3. 数字

4. 高亮字符串, 如 "example of string"

5. 高亮单行注释

6. 高亮多行注释

二. 实现高亮的核心方法:

StyledDocument.setCharacterAttributes(int offset, int length, AttributeSet s, boolean replace)

三. 文本编辑器选择.

Java中提供的多行文本编辑器有: JTextComponent, JTextArea, JTextPane, JEditorPane等, 都可以使用. 但是因为语法着色中文本要使用多种风格的样式, 所以这些文本编辑器的document要使用StyledDocument.

JTextArea使用的是PlainDocument, 此document不能进行多种格式的着色.

JTextPane, JEditorPane使用的是StyledDocument, 默认就可以使用.

为了实现语法着色, 可以继承自DefaultStyledDocument, 设置其为这些文本编辑器的documet, 或者也可以直接使用JTextPane, JEditorPane来做. 为了方便, 这里就直接使用JTextPane了.

四. 何时进行着色.

当文本编辑器中有字符被插入或者删除时, 文本的内容就发生了变化, 这时检查, 进行着色.

为了监视到文本的内容发生了变化, 要给document添加一个DocumentListener监听器, 在他的removeUpdate和insertUpdate中进行着色处理.

而changedUpdate方法在文本的属性例如前景色, 背景色, 字体等风格改变时才会被调用.

@Override

public void changedUpdate(DocumentEvent e) {

}

@Override

public void insertUpdate(DocumentEvent e) {

try {

colouring((StyledDocument) e.getDocument(), e.getOffset(), e.getLength());

} catch (BadLocationException e1) {

e1.printStackTrace();

}

}

@Override

public void removeUpdate(DocumentEvent e) {

try {

// 因为删除后光标紧接着影响的单词两边, 所以长度就不需要了

colouring((StyledDocument) e.getDocument(), e.getOffset(), 0);

} catch (BadLocationException e1) {

e1.printStackTrace();

}

}

五. 着色范围:

pos: 指变化前光标的位置.

len: 指变化的字符数.

例如有关键字public, int

单词"publicint", 在"public"和"int"中插入一个空格后变成"public int", 一个单词变成了两个, 这时对"public" 和 "int"进行着色.

着色范围是public中p的位置和int中t的位置加1, 即是pos前面单词开始的下标和pos+len开始单词结束的下标. 所以上例中要着色的范围是"public int".

提供了方法indexOfWordStart来取得pos前单词开始的下标, 方法indexOfWordEnd来取得pos后单词结束的下标.

public int indexOfWordStart(Document doc, int pos) throws BadLocationException {

// 从pos开始向前找到第一个非单词字符.

for (; pos 0 isWordCharacter(doc, pos - 1); --pos);

return pos;

}

public int indexOfWordEnd(Document doc, int pos) throws BadLocationException {

// 从pos开始向前找到第一个非单词字符.

for (; isWordCharacter(doc, pos); ++pos);

return pos;

}

一个字符是单词的有效字符: 是字母, 数字, 下划线.

public boolean isWordCharacter(Document doc, int pos) throws BadLocationException {

char ch = getCharAt(doc, pos); // 取得在文档中pos位置处的字符

if (Character.isLetter(ch) || Character.isDigit(ch) || ch == '_') { return true; }

return false;

}

所以着色的范围是[start, end] :

int start = indexOfWordStart(doc, pos);

int end = indexOfWordEnd(doc, pos + len);

六. 关键字着色.

从着色范围的开始下标起进行判断, 如果是以字母开或者下划线开头, 则说明是单词, 那么先取得这个单词, 如果这个单词是关键字, 就进行关键字着色, 如果不是, 就进行普通的着色. 着色完这个单词后, 继续后面的着色处理. 已经着色过的字符, 就不再进行着色了.

public void colouring(StyledDocument doc, int pos, int len) throws BadLocationException {

// 取得插入或者删除后影响到的单词.

// 例如"public"在b后插入一个空格, 就变成了:"pub lic", 这时就有两个单词要处理:"pub"和"lic"

// 这时要取得的范围是pub中p前面的位置和lic中c后面的位置

int start = indexOfWordStart(doc, pos);

int end = indexOfWordEnd(doc, pos + len);

char ch;

while (start end) {

ch = getCharAt(doc, start);

if (Character.isLetter(ch) || ch == '_') {

// 如果是以字母或者下划线开头, 说明是单词

// pos为处理后的最后一个下标

start = colouringWord(doc, start);

} else {

//SwingUtilities.invokeLater(new ColouringTask(doc, pos, wordEnd - pos, normalStyle));

++start;

}

}

}

public int colouringWord(StyledDocument doc, int pos) throws BadLocationException {

int wordEnd = indexOfWordEnd(doc, pos);

String word = doc.getText(pos, wordEnd - pos); // 要进行着色的单词

if (keywords.contains(word)) {

// 如果是关键字, 就进行关键字的着色, 否则使用普通的着色.

// 这里有一点要注意, 在insertUpdate和removeUpdate的方法调用的过程中, 不能修改doc的属性.

// 但我们又要达到能够修改doc的属性, 所以把此任务放到这个方法的外面去执行.

// 实现这一目的, 可以使用新线程, 但放到swing的事件队列里去处理更轻便一点.

SwingUtilities.invokeLater(new ColouringTask(doc, pos, wordEnd - pos, keywordStyle));

} else {

SwingUtilities.invokeLater(new ColouringTask(doc, pos, wordEnd - pos, normalStyle));

}

return wordEnd;

}

因为在insertUpdate和removeUpdate方法中不能修改document的属性, 所以着色的任务放到这两个方法外面, 所以使用了SwingUtilities.invokeLater来实现.

private class ColouringTask implements Runnable {

private StyledDocument doc;

private Style style;

private int pos;

private int len;

public ColouringTask(StyledDocument doc, int pos, int len, Style style) {

this.doc = doc;

this.pos = pos;

this.len = len;

this.style = style;

}

public void run() {

try {

// 这里就是对字符进行着色

doc.setCharacterAttributes(pos, len, style, true);

} catch (Exception e) {}

}

}

七: 源码

关键字着色的完成代码如下, 可以直接编译运行. 对于数字, 运算符, 字符串等的着色处理在以后的教程中会继续进行详解.

import java.awt.Color;

import java.util.HashSet;

import java.util.Set;

import javax.swing.JFrame;

import javax.swing.JTextPane;

import javax.swing.SwingUtilities;

import javax.swing.event.DocumentEvent;

import javax.swing.event.DocumentListener;

import javax.swing.text.BadLocationException;

import javax.swing.text.Document;

import javax.swing.text.Style;

import javax.swing.text.StyleConstants;

import javax.swing.text.StyledDocument;

public class HighlightKeywordsDemo {

public static void main(String[] args) {

JFrame frame = new JFrame();

JTextPane editor = new JTextPane();

editor.getDocument().addDocumentListener(new SyntaxHighlighter(editor));

frame.getContentPane().add(editor);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(500, 500);

frame.setVisible(true);

}

}

/**

* 当文本输入区的有字符插入或者删除时, 进行高亮.

*

* 要进行语法高亮, 文本输入组件的document要是styled document才行. 所以不要用JTextArea. 可以使用JTextPane.

*

* @author Biao

*

*/

class SyntaxHighlighter implements DocumentListener {

private SetString keywords;

private Style keywordStyle;

private Style normalStyle;

public SyntaxHighlighter(JTextPane editor) {

// 准备着色使用的样式

keywordStyle = ((StyledDocument) editor.getDocument()).addStyle("Keyword_Style", null);

normalStyle = ((StyledDocument) editor.getDocument()).addStyle("Keyword_Style", null);

StyleConstants.setForeground(keywordStyle, Color.RED);

StyleConstants.setForeground(normalStyle, Color.BLACK);

// 准备关键字

keywords = new HashSetString();

keywords.add("public");

keywords.add("protected");

keywords.add("private");

keywords.add("_int9");

keywords.add("float");

keywords.add("double");

}

public void colouring(StyledDocument doc, int pos, int len) throws BadLocationException {

// 取得插入或者删除后影响到的单词.

// 例如"public"在b后插入一个空格, 就变成了:"pub lic", 这时就有两个单词要处理:"pub"和"lic"

// 这时要取得的范围是pub中p前面的位置和lic中c后面的位置

int start = indexOfWordStart(doc, pos);

int end = indexOfWordEnd(doc, pos + len);

char ch;

while (start end) {

ch = getCharAt(doc, start);

if (Character.isLetter(ch) || ch == '_') {

// 如果是以字母或者下划线开头, 说明是单词

// pos为处理后的最后一个下标

start = colouringWord(doc, start);

} else {

SwingUtilities.invokeLater(new ColouringTask(doc, start, 1, normalStyle));

++start;

}

}

}

/**

* 对单词进行着色, 并返回单词结束的下标.

*

* @param doc

* @param pos

* @return

* @throws BadLocationException

*/

public int colouringWord(StyledDocument doc, int pos) throws BadLocationException {

int wordEnd = indexOfWordEnd(doc, pos);

String word = doc.getText(pos, wordEnd - pos);

if (keywords.contains(word)) {

// 如果是关键字, 就进行关键字的着色, 否则使用普通的着色.

// 这里有一点要注意, 在insertUpdate和removeUpdate的方法调用的过程中, 不能修改doc的属性.

// 但我们又要达到能够修改doc的属性, 所以把此任务放到这个方法的外面去执行.

// 实现这一目的, 可以使用新线程, 但放到swing的事件队列里去处理更轻便一点.

SwingUtilities.invokeLater(new ColouringTask(doc, pos, wordEnd - pos, keywordStyle));

} else {

SwingUtilities.invokeLater(new ColouringTask(doc, pos, wordEnd - pos, normalStyle));

}

return wordEnd;

}

/**

* 取得在文档中下标在pos处的字符.

*

* 如果pos为doc.getLength(), 返回的是一个文档的结束符, 不会抛出异常. 如果pos0, 则会抛出异常.

* 所以pos的有效值是[0, doc.getLength()]

*

* @param doc

* @param pos

* @return

* @throws BadLocationException

*/

public char getCharAt(Document doc, int pos) throws BadLocationException {

return doc.getText(pos, 1).charAt(0);

}

/**

* 取得下标为pos时, 它所在的单词开始的下标. ±wor^d± (^表示pos, ±表示开始或结束的下标)

*

* @param doc

* @param pos

* @return

* @throws BadLocationException

*/

public int indexOfWordStart(Document doc, int pos) throws BadLocationException {

// 从pos开始向前找到第一个非单词字符.

for (; pos 0 isWordCharacter(doc, pos - 1); --pos);

return pos;

}

/**

* 取得下标为pos时, 它所在的单词结束的下标. ±wor^d± (^表示pos, ±表示开始或结束的下标)

*

* @param doc

* @param pos

* @return

* @throws BadLocationException

*/

public int indexOfWordEnd(Document doc, int pos) throws BadLocationException {

// 从pos开始向前找到第一个非单词字符.

for (; isWordCharacter(doc, pos); ++pos);

return pos;

}

/**

* 如果一个字符是字母, 数字, 下划线, 则返回true.

*

* @param doc

* @param pos

* @return

* @throws BadLocationException

*/

public boolean isWordCharacter(Document doc, int pos) throws BadLocationException {

char ch = getCharAt(doc, pos);

if (Character.isLetter(ch) || Character.isDigit(ch) || ch == '_') { return true; }

return false;

}

@Override

public void changedUpdate(DocumentEvent e) {

}

@Override

public void insertUpdate(DocumentEvent e) {

try {

colouring((StyledDocument) e.getDocument(), e.getOffset(), e.getLength());

} catch (BadLocationException e1) {

e1.printStackTrace();

}

}

@Override

public void removeUpdate(DocumentEvent e) {

try {

// 因为删除后光标紧接着影响的单词两边, 所以长度就不需要了

colouring((StyledDocument) e.getDocument(), e.getOffset(), 0);

} catch (BadLocationException e1) {

e1.printStackTrace();

}

}

/**

* 完成着色任务

*

* @author Biao

*

*/

private class ColouringTask implements Runnable {

private StyledDocument doc;

private Style style;

private int pos;

private int len;

public ColouringTask(StyledDocument doc, int pos, int len, Style style) {

this.doc = doc;

this.pos = pos;

this.len = len;

this.style = style;

}

public void run() {

try {

// 这里就是对字符进行着色

doc.setCharacterAttributes(pos, len, style, true);

} catch (Exception e) {}

}

}

}

用java做一个代码编辑器,怎么做语法高亮

java做一个代码编辑器,怎么做语法高亮, 语言高亮都是用html标签来实现, 通常是匹配关键字, 然后替换成带html的标签再格式化

小白如何学习Java?

首先零基础的你要了解什么是Java?有哪些优势?

1995年,Oak语言更名为Java语言(以下简称为Java)。Java的取名有一个趣闻:据说有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡。有一个人灵机一动,说就叫Java,并得到了其他人的赞赏。于是,Java这个名字就这样传开了。

Java应用如此广泛是因为Java具有多方面的优势。其特点如下:

(1)面向对象。Java自诞生之时就被设计成面向对象的语言,而C++语言是一种强制面向对象的语言。面向对象可以说是Java最重要的特性,它不支持类似C语言那样的面向过程的程序设计技术。Java支持静态和动态风格的代码重用。

(2)跨平台。对于Java程序,不管是Windows平台还是UNIX平台或是其他平台,它都适用。Java编辑器把Java源程序编译成与体系结构无关的字节码指令,只要安装了Java运行系统,Java程序就可在任意的处理器上运行。这些字节码指令由Java虚拟机来执行,Java虚拟机的解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。

(3)直接支持分布式的网络应用。除了支持基本的语言功能,Java核心类库还包括一个支持HTTP、SMTP和FTP等基于TCP/IP协议的类库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。在Java出现以前,为分布式环境尤其是Internet提供动态的内容无疑是一项非常宏伟、难以想象的任务,但Java的语言特性却使我们很容易地达到了这个目标。

(4)安全性和健壮性。Java致力于检查程序在编译和运行时的错误,类型检查帮助检查出许多开发早期出现的错误。Java支持自动内存管理,这不但让程序员减轻了许多负担,也减少了程序员犯错的机会。Java自己操纵内存减少了内存出错的可能性。Java还能够检测数组边界,避免了覆盖数据的可能。在Java语言里,指针和释放内存等功能均被抛弃,从而避免了非法内存操作的危险。

接下来就看一下java的学习路线以及学习方法吧!

首先是学习路线:

第一阶段JavaEE基础:Java基础语法、面向对象、核心类库、集合、异常、IO、线程、JDK新特性

第二阶段JavaWeb开发:前端技术、数据库、JAVA数据库操作、软件服务器及服务器相关技术、动态网页JSP、AJAX

第三阶段Java高级框架:SpringMVC、MyBatis、Spring、MySQL高级、LinuxRedisNginx、Maven、中公MIS权限系统

第四阶段大型微服务分布式项目实战:SpringBoot、SpringCloud、Git、Dubbo、Zookeeper、AngularJS、Spring Security、BCrypt加密、FastDFS、分布式事务处理、Redis Cluster、Solr、SolrCloud、MongoDB简介、MyCat、Docker、Jenkins、大型电商实战、百战商城等

第五阶段项目设计分析:医疗管理项目

其次是java学习方法:

第一步:对于Java的基本认知

很多同学刚刚入门学习java,看书,或者看视频。这个阶段是积累理论知识的时候,相对比较容易,一个小知识点,信息量少,跟着老师的思路走就可以。

Java零基础入门视频教程推荐:

Java300集零基础适合初学者视频教程_Java300集零基础教程_Java初学入门视频基础巩固教程

本套课程是由高淇老师开讲的Java300集! 为初学者而著! 适合准备入行开发的零基础员学习Java。基于最新JDK13、IDEA平台讲解的,视频中穿插多个实战项目。每一个知识点都讲解的通俗易懂,由浅入深。不仅适用于零基础的初学者,有经验的程序员也可做巩固学习。

在这个阶段,很多同学学得很快,感觉编程好简单。

随着学习的深入,大多数同学会产生混乱。 为什么? 所有的技术背后都有原理,前面都有应用场景,不同应用场景有不同使用方法。 信息量逐级增加。

信息量逐级增大后,会有什么问题?

学到后面忘记前面。

新技术不断出现,感觉永远学不完。 丧失兴趣或信心。

第二步:理论知识学习

这一过程尤为重要,毕竟这是学习Java的关键,而且,这一过程对于系统化的要求更高,如何循序渐进,有方式有目的的学习,将是小白更加快速的学懂Java的关键。

理论知识阶段,更重要的是理解原理和规律, 知识点的细节记不住可后面查找。学习方法更重要的是 交流讨论,理解和总结。 多问为什么是关键!

第三步、真实实训项目、培养实操能力

一个项目从0到1的过程才是最宝贵的,也是初学者提升最大的部分。 但从书本或者视频中,很难学习这个过程。

技术的应用能力换句话说是 技术的分解排序能力, 当遇到一个需求,该如下实现?

基本的思路是 把需求分解成原子操作。 原子操作代表开发当中的基本操作,也就是在知识点当中学到的,比如数据库操作,sql,框架的基本使用等等。

如果能把需求分解为原子操作序列,开发完成只是时间快慢的问题。往往刚刚开始学习编程的同学,不善于或者懒得去思考。毕竟看视频是被动的,分析问题是主动思考。学习只是看看视频,本质上是思考的懒惰。

所以需要找大量的练习和项目案例进行实践!!!

生命是无止境的,学习不止,每天都“强迫”自己取得一点进步。随着时间的流逝,成就将不可避免地出现。

零基础怎么学好java编程?

零基础怎么学好java编程?怎样才能入足编程领域,本文为大家带来进入IT行业有四五年,见了不少新人,面试了不少新人,也带了一些新人的老司机给的建议。一、关于书籍新人们常常会说我看了多少多少的书,看过某某人写的书,仿佛书看的多懂得也就多了。其实不然,很多新人在面试的时候夸夸其谈,说啥啥都知道一点,到真正做的时候,啥都不会。归根到底是没有经验,技术这玩意儿经验非常重要,很多东西如果不是你碰到了,看那么多书也找不到答案。我看书的习惯一般都是先把整个书翻翻,了解一下书的基本内容,然后在实际项目中遇到相应的问题再去翻书,当然这是因为我对技术已经有一定的了解,不需要通读整本书。初学者应该找一些适合自己的书,通读一遍,其中的例子要认真做,一定要自己去写代码,而不是Copy。我以前在学做网页的时候,别人都用Dreamweaver去做,只有我打开源代码编辑器学习HTML源代码的编写。做完书的例子只能说明你已经懂得了一些皮毛。永远不要认为书本能给你带来多少东西,虽然它们很有用,但它们只是一个Key,一个引你入门的Key。我买的技术书中,最多的是VB.Net,但这却是我最烂的一门技术。而我用得比较好的Delphi、SqlServer、Photoshop、CoreDRAW、CSS、HTML、Java、Xslt、Xml,我几乎没有买书,但因为实际的项目需要,或者是我个人的兴趣爱好。当然,我并不是反对你去买书,去读书,我只是想告诉你,你需要有一种平和的心态。但你要记住,书本只是一个Key。关于基础现在很多新人们都是好高骛远,目空一切,基础的东西不想做,难一点的东西又做不了,真的很令人头疼。其实技术人员,尤其是中国技术人员,你要懂的东西太多太多了。我们拿Web程序员举例吧,HTML、Java、CSS、Photoshop切图,这些都是很基础的东西,但很多人就是不愿意去学,认为这些东西太低级,甚至有些老程序员也不擅长这些。但我要告诉你,在Web开发中,这些都很重要,尤其是CSS和HTML、Java,如果你不是做一个OA之类办公的Web系统的话,这些在网站用得太多太多了,是一些Web应用的基础,所以一定要打好基础,当你会在记事本编辑这些代码的时候,恭喜你,你过关了。报名昆明北大青鸟8月Java免费训练营课程,不论你是0基础还是转行,都有大牛老师手把手教你学习最新热门技术,找一份自己满意的高薪工作。PS:还有疑问可以咨询QQ:1229718872问达妹哦~感谢大家阅读由java问答分享的“零基础怎么学好java编程?”希望对大家有所帮助,了解更多专业课程培训内容请关注昆明北大青鸟java培训机构官网。免责声明:以上内容仅作为信息传播,文中部分信息来源于互联网,仅供阅读参考。


网站名称:java代码编辑器教程,Java代码编辑器
网页路径:http://azwzsj.com/article/dsejjci.html