九天学会Java,第一天,变量和数据类型,赋值和输出
用9天入门三门编程语言,有可能嘛,尤其是对没有基础的同学来说?对于想学好的编程的人来说,无论从哪一门语言开始入手,语言的本身其实并不是我们最应该的关心的,至少不是作为一个初学者首先关心的。
网络上,网友们争论的哪个语言是最好的语言在我看来是这个世界上最无聊的争论。语言只是最基础的工具,是为我们服务,为业务服务的。如果你会编程,从A语言切换到B语言不会有太大的gap。以后我要写的一系列文章,总结了如何快速入门一门新语言。核心思想是重视编程特性,而不是具体的语言。先把编程实现的特性拿出来,再看看某种语言是怎么做到的。
先说编程特性,任意一门编程语言都会具有以下特性:
- 变量和数据类型,赋值和输出
- 算术运算
- 选择结构
- 循环结构
- 函数定义,函数调用
- 变量作用域
- 栈,程序运行的基石
- 面向对象
- 语言提供的公用包
如果你不同意,请给我留言!如果是零基础的同学,请把以上几个关键字背下来。
如果是已经有编程基础的同学,相信用不了9天,大概3天是完全可以入门一门新语言的。
后面我会讲的三门语言的入门。先讲Java,后讲Python和JavaScript。讲Java时只讲Java的知识点,到后面讲Python和JavaScript时会类比其他语言,横向做比较。
解释一下为什么是Java,Python,JavaScript。Java是广泛使用的后端语言,Python是广泛使用的脚本语言,当胶水,做数据处理,做后端都可以。JavaScript是前端语言。这三门语言都是适合初学者入门,也是工业界广泛使用的,如果同时学这三门语言不难,以后学习其他语言肯定不会再有门槛。
在开始讲语言入门之前,我再举一个例子说明我们为什么要先掌握编程特性。如果你要DIY一台电脑,你肯定要买CPU,内存,主板,硬盘,机箱,显示器,鼠标键盘外设。这是一台电脑的基本组成,这个基本组成可以类比成我所说的编程特性。好了,当我们了解这些基本特性之后,我可能会有一些选择,比如CPU买Intel的还是AMD的,对应的主板也会有不同的选择。Intel还是AMD就可以类比成我要用Java还是Python。
所以呀,初学者千万不要纠结学哪门语言,纠结来纠结去,时间都浪费了什么都没掌握。掌握了编程特性之后,随着思考和实践的深入,学什么语言用什么语言是信手拈来的事。
我见过一些已经有工作经验的工程师,用Java写排序引擎,代码一团乱,自己骂Java这不好那不好,宣称用Go写肯定性能就好如何如何。我相信他不能用Java的基本特性做好一个工程,换一种语言也是于事无补的。能否写出好代码在于人,在于设计,在于实践,不在于语言。
真正有经验的程序员会如何学一门新语言呢,他肯定不是去看砖头厚的书籍学几个月再出山。往往是碰到一个需要解决的问题,然后花几分钟了解一下这门语言的特性,参考例子代码修改捣鼓,接着开始修改代码,实现新需求。整个过程中,他是利用编程特性解决自己的问题,而不是特意去学习一门语言。
说了半天,还没讲怎么准备编程环境工具之类的。对于Java,网络上很多安装教程,just Google it,IDE(集成开发环境)我推荐使用Intellij idea。对于Python,安装教程同样很多,IDE推荐PyCharm,以上都是安装社区版即可。对于JavaScript,不需要安装什么环境,我们直接用浏览器执行。IDE(集成开发环境)推荐使用Sublime。
现在我们开始说编程特性第一条“变量和数据类型,赋值和输出”。从广为流传的Hello World说起,
Hello World
- 用Intellij Idea建立一个新的Java工程
- 在src目录建一个FirstLesson.java 文件
/**
* 变量和数据类型,赋值和输出
*/
public class FirstLesson {
/**
* 在java中,main()方法是java应用程序的入口方法。java虚拟机通过main方法找到需要启动的运行程序
*/
public static void main(String[] args) {
/**
* variable就是一个变量
* 任何一门语言都会有变量的概念
* 计算机会在内存留出一个区域存储变量的值,
* 然后使用变量名对变量进行访问,读取变量的值,或者修改变量的值
*/
String variable = "Hello World";
/**
* 输出variable,为什么是System.out,而不是其他方式
* System里封装了很多基本的操作系统接口
*/
System.out.println(variable);
}
}
/**/ 内包含的文本是注释,注释即辅助你理解程序说明,但编译器不会去编译的文字段。
变量
String variable = "Hello World";
包含三个知识点,(1)新建变量variable;(2)variable是字符串类型;(3)给变量variable赋值。
注意代码里我对这两行代码的说明。
下图讲解了变量在计算机里是什么意思

