梦想还是要有的,万一忘了咋办?

0%

  1. 凡事顺其自然。遇事之时泰然,成功之时淡然,失败之时坦然
  2. 岁月本长,而亡者自促;天地本宽,而鄙者自隘;风花雪月本闲,而扰攘者自冗。
  3. 风来疏竹,风过而竹不留声;雁渡寒潭,雁去而谭不留影。故君子事来而心始现,事去而心随空。
  4. 鱼得水逝,而相忘乎水,鸟乘风飞,而不知有风。
  5. 交友须带三分侠气,做人要存一点素心。
  6. 邀千百人之欢,不如释一人之怨;希千百事之荣,不如免一事之丑。
  7. 世态有炎凉,而我无嗔喜;世味有浓淡,而我无欣厌;
  8. 觉人之诈,不形于言;受人之侮,不动于色。
  9. 遍阅人情,始识疏狂之足贵;备尝世味,方知淡泊之为真。

是什么

java是开发语言,你需要掌握它的语法规则。

jdk(Java Development Kit)是用java语言写的sdk,你需要了解它提供的能力。

JVM java虚拟机

有什么特点

面向对象

面向对象出现之前的编程方式被称作:结构化编程(面向过程编程)。在我看来本质是方法组合方式的变化,面向对象编程更接近现实生活。

结构化编程:针对问题设计解决问题的步骤,第一步、第二步、第三步…..等,将这些步骤以方法(function)为载体组合成为一个结构。

面向对象编程:针对问题设计解决问题步骤,第一步 由谁做什么,第二步由谁做什么…..等,最后将 “谁” 定义出来 且将他们做什么以function的形式声明到它的结构体上面。

对比:行为关联给对象,可以更好地管理行为。

封装

以对象为主体,对象内的东西(属性、方法)与其它对象互相独立。

继承

就像你可以集成你父亲的财产,手艺一样。但是你跟你父亲真的是两个独立主体。

多态

你跟你兄弟姐妹都继承了你父亲的手艺但多少有些不同就产生了多样性。

高级语言之所以高级是因为:他的理念越来越接近你与人交往沟通方式。面向对象是很重要的里程碑,它是定义了对象并且给予对象拥有万物一样的一些特性:个体独立,可繁衍等。

高级语言的位置

与平台无关

先编译后执行,编写的程序统一由javac 编译成字节码class文件,然后在jvm中解释执行。
java执行过程

其它同级别高级语言特点

数据结构更直观简单

自动垃圾回收

安全、可靠、多线程 等

你该做什么

  • 掌握java基础语法
  • 熟悉SDK提供的能力
  • 熟悉Jre提供的能力
  • 深入JVM的原理
    • 内存管理

常见博客系统

  1. wordpress
  2. Zblog
  3. Typecho
  4. hexo

应该选择哪个

选择是恐惧的,所以我总在尝试进行降维选择。这里不会对几个主流博客进行一一对比了,问自己两个问题即可:

  1. 工具:你喜欢用word写?还是用md语法写?
  2. 成本:你准备投入多少钱?

结论:

  1. 工具选择md语法,别犹豫直接选择 hexo 因为可以是0成本
  2. 工具选择word,别犹豫直接选择wordpress 成本为100+/年
  3. 你想用word 又想降低成本,选择云平台:简书 等

搭建hexo平台

步骤概览

  1. 安装node
  2. 安装git
  3. 安装hexo
  4. 注册 coding 账号
  5. 注册 github 账号(非必须)
  6. 买域名(非必须)
  7. 开通云主机(非必须)

步骤拆解

安装node(已经安装的忽略)
  • MAC环境

    安装homebrew

    1
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    安装node

    1
    brew install node
  • WIN环境

    安装node

安装GIT
安装Hexo
npm install hexo-cli -g
hexo init blog
cd blog
npm install
hexo server

浏览器打开 http://localhost:4000 就可以访问你刚才安装的hexo了

搞定Coding环境
  • 注册
  • 创建一个项目
  • 配置Page属性,项目—>代码—>Page服务
    到此,你会得到一个xxx.coding.me/项目名称 网络地址。
发布
  • 生成静态文件

    hexo generate
  • 配置发布地址

    _config.yml 
    deploy:
        type: git
        repo:
          coding: git@git.coding.net:xxx/xxx.git,master
        name:your name 
        email: doouxiaoyu@163.com
  • 配置GIT账号

    git config --global user.name
    git config --global user.email
  • 配置GIT证书

    #生成证书
    #配置coding 部署公钥
  • 发布文件

    hexo deploy

到此,你访问你的coding 地址就会看到你的hexo文章信息了。

这只是开始,你还得学习hexo的以下内容:

  1. 模版
  2. 主题
  3. 插件
添加github支持

目的
github功能跟coding一样一样的,增加它的目的有两个

  1. 不要钱,也不增加工作量
  2. 有自己域名的可以 配置中国访问coding,外国访问 github内容。

开通步骤

  • 注册github账号
  • 创建项目
  • 开通page功能
  • 配置公钥证书
  • 修改hexo博客配置文件_config.yml
    deploy:
        type: git
        repo:
          coding: git@git.coding.net:xxx/xxx.git,master
          github:xxxxxxx,master
        name:your name 
        email: xxx@163.com
购买域名

目的

  1. 牛逼
  2. 方便
开通云主机

目的

  1. 牛逼
  2. hexo 部署到云主机上面可以随时写文字
  3. 可以直接部署自己的博客从而不再依赖coding,github。访问速度更快

一、准备工作

选定&搭建好博客环境

制定渐进步骤

二、java基础

java简介✅

  • java在编程语言中的位置
  • 面向对象特点
  • java如何做到写一次到处运行

java的基础数据类型✅

  • 8个基本数据类型
  • 各自内存大小、取值范围
  • 具体存储方式

java引用数据类型✅

  • java数据类型内存布局(对象头、数据、对齐)
  • java对象大小

boolean类型✅

  • 内存大小

String类型✅

  • 演进
  • 创建方式与在内存中的存放
  • 比较
  • intern
  • 优化

三、常见系统架构

待完善……

四、代码工具

Java性能监控jps、jstat、jmap、jstack 等✅

openJdk查看对象内存分布 JOL

五、常见面试题

Java基础知识面试题

  • 理解面向对象特点✅
  • 修饰符✅
  • 数据类型(基础、引用、数组)✅
  • String 对象
  • 数据结构(list、set、map)
  • System、Collections、Arrays、Objects、Math
  • JDK各个版本特性

待完善……

六、思考

Java中boolean类型占用多少个字节

java中的基本数据类型一定存储在栈中的吗

HashSet继承了AbstractSet为何还要实现一次Set接口

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment