如何在java程序中获取当前程序所在的目录?
Properties properties = System.getProperties();
System.out.println(properties.getProperty("user.dir"));
Java文件输出路径选着?
代码
eclipse运行输出为:因为eclipse中,classpath的默认位置为本项目的编译路径(java项目是{project_home}\bin,maven项目是{project_home}\target\classes)。上述测试项目的路径为: F:\WIN_project\JarTs,故classpath输出路径为F:\WIN_project\JarTs\bin。-----------------------------------------------------------------------------------------------------------------------------------------运行cmd,进入 F:\WIN_project\JarTs\bin在第一个输出结果可以看到,java.class.path2是没有输出的。-----------------------------------------------------------------------------------------------------------------------------------------将该项目打成可运行的jar后,使用解压工具打开,打开META-INF\MANIFEST.MF文件。classpath为./,因此输出的结果跟上述在cmd运行的第一个输出一样。表达水平有限,望见谅。java的学习路径是怎样的?有没有推荐的书?
最近面试了20+的人,有实习生也有社招,虽然我自己也不是什么大牛,但是还是愿意分享一下我自己的看书思路,希望能够给看到的同学做一个参考。
我会大概按照模块分一下这些书的类别,我看过的可能会有一些个人评价,没看过的说一下我自己的想法。也会有一些我觉得没啥用的书,放上来也会让大家少花点钱。
一. java语法基础:
java基础的书其实挺多的,作为一本入门的数,我个人推荐两本:
《java核心技术卷一·基础知识》
这本书我看的是第八版,目前出到了第十版,建议买最新的看。个人建议看到 第7章 图形程序设计 之前即可,外加集合这一章,基本就够了。看的时候一定要在电脑上把树上的代码敲一遍,我觉得作为入门的书还是很合适的。
《疯狂java讲义》
这本书我是在书店翻过一次,看了目录觉得基本知识都还了解,就没买,不过这本书网上评价不错,个人感觉和目前的互联网圈子更接近一些,也可以买来做个参考。
二.java web相关
java web说白了就是那几个有名的框架,大致说一下我个人的看法
《SpringMVC入门指南》
我买的是第一版,绿色的外皮,截图是第二版。这本书我个人觉得非常适合入门,讲的比较浅又很偏重实际,美中不足是技术有些老,花了好大的篇幅讲JSTL那些东西,这个有点忧伤,不过还是比较推荐的。
《Spring实战》
这本书买过,看过几次,感觉领会不多,可能国内外互联网的思路真的不一样吧,我个人是不怎么推荐这本书的,读了几次都没有读到有用的东西。
《看透SpringMVC 源代码分析与实践》
这本书咋说呢,说深不深,说浅不浅,每个点都提了提,每个点讲的又不深入,探究源码的部分,讲的又不是很细致,总得来说读了一部分还是有收获的,可买可不买的一本书。
Spring Cloud,Spring Boot 这两本基本大家都在看,我也跟风买了一下,如果项目在用的话,可以买来参考一下,如果单纯自己学习的话,个人感觉意义不是很大。都是白皮的,不放图了。
所有SSM/SSH整合开发的书,一概不要买,90%都是坑,没必要花时间去碰那10%,毕竟好书这么多。
三.数据结构
数据结构一直都是大家觉得很难的一个点,基本上从初级到资深,没谁说自己数据结构学的门清。我买过的书如下:
《数据结构与算法分析 C/JAVA 语言描述》《大话数据结构》放一起说吧,说实话我的数据结构学的是非常渣的,这三本书说真的,没怎么看下去,数据结构的知识基本都是看博客东拼西凑来的。个人觉得如果学的话,还是看《数据结构与算法分析》这本书吧,建议在上学学习数据结构的时候或者工作一年以后看。
四.设计模式
买了《大话设计模式》《图解设计模式:java语言描述》,其实学习设计模式,我个人感觉大话设计模式这本书讲的真的很不错,之所以再买一本图解设计模式,主要是为了看看java语言的实现,因为大话设计模式用的是C++还是C#忘了,反正不是java实现的。图解设计模式还没空看,不太好评价。
五.并发编程
《java并发编程实战》《java并发编程的艺术》
这两本书对我影响很大,强烈推荐,分开说一下。《实战》更偏重思想和手段,我觉得其中对竞技条件的描述真的是十分的透彻,为了这两三章内容,就值得买这本书,何况书中介绍的一些解决并发问题方法都是十分经典的。《艺术》这本书更偏重并发包实现原理,会详细的介绍java并发包的实现原理,对于深入理解java编程的思想我个人觉得很有帮助。
五.JVM
JVM只推荐一本《深入理解java虚拟机》,工作前两年基本够看。
六.数据库
数据库其实没啥好说的,提一下《高性能Mysql》这本书吧,巨贵,类似于词典的作用,对于提高sql能力没啥快速的帮助,但是有助于在长时间里培养对数据库使用的规范。最重要的是可以对一些模糊的概念有一个标准的回答。
其实书还买过很多,时间关系今天写不完了,有人看我就继续第二期