您的位置:

如何阅读java,如何阅读一本书在线阅读

本文目录一览:

北大青鸟java培训:提高代码阅读能力的技巧有哪些?

对于学习软件开发的人来说,学会阅读源代码是非常重要的,然而很多人并不具备阅读源代码的能力。

很多人不喜欢阅读源代码,认为这是非常无聊的事情。

如果不会阅读源代码,对于后面写代码是非常困难的,很多开发人员主要把重心放在写代码上,反而忽略代码的阅读。

阅读代码是非常关键的,下面甘肃电脑培训为大家介绍阅读代码的技巧。

1、学会运行代码运行代码是阅读代码的第一步,这样能够了解关于项目的很多细节,并且了解怎么进行运行,掌握库的使用方法。

这样是了解一个项目最好的方法,如果能够自己了解和编写相关的项目,这样对于使用框架和库会有自己的想法。

2、找到高层次的逻辑当您开始阅读项目的代码时,会涉及到每个细节。

相反的,你还需要掌握高层次结构,从这个地方找到入口点,在很多大型项目开发中都可以使用这种方法。

如果是进行web程序开发,那么甘肃IT培训建议应该查看不同的包,例如存储业务逻辑的位置,存储UI代码的位置,控制器所在的位置等等。

3、了解和使用工具很多工具都可以有助于源代码阅读,并且对可视化代码有很大的帮助。

在使用过程中,甘肃IT培训认为IntelliJIdea工具能够导航源代码,允许使用单词的一部分,甚至单词的缩写进行搜索。

您还应该学习键盘的快捷键。

使用鼠标导航源代码可能会非常无聊和缓慢,键盘快捷键可以更快的进行跳转。

4、了解语言更深入地了解特定语言有助于提高您的代码阅读技能。

每种语言都有自己的约定,样式和语法。

这些知识可以帮助您快速熟悉特定代码。

其中甘肃电脑培训发现在Java语言中,方法名称以小写字母开头,而在C#语言中,方法名称以大写字母开头。

了解这种差异可以帮助你从源代码中找到识别方法。

JAVA如何阅读代码更高效?

个人经验,

读文件有4种方法,

1 按行读

2 按规定大小字节读

3 按流读

4 随机读取文件

我认为第3种是最好的,而且他是通吃的,

下面是我从网上找来的,你看看有用吗?

====================================

前两天用到读写文件的操作,上网搜了一些这方面的资料。很有用的。

java中多种方式读文件

一、多种方式读文件内容。

1、按字节读取文件内容

2、按字符读取文件内容

3、按行读取文件内容

4、随机读取文件内容

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.RandomAccessFile;

import java.io.Reader;

