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

发布时间:2022-11-19

本文目录一览:

  1. 北大青鸟java培训:提高代码阅读能力的技巧有哪些?
  2. JAVA如何阅读代码更高效?
  3. 如何阅读一个Java项
  4. 怎么看懂java代码?
  5. 如何学习java!

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

对于学习软件开发的人来说,学会阅读源代码是非常重要的,然而很多人并不具备阅读源代码的能力。 很多人不喜欢阅读源代码,认为这是非常无聊的事情。 如果不会阅读源代码,对于后面写代码是非常困难的,很多开发人员主要把重心放在写代码上,反而忽略代码的阅读。 阅读代码是非常关键的,下面甘肃电脑培训为大家介绍阅读代码的技巧。

  1. 学会运行代码
    运行代码是阅读代码的第一步,这样能够了解关于项目的很多细节,并且了解怎么进行运行,掌握库的使用方法。
    这样是了解一个项目最好的方法,如果能够自己了解和编写相关的项目,这样对于使用框架和库会有自己的想法。
  2. 找到高层次的逻辑
    当您开始阅读项目的代码时,会涉及到每个细节。相反的,你还需要掌握高层次结构,从这个地方找到入口点,在很多大型项目开发中都可以使用这种方法。
    如果是进行web程序开发,那么甘肃IT培训建议应该查看不同的包,例如存储业务逻辑的位置,存储UI代码的位置,控制器所在的位置等等。
  3. 了解和使用工具
    很多工具都可以有助于源代码阅读,并且对可视化代码有很大的帮助。在使用过程中,甘肃IT培训认为IntelliJ IDEA工具能够导航源代码,允许使用单词的一部分,甚至单词的缩写进行搜索。
    您还应该学习键盘的快捷键。使用鼠标导航源代码可能会非常无聊和缓慢,键盘快捷键可以更快的进行跳转。
  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下,\r\n这两个字符在一起时,表示一个换行。
                //但如果这两个字符分开显示时,会换两次行。
                //因此,屏蔽掉\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; i<charread; 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. 教教你怎么看源代码吧
  11. 这是什么项目的源代码?(再没有文档这个总是有的吧?哪怕是个代号)
  12. 这个项目的性质(B/S还是C/S,用的什么编程语言,用的行业细分,规模)
  13. 源代码的规模有多少行(其中有多少行是注释),总共有多少个文件(每一类文件分别有多少个,每个文件是多少行)如果是面向对象的,有多少个class,如果是面向过程的有多少个function
  14. 功能的详细整理功能列表函数名 功能 功能描述(没有注释不要紧,函数名总是有的吧,功能你认为是什么就填什么)
  15. 功能模块之间的关系(哪怕没有注释,按名称,调用关系一定能整理清楚) 如果你把我上面列的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教学视频,从基础到高级的都有,还挺不错的,知识点讲的很细致,还有完整版的学习路线图。也可以自己去看看,下载学习试试。