20155314 2016-2017-2 《Java程序设计》第1周学习总结
20155314 2016-2017-2 《Java程序设计》第1周学习总结
学习目标
- 了解Java基础知识(已完成)
- 了解JVM、JRE与JDK,并下载、安装、测试JDK(已完成)
- 了解PATH、CLASSPATH、SOURCEPATH的作用并会设置(正在学习)
- 初步使用IDE(推荐IDEA),会编译、运行、调试简单的Java程序(已完成)
教材学习内容总结
- 浏览教材,根据自己的理解每章提出一个问题
- 认真学习教材第一章、第二章
第一章
Java常识
Java最早是Sun公司绿色项目Green Project中编写Star7应用程序的程序语言,当时取名为Oak
- Java诞生:1995年5月23日
- Java之父:James Gosling
- 最新Java版本:Java SE 8,2014年3月18日发布
- 相关名词解释(小白福利QAQ)
- Java SE:Java标准版本
- JVM:Java虚拟机
- JRE:1Java执行环境
- JDK:包括JRE及开发过程中需要的一些工具程序
- Java EE:Java企业版本
- Java ME:Java微型版本
- JCP:一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新
- JSR:Java规范提案,指向JCP提出新增一个标准化技术规范的正式请求
- RI:根据JSR成果做出免费且开发原始码的参考实现
- TCK:技术兼容测试工具箱
- Oracle JDK:被Oracle收购之后的JDK参考实现
- OpenJDk:Sun在2006年的JavaOne大会上把Java开源而形成的项目
- JavaOne:每年一次的Java盛会
- IDE:集成开发环境
- API:应用程序编程接口
- OO:面向对象
- JavaDoc:Sun公司提供的一个技术,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档
- javac:Java语言编程编译器,javac命令可以将java源文件编译为class字节码文件
- Java SE:Java标准版本
get到的重点——教材建议的Java学习路径
- 深入了解JVM/JRE/JDK:JVM是Java程序唯一认识的操作系统,其可执行文件为.class文档
- 理解封装(Encapsulation)、继承(Inheritance)、多态(Polymorphosm):面向对象中最重要的概念
- 掌握常用Java SE API架构
可参考Java 集合系列之Collection架构
- 学习容器观念:
- 操作层面:执行于JVM上的Java应用程序
- 抽象层面:应用程序沟通、协调相关资源的系统
- 研究开放原始码项目:参考教材作者林信良教授的在线文件
- 学习设计模式与重构:根据需求做出好的设计,因应需求变化调整现有程序架构
- 熟悉相关开发工具:Eclipse IDE、NetBeans IDE,还可以搭配Ant构建工具、Maven或Gradle项目工具等一同使用
通过百度学到的macOS终端命令
参考Mac 终端命令大全,这里列出几个常用的命令
命令名 | 功能描述 | 使用举例 | |
---|---|---|---|
man | 查看命令的详细帮助 | man ls | |
mkdir | 创建一个目录 | mkdir dirname | |
rmdir | 删除一个目录 | rmdir dirname | |
cd | 改变当前目录 | cd dirname | |
pwd | 显示当前目录的路径名 | pwd | |
cp | 复制文件或目录 | cp file1 file2 | |
find | 使用匹配表达式查找文件 | find . -name "*.c" -print | |
file | 显示文件类型 | file filename | |
open | 使用默认的程序打开文件 | open filename | |
passwd | 修改用户密码 | passwd | |
xlock | 给终端上锁 | xlock -remote | |
touch | 更新文件的访问和修改时间 | touch -m 05202400 filename | |
ps | 显示进程当前状态 | ps u | |
kill | 终止进程 | kill -9 30142 | |
history | 列出最近执行过的几条命令及编号 | history | |
uname | 显示操作系统的有关信息 | uname -a | |
clear | 清除屏幕或窗口内容 | clear | |
who | 列出当前登录的所有用户 | who | |
whoami | 显示当前正进行操作的用户名 | whoami | |
tty | 显示终端或伪终端的名称 | tty | |
du | 查询磁盘使用情况 | du -k subdir | |
df | 显示文件系统的总空间和可用空间 | df /tmp | |
w | 显示当前系统活动的总信息 | w |
通过百度学到的Mac终端常用快捷键(百度真是好东西)
Tab
命令、文件名等自动补全
ctrl + C
终止正在运行的程序
ctrl + D
退出 Terminal(建议用command + W
)
ctrl + U
清除当前输入命令
ctrl + W
删除当前输入命令最后一个单词
Ctrl + K
删除光标处到行尾的字符
ctrl + A
光标跳至行首
ctrl + E
光标跳至行尾
ctrl + L
清屏
command + T
新建终端窗口标签
command + D
垂直分屏
command + ctrl + F
全屏
教材学习中的问题和解决过程
JDK(JDK 8 for mac)的下载、安装
按住之前在百度的帮助在macOS上Automator.app中设置好的快捷键contrl+alt+T
,打开终端,输入java:
显示JDK尚未安装,点击【更多信息...】进入下载页面:
下载完毕,双击安装:
点击【继续】,直至安装完成:
安装完JDK for mac后,需要搭建Java开发环境
我的MBP配置如下:
再次打开终端,输入echo $SHELL
查看macOS Sierra 10.12.3版本的系统使用的是什么shell命令:
终端输出的是bash,说明是默认的Unix Shell命令
输入java,就会出现如下界面:
通过命令行查看Java版本:
终端输出JDK的版本为1.8,是当前最新版本哟~( ̀⌄ ́)~
配置环境变量
在终端中输入sudo vim etc/profile
,输入mac用户密码(就不告诉你(/ω\))
额...怎么又突然全变成英文了尴尬(¬_¬)
使用vi编辑profile文件
键入i
,进入插入模式,在文件尾部,添加Java路径:
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/" CLASS_PATH="$JAVA_HOME/lib" PATH=".;$PATH:$JAVA_HOME/bin"
添加完毕之后,按esc退出插入模式,并键入wq!
保存退出文件。
shit,为什么又打不开了。。
只好再次求助百度啊百度QAQ
某大神提供了一个超简便的方法:
打开terminal
然后输入vi .bash_profile
将这段文字输入:JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
在vi编辑器使用:wq命令保存退出
输入source .bash_profile 这样就可以使得环境变量起作用了
再输入echo $JAVA_HOME
然后...啊居然成功了( ̀⌄ ́)成功输出刚才配置的路径~表示环境变量已经配置好了·_·
然而不巧我忽然看到大神最下面的一句话:
必须说明的是这种配置方法只适用于用户环境变量,如果系统更新,之前的配置可能失效,如果想要永久改变需要配置在/etc目录下的profile文件中
我:……还是不靠谱啊喂!!
不管怎样,环境变量已经配置完毕,打开终端输入javac
即出现以下界面:
代码调试中的问题和解决过程
macOS下运行Java Hello World——我的第一个Java程序
在写第一个Java程序之前,我通过万能的百度Mac上如何新建文本文档学到了用终端命令行法在Desktop上新建了一个名为Hello.txt的文本文档——终端下:
cd 目录
vi 文件名
或vim 文件名
即如下图所示:
按i
键,在Hello.txt中输入娄老师第一节Java课上给的Hello World代码,如下图,输入完成后,按esc
,再输入:wq
即完成创建,并把文件名改为Hello.java:
public class Hello{ public static void main(String[] args){ System.out.printf("Hello World!\n"); } }
- 在主目录下新建一个文件夹java,把Hello.java放到该文件夹
终端下切换到当前目录
cd java
,现在可以编译程序了~输入
javac Hello.java
,这时在主目录的java文件夹里已经生产了一个编译出的class文件再次运行终端,输入
java Hello
这时激动人心的字幕“Hello World!”出现了!至此人生中第一个Java程序成功编译了66666!我成功了!!欧耶!
在Eclipse for mac中也实现了Hello World
关于IDE,我自学并安装了macOS平台下使用较为广泛的Eclipse作为我以后的Java开发环境,毕竟在相应的开发环境下编译运行Java程序比在终端输入命令要方便很多,如同学习C语言时在VC2012、VC6.0和CodeBlocks等环境下一样。通过安装Eclipse,我又对IDE以及JDK有了进一步的认识,无论是通过翻阅教材还是百度,我确实学到了不少新知识,开阔了眼界。
在Eclipse官网下载完Eclipse后开始安装,我选择的是for java Developers的IDE配置模式,其实看下面的选项就知道Eclipse还可以作为C语言学习的开发环境,只可惜当时学C的时候被CodeBlocks死死局限住了,当时真孤陋寡闻啊(>_<)
安装完后,出现welcome界面,eclipse界面令人焕然一新~(纯英文界面,好在成功考过六级,看懂这些还是不成问题的(。ì _ í。))但由于我迫不及待地开始编写我的Hello World,这些一概无视(>_<)(其实提示信息什么的还是要好好看看啊QAQ)
选create a java project,在最上面Project name一栏自豪地写上了我的“Hello World”,finish,OK项目已建成!
然后需要新建一个类(class),点击左边刚刚新建的Hello World,展开后右键src,选择new——class
同样的要写上类的名字,不过刚开始我起的Hello World好像出了点问题,如图,上面的提示似乎是不能出现空格?那就HelloWorld呗( ̀⌄ ́)
不过要注意下面红框框里的main要勾选哟(不明觉厉)
下面就到了熟悉的尽情码代码的环节了~很快便把娄老师给的Hello World代码又输了上去,点击Run,最激动人心的时刻来临了!屏幕下方Console界面上赫然出现的“Hello World!”还是使我受到莫大的鼓舞
mission complete!(>_<)
代码托管
- 代码提交过程截图:
- 运行 git log --pretty=format:"%h - %an, %cd : %s" 并截图
- 代码量截图:
- 运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l 并截图
上周考试错题总结
- 木有考试QAQ但需要好好复习一下Linux(◐‿◑)
学习心得与体会
这是我第一次写这么长的博客,差不多历时五天吧,每晚上自习都会投入大量的时间(玩弄我的macOS),可能以后每天还要继续更新。由于我用的是macOS导致直接形成与大家的windows对立的局面,很多问题别人根本无法解答只能靠自己一点点百度,别人来问我windows上如何用git呀这个那个的老实说很遗憾我也并不太清楚(o.O)第一周作业做的虽然有些仓促不过真心学到了不少东西,包括markdown(macOS下我用的macdown)的语法和终端命令我又里里外外研究了个遍,很多时候我看教材也会经常翻回前面两章看看,平时没事翻翻以前的博客、娄老师的课程汇总,做到温故而知新,同学们的博客我也经常逛哟(这是什么癖好(>_<))
百度是个好东西,在百度的过程中关于macOS快捷键又学会了一招!
macOS下写路径的方法:
shift+command+G
(在Finder里操作)
真的好方便啊哈哈哈哈(/ω\)
shift+command+G
shift+command+G
shift+command+G
重要的快捷键要提醒自己三遍!!
杂音
今天我的win7虚拟机崩了,无法安装更新,难过
开学的时候从某宝上给我心爱的MBP弄了一个可爱的实用的键盘膜酱QwQ上面有很多便于学习macOS快捷键的提示哟暖暖的很贴心嗯(拒绝打广告)
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 34/34 | 1/4 | 12/12 |
参考资料
- 如何在Mac系统安装eclipse并运行java程序?
- Mac下实现HelloWorld
- Mac OS X 下搭建 Java 开发环境图解
- Java学习笔记(第8版)
- 《Java学习笔记(第8版)》学习指导
20155314 2016-2017-2 《Java程序设计》第1周学习总结的更多相关文章
- 20155336 2016-2017-2《JAVA程序设计》第九周学习总结
20155336 2016-2017-2<JAVA程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC(Java DataBase Connectivity)即java数据库连接 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
随机推荐
- MYSQL与MSSQL对比学习
最近在将公司的一个产品里面相关的MSSQL语句修改为可以在MYSQL上执行的语句 l 优点分析: MYSQL短小精悍,容易上手,操作简单,免费供用的.相对其它数据库有特色又实用的语法多一些.SQL怎 ...
- python之协程gevent模块
Gevent官网文档地址:http://www.gevent.org/contents.html 进程.线程.协程区分 我们通常所说的协程Coroutine其实是corporate routine的缩 ...
- 阿里云服务器被他人通过SSH暴力破解后的安全加固
背景说明:我登录阿里云服务器控制台时,收到几条安全警告信息. 从图中可以知道,对方的IP地址是47.97.68.118,通过SSH登录方式,登录时用我服务器里的admin用户,然后用穷举法暴力破解ad ...
- BZOJ4364: [IOI2014]wall砖墙(线段树)
题意 题目链接 Sol 一个显然的思路是维护最大最小值以及最大最小值的覆盖标记. https://paste.ubuntu.com/p/WXpBvzF6Y2/ 但实际上因为这题只需要输出最后的操作序列 ...
- php5.5过渡--变量
单纯的定义变量,如: $usernumber = $_POST['usernumber']; 会出现警告: Notice: Undefined index: usernumber in ... 规范问 ...
- com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/NOTICE
在将vivo eclipse sdk 迁移 android studio 时候报错 Error:Execution failed for task ':vivosdk:transformResour ...
- Reducing and Profiling GPU Memory Usage in Keras with TensorFlow Backend
keras 自适应分配显存 & 清理不用的变量释放 GPU 显存 Intro Are you running out of GPU memory when using keras or ten ...
- url override and HttpSession implements session
背景 HttpSession默认使用Cookie存储Session ID,如果在用户禁用浏览器Cookie的功能后,仍打算运用HttpSession来进行会话管理,那么可以搭配URL重写来实现. 实现 ...
- window 命令行
清屏 cls 启动服务 net start 服务名(nexus.mysql) 关闭服务 net stop 服务名(nexus.mysql) 删除服务 sc delete 服务名 如果服务名有空格,加引 ...
- CCSUOJ评测系统——第二次scrum冲刺
1.小组成员 舒 溢 许嘉荣 唐 浩 黄欣欣 廖帅元 2.第二次冲刺任务安排 对HUSTOJ数据库进行分析 序号 表名 作用 备注 1 compileinfo 记录编译错误的记录 2 contest ...