免费网站java源码大全,如何编写一个JAVA程序?
我是一个刚刚自学完java的应届生,外界人称科班出身学好java和写好java代码首先要理解面向对象的编程思想,什么是面向对象呢?
在我理解,面向对象是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想。任何物体都可以归为一类事物,而每一个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动,所以程序=对象+消息。 面向对象有三大特性,封装、继承和多态。
想要写好java代码就必须理解面向对象的思想,用思想指导你去解决实际问题。
封装继承多态这三大特性一定要灵活使用,要尽可能的用到你的每一段代码中去提高代码的复用性。举个简单的例子来说:您在一个地方需要输出一个数组,你可能直接就在那儿写了一个for循环。回头想想你是否可以抽一个方法传入一个数组对象,让这个方法进行打印呢?你在其他地方用到数组的打印时候直接调用这个方法即可。
其次在java中有好多的设计模式,在学习的过程中要注重她它的思想,为什么要这样做,如果不这样我做该如何去解决这一类问题?只有把这些都搞明白了,才算是学会了设计模式,而不是简单的把它背出来。
最后:在开始写代码之前不妨把你的思路先写出来,然后按照这个思路去一步一步的敲代码,养成良好的编码习惯(注释、缩进等)和代码风格(命名见名知意),让他人容易看懂。
想想你以后学好了的薪资,这也是你的动力源泉。
想学java的,或者是正在学习java的,可以先关注我,后期给大家发一些学习的资料和视频。
应该从什么地方开始看起?
如果你是初学的java萌新,那么我建议你应该先从javaSE学起。牢牢掌握Java基本语法,多看点教学视频,多做点练习。之后再慢慢进阶web和框架的学习。你可以试试手机微信关注:校猿码。里面有大量的免费教学视频和项目源码,你可以先跟着视频学习,然后自己动手去跟着做这些项目。一段时间下来我相信你一定会有很大的进步的!~
如何使用Java代码访问HDFSdocx?
1 : 上传本地文件到HDFS
@Test
public void testUpload() throws Exception {
Configuration conf = new Configuration();
//默认值,可以不设置
conf.set("dfs.blocksize", "128m");
// 1.先获取一个访问HDFS的客户端对象
// 参数1:URI-hdfs集群的访问地址 参数2:客户端需要携带的参数对象 参数3:指明客户端的身份
FileSystem fs = FileSystem.get(new URI("hdfs://marshal:9000"), conf, "root");
//fs的copyFromLocalFile()方法上传文件
//ziliao.docx为给文件重命名
fs.copyFromLocalFile(new Path("G:/a.docx"), new Path("/ziliao.docx"));
//关闭资源
fs.close();
}
上传结果:
2 : 创建目录
/**
* 测试创建目录
* @throws Exception
*/
@Test
public void testMkdir() throws Exception {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://marshal:9000"), conf, "root");
//创建一个目录,aaa下面的bbb
fs.mkdirs(new Path("/aaa/bbb"));
fs.close();
}
创建结果:
3 : 下载文件到本地
方法一:
下载操作,会涉及到客户端本地系统的访问,hadoop为本地访问专门封装了本地平台库(C语言)
具体做法:将本地库解压到任意位置,并将解压目录配置到HADOOP_HOME环境变量中
/**
* 测试下载文件
* 具体做法:将本地库解压到任意位置,并将解压目录配置到HADOOP_HOME环境变量中
* @throws Exception
*/
@Test
public void testDownLoad() throws Exception {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://marshal:9000"), conf, "root");
fs.copyToLocalFile(new Path("/ziliao.docx"), new Path("E:/"));
fs.close();
}
下载结果:
方法二 : 此方法不需要hadoop本地C语言库
/**
* 测试下载文件
* @throws Exception
*/
@Test
public void testDownLoad() throws Exception {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://marshal:9000"), conf, "root");
//方法一:使用hadoop本地C语言库
//具体做法:将本地库解压到任意位置,并将解压目录配置到HADOOP_HOME环境变量中
//fs.copyToLocalFile(new Path("/ziliao.docx"), new Path("E:/"));
//方法二:使用java类库 第一个参数为是否是否删除源.中间俩个参数为路径,最后一个参数useRawLocalFileSystem为是用本地java库
fs.copyToLocalFile(false, new Path("/ziliao.docx"), new Path("E:/"), true);
fs.close();
}
下载结果:
4 : 删除文件
/**
* 测试删除
* @throws Exception
*/
@Test
public void testRm() throws Exception {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://marshal:9000"), conf, "root");
//参数一:要删除的路径. 参数二:是否递归
fs.delete(new Path("/aaa"), true);
fs.close();
}
删除之前:
删除之后:
5 : 移动或重命名文件或文件夹
/**
* 测试移动或重命名文件或文件夹
* @throws Exception
*/
@Test
public void testMv() throws Exception {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://marshal:9000"), conf, "root");
//第一个参数为原文件名或路径,第二个参数为修改的文件名或路径
fs.rename(new Path("/ziliao.docx"), new Path("/haha.docx"));
fs.close();
}
重命名之前:
重命名之后:
6 : 判断文件或文件夹是否存在
代码;
/**
* 判断文件是否存在
* @throws Exception
*/
@Test
public void testIfExist() throws Exception {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://marshal:9000"), conf, "root");
boolean exists = fs.exists(new Path("/aaa"));
System.out.println(exists);
fs.close();
}
文件 :
判断结果 : 不存在
7 : 判断一个路径是否为文件
/**
* 判断文件或文件夹是否存在
* @throws Exception
*/
@Test
public void testIfExist() throws Exception {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://marshal:9000"), conf, "root");
//boolean exists = fs.exists(new Path("/aaa"));
boolean isfile = fs.isFile(new Path("haha.docx"));
//System.out.println(exists);
System.out.println(isfile);
fs.close();
}
8 : 查看文件目录,仅显示文件信息
/**
* 查看文件目录
* @throws IOException
* @throws InterruptedException
* @throws URISyntaxException
*/
@Test
public void testLs1() throws IOException, InterruptedException, URISyntaxException {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://marshal:9000/"), conf, "root");
// 思考:为何返回迭代器?
RemoteIterator<LocatedFileStatus> iterator = fs.listFiles(new Path("/"), true);
while(iterator.hasNext()) {
LocatedFileStatus file = iterator.next();
System.out.println("文件的所属组:" + file.getGroup());
System.out.println("文件的所有者:" + file.getOwner());
System.out.println("文件的访问时间:" + file.getAccessTime());
System.out.println("文件的块大小:" + file.getBlockSize());
System.out.println("文件的总长度:" + file.getLen());
System.out.println("文件的修改时间:" + file.getModificationTime());
System.out.println("文件的副本数:" + file.getReplication());
System.out.println("文件的路径:" + file.getPath());
System.out.println("文件的权限:" + file.getPermission());
BlockLocation[] blockLocations = file.getBlockLocations();
System.out.println("文件的块位置信息---------------------------");
for (BlockLocation blk : blockLocations) {
System.out.println("块长度:" + blk.getLength());
System.out.println("块在文件中的起始偏移量:" + blk.getOffset());
System.out.println("块所在的datanode主机:" + Arrays.toString(blk.getHosts()));
}
System.out.println("文件的块位置信息---------------------------");
}
}
文件如下 :
运行结果:
文件的所属组:supergroup
文件的所有者:root
文件的访问时间:1532698212551
文件的块大小:134217728
文件的总长度:729927107
文件的修改时间:1532698346956
文件的副本数:3
文件的路径:hdfs://marshal:9000/aaa/bbb/ideaIU-2018.1.6.win.zip
文件的权限:rw-r--r--
文件的块位置信息---------------------------
块长度:134217728
块在文件中的起始偏移量:0
块所在的datanode主机:[marshal002, marshal001, marshal]
块长度:134217728
块在文件中的起始偏移量:134217728
块所在的datanode主机:[marshal001, marshal002, marshal]
块长度:134217728
块在文件中的起始偏移量:268435456
块所在的datanode主机:[marshal002, marshal001, marshal]
块长度:134217728
块在文件中的起始偏移量:402653184
块所在的datanode主机:[marshal002, marshal001, marshal]
块长度:134217728
块在文件中的起始偏移量:536870912
块所在的datanode主机:[marshal002, marshal003, marshal]
块长度:58838467
块在文件中的起始偏移量:671088640
块所在的datanode主机:[marshal001, marshal003, marshal]
文件的块位置信息---------------------------
文件的所属组:supergroup
文件的所有者:root
文件的访问时间:1532687744326
文件的块大小:134217728
文件的总长度:1622342
文件的修改时间:1532681955786
文件的副本数:3
文件的路径:hdfs://marshal:9000/haha.docx
文件的权限:rw-r--r--
文件的块位置信息---------------------------
块长度:1622342
块在文件中的起始偏移量:0
块所在的datanode主机:[marshal, marshal001, marshal003]
文件的块位置信息---------------------------
文件的所属组:supergroup
文件的所有者:root
文件的访问时间:1532684863581
文件的块大小:134217728
文件的总长度:139
文件的修改时间:1532511577743
文件的副本数:3
文件的路径:hdfs://marshal:9000/hdfs-mgmt.sh
文件的权限:rw-r--r--
文件的块位置信息---------------------------
块长度:139
块在文件中的起始偏移量:0
块所在的datanode主机:[marshal002, marshal001, marshal003]
文件的块位置信息---------------------------
9 : 查看文件目录,显示文件以及文件夹信息
/**
* 查看文件目录,显示文件和文件夹信息
* @throws IOException
* @throws InterruptedException
* @throws URISyntaxException
*/
public void testLs2() throws IOException, InterruptedException, URISyntaxException {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://cts01:9000/"), conf, "root");
// 思考:为何返回数组?
FileStatus[] listStatus = fs.listStatus(new Path("/"));
for (FileStatus f : listStatus) {
System.out.println(f.getPath());
}
fs.close();
}
运行结果 :
hdfs://marshal:9000/aaa
hdfs://marshal:9000/haha.docx
hdfs://marshal:9000/hdfs-mgmt.sh
我刚学java几个月?
适合初学者的网站这个就比较多了,现在的IT教程资料到处都是,尤其的对应初学者的学习视频许多视频网站都有。培训机构本身也在逐渐走向开源,好多学习资料都会发到网上平台供大家学习,下边我就推荐几个比较不错的平台大家可以进行学习。
01.B站B站现在可谓是比较火的一个学习平台了在上边我们几乎可以搜索到任何有关IT学习的视频资料。
02.腾讯课堂腾讯课堂是比较早期的一个学习的地方,是腾讯系列产品,内容丰富,但是有部分是要收费才可以进行学习的。
03.网易云课堂这是一个资源非常丰富的在线学习网站,提供了大量优质的在线资源。
04.谷粒学院谷粒学院IT课程在线学习平台。谷粒学院会同多个知名开发团队联合制定的Java、前端、大数据、Python、Linux运维等课程,致力于打造业界更适合自学、代码量大、案例多、实战性强、技术贴合企业的IT在线学习平台!
05.51cto专业IT技能在线培训平台:拥有系统/运维,云计算,大数据,Web开发,编程语言,软件研发,考试认证,数据库,网络/安全,人工智能,移动开发,游戏开发,嵌入式,服务器,企业信息化,Office办公,产品/设计,其它等各种IT领域实战培训课程视频及微职位培训课程
新入职的JAVA程序员刚入职一个月?
刚入职的菜鸟、不懂很正常的
但是,如果过了三个月还是看不太明白,估计让你自己待着,你也在公司待不下去了。万事开头难,只怕肯登攀,怕的是开头不懂没有关系,而是没有积极学习的心态,如果不努力,自己态度不摆正最终肯定没有什么好结果。
一:不会就努力学。
很多新人其实代码和业务都不熟练,但是如果你不主动去问,那么面临的就有可能被裁。这个是新人最容易犯的,就是不去问。需要去找领导 ,前辈请教问题。不要怕,不会很正常,不问就不对了。二: 进度及时反馈newer总是认为不会,害怕别人嘲笑,也不及时给领导反馈进度,这个是领导最不喜欢的。领导不期望你能做出什么,但是你不汇报导致他那边计划打乱,这个才是最要命的。三:新人在团队中作用你不要患得患失,但心这个害怕这个。想一下其实你是新人,哪会给你关键任务,都kkk是打打下手而已,你不要想太多,放手干就行了。你做的模块和功能及没有那么重要也没有那么复杂,所以干就完了。