public class ReadFromFile {

/**

* 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。

* @param fileName 文件的名

*/

public static void readFileByBytes(String fileName){

File file = new File(fileName);

InputStream in = null;

try {

System.out.println("以字节为单位读取文件内容,一次读一个字节:");

// 一次读一个字节

in = new FileInputStream(file);

int tempbyte;

while((tempbyte=in.read()) != -1){

System.out.write(tempbyte);

}

in.close();

} catch (IOException e) {

e.printStackTrace();

return;

}

try {

System.out.println("以字节为单位读取文件内容,一次读多个字节:");

//一次读多个字节

byte[] tempbytes = new byte[100];

int byteread = 0;

in = new FileInputStream(fileName);

ReadFromFile.showAvailableBytes(in);

//读入多个字节到字节数组中,byteread为一次读入的字节数

while ((byteread = in.read(tempbytes)) != -1){

System.out.write(tempbytes, 0, byteread);

}

} catch (Exception e1) {

e1.printStackTrace();

} finally {

if (in != null){

try {

in.close();

} catch (IOException e1) {

}

}

}

}

/**

* 以字符为单位读取文件,常用于读文本,数字等类型的文件

* @param fileName 文件名

*/

public static void readFileByChars(String fileName){

File file = new File(fileName);

Reader reader = null;

try {

System.out.println("以字符为单位读取文件内容,一次读一个字节:");

// 一次读一个字符

reader = new InputStreamReader(new FileInputStream(file));

int tempchar;

while ((tempchar = reader.read()) != -1){

//对于windows下,rn这两个字符在一起时,表示一个换行。

//但如果这两个字符分开显示时,会换两次行。

//因此,屏蔽掉r,或者屏蔽n。否则,将会多出很多空行。

if (((char)tempchar) != 'r'){

System.out.print((char)tempchar);

}

}

reader.close();

} catch (Exception e) {

e.printStackTrace();

}

try {

System.out.println("以字符为单位读取文件内容,一次读多个字节:");

//一次读多个字符

char[] tempchars = new char[30];

int charread = 0;

reader = new InputStreamReader(new FileInputStream(fileName));

//读入多个字符到字符数组中,charread为一次读取字符数

while ((charread = reader.read(tempchars))!=-1){

//同样屏蔽掉r不显示

if ((charread == tempchars.length)(tempchars[tempchars.length-1] != 'r')){

System.out.print(tempchars);

}else{

for (int i=0; icharread; i++){

if(tempchars[i] == 'r'){

continue;

}else{

System.out.print(tempchars[i]);

}

}

}

}

} catch (Exception e1) {

e1.printStackTrace();

}finally {

if (reader != null){

try {

reader.close();

} catch (IOException e1) {

}

}

}

}

/**

* 以行为单位读取文件,常用于读面向行的格式化文件

* @param fileName 文件名

*/

public static void readFileByLines(String fileName){

File file = new File(fileName);

BufferedReader reader = null;

try {

System.out.println("以行为单位读取文件内容,一次读一整行:");

reader = new BufferedReader(new FileReader(file));

String tempString = null;

int line = 1;

//一次读入一行,直到读入null为文件结束

while ((tempString = reader.readLine()) != null){

//显示行号

System.out.println("line " + line + ": " + tempString);

line++;

}

reader.close();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (reader != null){

try {

reader.close();

} catch (IOException e1) {

}

}

}

}

/**

* 随机读取文件内容

* @param fileName 文件名

*/

public static void readFileByRandomAccess(String fileName){

RandomAccessFile randomFile = null;

try {

System.out.println("随机读取一段文件内容:");

// 打开一个随机访问文件流,按只读方式

randomFile = new RandomAccessFile(fileName, "r");

// 文件长度,字节数

long fileLength = randomFile.length();

// 读文件的起始位置

int beginIndex = (fileLength 4) ? 4 : 0;

//将读文件的开始位置移到beginIndex位置。

randomFile.seek(beginIndex);

byte[] bytes = new byte[10];

int byteread = 0;

//一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。

//将一次读取的字节数赋给byteread

while ((byteread = randomFile.read(bytes)) != -1){

System.out.write(bytes, 0, byteread);

}

} catch (IOException e){

e.printStackTrace();

} finally {

if (randomFile != null){

try {

randomFile.close();

} catch (IOException e1) {

}

}

}

}

/**

* 显示输入流中还剩的字节数

* @param in

*/

private static void showAvailableBytes(InputStream in){

try {

System.out.println("当前字节输入流中的字节数为:" + in.available());

} catch (IOException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

String fileName = "C:/temp/newTemp.txt";

ReadFromFile.readFileByBytes(fileName);

ReadFromFile.readFileByChars(fileName);

ReadFromFile.readFileByLines(fileName);

ReadFromFile.readFileByRandomAccess(fileName);

}

}

二、将内容追加到文件尾部

import java.io.FileWriter;

import java.io.IOException;

import java.io.RandomAccessFile;

/**

* 将内容追加到文件尾部

*/

public class AppendToFile {

/**

* A方法追加文件:使用RandomAccessFile

* @param fileName 文件名

* @param content 追加的内容

*/

public static void appendMethodA(String fileName,String content){

try {

// 打开一个随机访问文件流,按读写方式

RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");

// 文件长度,字节数

long fileLength = randomFile.length();

//将写文件指针移到文件尾。

randomFile.seek(fileLength);

randomFile.writeBytes(content);

randomFile.close();

} catch (IOException e){

e.printStackTrace();

}

}

/**

* B方法追加文件:使用FileWriter

* @param fileName

* @param content

*/

public static void appendMethodB(String fileName, String content){

try {

//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件

FileWriter writer = new FileWriter(fileName, true);

writer.write(content);

writer.close();

} catch (IOException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

String fileName = "C:/temp/newTemp.txt";

String content = "new append!";

//按方法A追加文件

AppendToFile.appendMethodA(fileName, content);

AppendToFile.appendMethodA(fileName, "append end. n");

//显示文件内容

ReadFromFile.readFileByLines(fileName);

//按方法B追加文件

AppendToFile.appendMethodB(fileName, content);

AppendToFile.appendMethodB(fileName, "append end. n");

//显示文件内容

ReadFromFile.readFileByLines(fileName);

}

}

-----------------------------------------------------------------------------------------------------------------------------------------------

写入文件

try{

FileWriter fw=new FileWriter(SystemConfig.getRealPath()+"WEB-INF/url.txt");

fw.write("movie"+name);

fw.close();

}catch(IOException e){

e.printStackTrace();

}

读文件中内容

try{

FileReader fr = null;

fr = new FileReader(SystemConfig.getRealPath()+"WEB-INF/url.txt");

BufferedReader br=new BufferedReader(fr);

String Line = null;

Line = br.readLine();

while(Line!=null){

s=Line;

Line=null;

br.close();

fr.close();

}

}catch(IOException e1){

e1.printStackTrace();

}

上传文件

try {

InputStream stream = getUpFile().getInputStream();//把文件读入

OutputStream bos = new FileOutputStream(filePath + "movie" +name);//建立一个上传文件的输出流

int bytesRead = 0;

byte[] buffer = new byte[1026];

while ( (bytesRead = stream.read(buffer, 0, 1026)) != -1) {

bos.write(buffer, 0, bytesRead);//将文件写入服务器

}

bos.close();

stream.close();

}catch(Exception e){

System.err.print(e);

}

如何阅读一个Java项

1、最好了解UML语言;

2、了解代码大致结构,再根据模块详细去看,效果会好一些。

3、每天敲上1千行。。就可以了。。。习惯了就好了。。。慢慢来。。。

比如说 你看书看累了 写个小程序放松下(一般别人是玩游戏放松)- -这样你就可以了解你要看的代码的功能和所用的框架技术,这样在熟悉的基础上就能得心应手了。

不过,我可不相信什么一天敲多少行的代码,你要有目的性的敲,有目的性的敲10行比没目的性的敲100行还有用。什么是有目的性的就要你自己去摸索了。

最后给你提醒下,千万不要相信什么好的程序员要敲几十万行或几百万行的代码,没用,都是屁话,你要有知识进去才有用。

如果对所看的领域不熟悉,可以试着分解项目,找出真正不懂的部分,对比以前的知识储备对比着看

先从整体着手。了解整体框架。再着眼每个细节。

4、先看整体结构,把握思路理解类的作用,然后有必要的话再琢磨细节。

5、先随便拿本java入门书看完,书上的例子照着做完,哪怕抄,要都能理解,然后开始去找例子,先从最小的例子开始看,然后自己写,然后自己加一些自己的想法,有了这些基础再去看别人写的例子,去了解别人的思想,然后转换成自己的,慢慢的你会进步非常的神速。

6、首先要使用帮助分析代码框架的工具,如VC中的class view。我认为这样至少可以减少初看长代码者的很多麻烦,方便熟悉代码的基本框架。

然后是要带着问题去看,借助上述对框架的理解就比较容易能找到一些感兴趣的代码段,此时就可以细细品位了。

7、阅读代码起初不是件容易的事,要先选点代码量不大且自己较能理解的代码来练习阅读能力。一开始就拿个LINUX内核那样的“天书”来,我相信不是每个凡人都能轻易看懂的。

8、学习 源代码

很是枯燥,我也看一些源代码,特别是一个一个文件的查看,最后,我发现,要想快速了解像jdk,tomcat,hibernate这样的源代码,必须得借助工具,首相从整体出发,了解整体框架,然后,在注重细节,我推荐使用Rose,powerdesign

或者source insight 都可以啊

9、先找到main函数,然后一个个接着看

10、教教你怎么看源代码吧

1.这是什么项目的源代码?

(再没有文档这个总是有的吧?哪怕是个代号)

2.这个项目的性质

(B/S还是C/S,用的什么编程语言,用的行业细分,规模)

3.源代码的规模

有多少行(其中有多少行是注释),总共有多少个文件(每一类文件分别有多少个,每个文件是多少行)

如果是面向对象的,有多少个class,如果是面向过程的有多少个function

4.功能的详细整理

功能列表

函数名 功能 功能描述

(没有注释不要紧,函数名总是有的吧,功能你认为是什么就填什么)

5.功能模块之间的关系

(哪怕没有注释,按名称,调用关系一定能整理清楚)

如果你把我上面列的5点搞清楚了,再来抱怨,我想应该是下面这个样子:

如果这个代码能够运行,你可以先让它运行起来,这样直观一些。

如果不能运行,我相信源码一定会在某种程度上告诉你这个源码是做什么的,哪怕没有任何文档和注释,相信我,一定比混淆后的代码容易看懂。

还有,这些源码调用的最基本的API都是有文档的。

例如不知道a是做什么的,但知道a调用了b,b调用了写文件的api,

你可以暂时这样理解,a做的某一件事就是调用b写文件。

等你对这些a,b,c之间的关系了解得越来越多之后,实现原理也就基本清楚了。

也有可能代码用了一个比较复杂的算法,并没有在旁边写上这个算法的名字(如果有名字,肯定是一个很大的帮助),碰巧这个算法你没有用过,这时你可以把这段程序的步骤用文字描述出来。

怎么看懂java代码?

想要看到都能java代码,需要了解编程的基础知识,变量,表达式,程序执行结构,逻辑判断等等。最重要是要学会如何调试代码,慢慢练习,熟练了自然就会了。

如何学习java!

第一阶段,Java SE基础:

Java环境搭建、Java流程控制语句-for循环、switch选择判断、循环嵌套、数组拷贝、多维数组、final关键字、构造函数的调用、类的访问权限和路径、面向对象高级特性、Java异常处理、Set,Map,List接口及接口实现类、Java线程、同步阻塞、JavaIO流、文件的操作,复制,读写,删除等。

第二阶段,JavaWeb:

MySQL安装、管理、创建数据库、MySQLUPDATE

查询、Mysql高级操作、JDBC、JDBC数据库连接操作,JDBC动态Sql处理、Servlet3.0 网页重定向、Servlet3.0

新增的注解支持、AJAX、responseText属性详解等。

第三阶段,Java高级框架-SSH:

Struts2异常处理、Struts2+Log4j集成、Struts2和JSON实例、Hibernate5、Hibernate集合映射、Hibernate组件映射、Spring4.0、SpringAOP+

AspectJ框架、Spring 与其它Web框架集成、Spring Hibernate支持等。

第四阶段,Java高级框架-SSM:

SpringMVC、Spring MVC生成JSON数据、MyBatis、MyBatis 环境配置及入门、Mybatis set标签、Mybatis trim标签、Shiro、Shiro快速入门教程、Shiro Web应用等。

第五阶段,SpringBoot+VUE全栈框架:

SpringBoot、全局异常处理、过滤器监听器、EHCache缓存、SpringBoot Quartz定时任务、Vue、Vue.js 安装、模板语法、计算属性、事件处理器、Vue.js 自定义指令、Vue.js 路由等

第六阶段,特色课程:

ActiveM环境搭建、生产者和消费者、消息持久化操作、RSA数字加密算法、Codebar条形码生成器、zxing二维码生成器、HighCharts统计图、Echarts统计图、网络播放器ckplayer、嵌入式网络播放器,可以浏览器和移动端随意使用

第七阶段,互联网框架的高级应用1:

分布式服务框架的理解,Dubbo架构设计详解及其核心要点,框架运行原理分析、SpringData数据访问、Lucene搜索引擎、Lucene的全文搜索服务器介绍、索引建立方式、Solr海量数据搜索引擎、Socket网络通信、实现RMI远程对象通讯、使用JMS消息服务、Kafka分布式消息系统、WebService与RestfulWS等

第八阶段,互联网框架的高级应用2:

Spring Security安全框架、实现Web应用安全控制、缓存应用与EhCache框架、OSCache与JBossCache框架、MyBatis与Hibernate缓存机制、NoSQL应用与SQL调优、MongoDB

NoSQL数据库、Redis内存数据库、实现RedisSession共享、SQL语句的优化、实现数据库读写分离、WEB应用集群及性能优化、Maven项目管理工具、Web服务器负载均衡、实现Nginx与Tomcat集群、使用LoadRunner测试工具、性能优化之内存调优、代码优化与重构的方法等。

对java有兴趣的小伙伴们,不妨先从java入门开始!B站上有很多的java教学视频,从基础到高级的都有,还挺不错的,知识点讲的很细致,还有完整版的学习路线图。也可以自己去看看,下载学习试试。