k是变量的名称,3是变量的值,还有一个变量的地址,即内存的地址。变量名称以及值的概念一定要记住,内存地址可以暂时不理解。

"变量就像个盒子(占用存储空间),盒子有个名字(变量名),盒子可以存放东西(存变量的值)"
变量基本类型
说到变量,就得说清楚变量都有什么类型。如果我把所有的变量类型都罗列出来,恐怕太多了不好记。下面只列出常用的
- 字节型(byte,字节型是一种 8 位有正负的二进制整数
最小值是 -128
最大值是 127 - 短整数(short)
最小值是 -32768
最大值是 32767 - 整数型(int)
最小值是 - 2,147,483,648
最大值是 2,147,483,647 - 长整型(long)
长整型是一种 64 位有正负的二进制整数
最小值是 -9,223,372,036,854,775,808(-2^63)
最大值是 9,223,372,036,854,775,807 (2^63 -1) - 浮点型(float)
浮点型数据是一种单精度的 32 位 IEEE 754 标准下的浮点数据。 - 双精度型(double)
双精度型数据是一种双精度的 64 位 IEEE 754 标准下的浮点数据。 - 布尔型(boolean)
布尔型数据代表一个信息比特。
它只有两个可能的值:真(true)和假(false)
赋值
前面提到了,你在代码里写一个变量,计算机会在内存给他留出一个空间存储他的值。但是你得给他赋值啊,不然计算机怎么知道这个变量该存什么值。
在Java里面,赋值操作符就是=。直观理解,就是把等号右边的值,赋予左边的变量。
输出
我们和计算机的交互过程就是一个输入和输出的键盘,我们操作鼠标,操作键盘即是输入。显示屏幕,音箱的输出就是计算机的输出。
System.out.println(variable);
就是一种最简单的输出,Java调用系统函数,告诉操作系统打印变量variable。这个输出看起来不那么fancy,没关系,你只要理解好他就是最简单的输出即可。
总结
- 任意编程语言都有变量
- 变量由变量名称和值构成
- 变量可以是字符串,整数,布尔值,浮点数等
- 赋值是一个等号,把等号右边的值赋予左边的变量
- System.out.println就是一个最简单的输出
作业
- 模仿Hello World 样例,写下你心爱的人的名字,让计算机输出你心爱的人的名字
完整章节
- 九天学会Java,第一天,变量和数据类型,赋值和输出
- 九天学会Java,第二天,算术运算
本文所有内容归原创者凯威的讲堂所有。请转载时请遵循 “署名-非商业用途-保持一致” 的创作共用协议。不欢迎商业网站擅自复制内容,并且保留所有权利。
九天学会Java,第一天,变量和数据类型,赋值和输出的更多相关文章
- 九天学会Java,第二天,算术运算
算术运算 先回顾上次我们提到的编程特性 变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 第一天我们讲 ...
- 九天学会Java,第三天,选择结构
选择结构 变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 上一节介绍了Java的算术运算,如加减乘除 ...
- 九天学会Java,第四天,循环结构
变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 这次我们讲Java的循环结构.循环结构在编程中广泛使 ...
- 九天学会Java,第五天,函数定义函数调用
变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 什么是函数,为什么有函数,大家可能有这样的疑问. 举 ...
- Java 第二章 变量、数据类型和运算符
第二章 变量.数据类型和运算符 什么是变量: 变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样. #在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据. ...
- Java中的变量,数据类型和运算符
变量,数据类型和运算符 1.变量是一个数据存储空间的表示,它是储存数据的基本单元. 如何理解这句话,下面用一个表格可以形象的表达: 变量与房间之间的对应关系 房间名称 变量名 房间类型 变量类型 入住 ...
- 二、 java中的变量与数据类型及类型转换
标识符:凡是可以自己命名的地方都叫标识符,如:类名.方法名.接口名... 1.标识符命名的规则: 由26个英文字母大小写,0-9,_或$组成,不遵守会报错. 不可以用数字开头. 不能使用关键字和保留字 ...
- java中的变量和数据类型
变量和javascript的变量含义一样 在Java中,变量分为两种:基本类型的变量和引用类型的变量.(javascript中同样是这样的) 基本数据类型 基本数据类型是CPU可以直接进行运算的类型. ...
- Java学习第一篇:变量,数据类型,运算符,流程控制(简介)
一.安装和配置jdk 1.jdk是什么? (1).jdk全称是Java Development Kit, Java开发工具包; (2).jdk是sun公司开发的; (3).jdk主要包括:jre(Ja ...
随机推荐
- 如何使用OLAMI自然语言理解开放平台API制作自己的智能对话助手小程序
我们经常在电影中看到机器和人对答如流,随着越来越多自然语言开放平台的出现,IT爱好者制作一个自己的APP或者小玩具等逐渐可以变为现实. 自然语言对话即你的APP或者你制作的工具.机器人等能够对用户输入 ...
- 20170711_map/reduce
js: map: var arr = [1,2,3,4,5]; var res = arr.map(function(x){ return x * x; }); //res 现在 = [1,4,9,1 ...
- SpringMVC原理及非注解配置详解
1. Spring介绍 Spring MVC是Spring提供的一个强大而灵活的web框架.借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单. 这些控制器 ...
- hdu_3336: Count the string(KMP dp)
题目链接 题意:求给定字符串中,可以与某一前缀相同的所有子串的数量 做这道题需要明白KMP算法里next[]数组的意义 首先用一数组nex[](这里与之前博客中提到的next明显不同)存储前缀后缀最长 ...
- 51nod_1264:线段相交(计算几何)
题目链接 关于判断线段相交,具体算法见 点击打开链接 ,先进行快速排斥试验,若不能判断出两个线段不相交,再进行跨立试验. //吐槽1,long long 会溢出... //吐槽2,只进行跨立试验的虽然 ...
- Windows 10 IoT Serials 9 – 如何利用IoTCoreAudioControlTool改变设备的音频设备
大家知道,在Windows 10 IoT Core上,如果用户外接了USB声卡.带有麦克风的摄像头之类的硬件,就会有多个音频设备可以用.但是,系统目前并没有提供直接的UI来设置音频的输入或者输出设备. ...
- (转)XML中必须进行转义的字符
场景:在工作中接触到很多xml文件,为了更好的操作这些文件,所有很有必要熟知xml文件的相关语义. 1 引入 编写XML代码经常遗漏的常识: XML实体中不允许出现"&", ...
- ibatis 架构
从结构图中我们能够看出来ibatis框架中的几个关键的结构: 1. SqlMapConfig.xml 2. SqlMap.xml 3. ParameterObject 4. ...
- jqthumb.js缩略图插件-让缩略图正常显示而不变形
插件介绍 项目中有图片的时候,有的宽大于高,有的宽小于高,尤其在做图片列表的时候,经常发现缩略图会有变形的.我们怎样来解决这一问题呢. 方法一:用photoshop来处理缩略图.小的项目还可以,大的项 ...
- 【分享】01. Eclipse for PHP + phpStudy 搭建php开发环境
配置php编译器 配置phpStudy服务器项目发布目录 修改hosts文件127.0.0.1 www.350zx.cn 新建项目 启动的你的phpStudy