就用人话,边唠边学——javaSE篇(2)一次性弄明白数据类型
早安,午安,晚安
目录
1.每篇惯例的废话时间
2.补充部分
(1)public static void main(String[ ] args)中的args是什么
(2)i++和++i的区别
(3)Unicode码占多少比特位
(4)Java程序编译后产生的是什么码
(5)在IDEA中的几个快捷键
(6)java中的三种注释以及再注释后显示编码GBK不可映射字符的解决
(7)打印的三种方式
(8)方法是写在类里面的
3.八种数据类型
1.变量的作用
2.变量命名
3.变量定义的时候必须要初始化
4.数据类型的取值范围
5.字符串的拼接问题
4.转义字符
1.每篇惯例的废话时间
欢迎来到我们这个系列的第三篇
这是一个你可以当唠嗑看的,当日更番剧追的javase负基础学习系列
本号会高强度的更新有关java的学习纪要,大概会保持在一个一日一更或两日一更的水平。
文章只发在csdn,免费观看,你发现有收费了就私信我我进行一个核对。
写作不易,希望能有一个免费的赞,如果有收藏,那就更好了。
在接收到大佬们给的排版建议后,经过笔者的考虑,决定把原有的第二章直接合并到这里来。
后续的话本系列的排版暂定为目前8月16日所修改的排版,后续如果有其他问题的话也麻烦各位在评论区里积极反馈。
我们直接开始!
2.补充部分
(1)public static void main(String[ ] args)中的args是什么
我们先把上一章中我们写helloworld的语句复制一份过来
public class HelloWorld {public static void main(String[] args) {System.out.println("hello");} }
第二行的args在我尝试理解的时候带给了我一定的困惑,目前在我的理解下大概是这个意思。
args是一个字符串类型的数组,args是这个数组的名字。
这里的args其实也是一个缩写——arguments(翻译过来就是参数)的缩写,是专门用来存放命令行参数的。
感觉不太懂?我们来做个小实验。
我们不妨修改运行代码,然后还是调出来运行用javac和java命令来运行一下
public class HelloWorld {public static void main(String[] args) {for(int i=0;i<args.length;i++){System.out.println(args[i]);}System.out.println("hello");} }
我们在里面加入了一个可以看一下里面有啥的代码
for(int i=0;i<args.length;i++){System.out.println(args[i]);}
学过点语言的各位应该能猜个八九不离十了,不过既然我们说我们是负基础的唠嗑栏目,在这里就做个解释。
第一行,这是个for循环,里面的内容变成人话就是
一个整数i,初始值为0,当i小于args的长度时,i加一
(2)i++和++i的区别
i++是先赋值,然后再自增;++i是先自增,后赋值
更人话一点就是,i++先用再加,++i是先加再用
接上我们前面说的
第二行,打印出来args中的第i个元素
然后你再去运行,你会发现一个问题
虽然能成功运行,但是没有结果
然后你可以试着在java HelloWorld后面随便打点什么,你就会发现有东西出来了
比如我输入 YU ZHOU PAI SHUI
你会发现输出了
YU ZHOU PAI SHUI hello
这里别忘了哈,下标是从0开始的,也就是说我这个名为args的数组里面的第0个元素就是YU
(3)Unicode码占多少比特位
java 的字符类型采用的是 Unicode编码方案,每个 Unicode码占用2个字节,每个字节是8个比特位,所以,每个Unicode码占用16个比特位。
(4)Java程序编译后产生的是什么码
java程序在编译后产生的是字节码,然后有的题有时候就会很想装高手的给你写成英文,所以我们也防一手,字节码的英文是byte code
(5)在IDEA中的几个快捷键
写main函数,psvm+回车
写打印函数,sout+回车
(6)java中的三种注释以及再注释后显示编码GBK不可映射字符的解决
//
这个叫做行注释
/* */
叫做块注释
/***
/** 回车,叫文档注释,一般放在类或者方法前面
当你加注释,且注释里面包含汉字的时候,你再javac就会报错,编码GBK不可映射字符
这里需要我们把格式进行一个统一,具体怎么做?
这么做
再输入javac之后 输入这一段,然后后面该加啥加啥
-encoding utf-8
这里就相当于修改掉默认的gbk格式,改用utf-8格式
这样就没有问题了
(7)打印的三种方式
第一种
System.out.print("")
打印不换行
第二种
System.out.println("")
这个叫打印换行
第三种就和C语言类似的
System.out.printf("%d\n",a)
用的最多的就是println,最少的就是printf
(8)方法是写在类里面的
在写JAVA的时候,外边是类,里面是方法
3.八种数据类型
数据类型这块就像坐席固定上几菜几汤一样,老传统正好八样,那我们就直接拉个表单。
类型 | 中文名称 | 基本数据类型 | 大小 |
取值范围 (几个比较重要的) |
特性与其他注意事项 | |
1 | int | 整型 | 整型 | 4个字节 | -2^31~2^31-1 | 都是有符号的类型,32位中有1位是符号位 |
2 | short | 短整型 | 整型 | 2个字节 | -2^15~2^15-1 | |
3 | long | 长整型 | 整型 | 8个字节 | -2^63~2^63-1 |
1.一般定义的时候采用long a=10L这种方式来写,推荐使用大写L 2.java里面没有longlong |
4 | byte | 字节型 | 整型 | 1个字节 | -128~127 | |
5 | double | 双精度浮点数 | 浮点型 | 8个字节 |
java中默认小数是double,有效小数位15位; 和long类一样,定义要在后面加d |
|
6 | float | 单精度浮点数 | 浮点型 | 4个字节 |
有效小数位6-7位; 和long一样,定义要在后面加f |
|
7 | char | 字符型 | 字符型 | 2个字节 |
哪怕是给的是数字,最后反馈出来也是变成对应的字符是什么。 java中使用单引号+单个字母的形式来表示字符的字面值。 |
|
8 | boolean | 布尔 | 布尔型 |
例如:boolean flag=true; 布尔类型只有两个取值,true和false。 在JVM的规范中,并没有规定布尔类型的大小,但有些地方给的说法是1个字节。 布尔类型余其他类型无法相互运算。 |
这样列个表,就清晰多了。其他的一些知识点我们列在下面。
1.变量的作用
就像是你在搞收纳时所使用的不同种类的盒子,通过装的东西类型与大小来选择不同的变量,不同类型的变量有不同的特性,这点在上面的表中就有体现。
2.变量命名
虽然前面我们说过命名的问题了,但是这里面我们再强调一遍。
变量的命名要用小驼峰,可以以数字,字母,下划线,美元符号组成,但是不能以数字开头。
java中你甚至可以用汉字来命名变量,这个考的就是unicode字符集,但是不推荐使用汉字或者拼音来命名。
3.变量定义的时候必须要初始化
java语言是强类型语言,什么是强类型呢?
强类型包含以下两方面的含义:
- 所有的变量必须先声明、后使用。
- 指定类型的变量只能接受类型与之匹配的值
(强类型语言的话一旦类型不匹配就会报错,所以前面的标L标D标F都是必要的)
这就导致java的变量定义的时候必须要初始化。
这个地方还是变成人话,什么是初始化
比如
int easy;
int food=0;
这就是两种初始化方案,一种是声明的同时赋值,一种是先声明,后面再赋值。
4.数据类型的取值范围
不知道你在看取值范围的时候发现了没有,所有的变量类型(除了boolean)的取值范围由于有一位符号位的原因最后都变成了【负的2的(占多少位-1)到正的2的(占多少位-1)-1】的一个状态
占多少位这个事情前面也说过,乘个8.
5.字符串的拼接问题
两个字符串之间用+,起到的是拼接的效果
我们举个例子
public class TestDemo {public static void main(String[] args) {System.out.println("hello"+"world");} }
你会发现显示出来就是helloworld;
同时,其他数据类型和字符串间使用+拼接,结果就是一个字符串;
但是有一个点,计算机是从左往右算的,所以如果你在字符串前面两个数之间有加号,那最后的结果就会变成前面的数字先相加,然后再和字符串组成新的字符串;
如果你希望放在把两数放在后面的同时相加,那就加个括号,如下↓;
public class TestDemo {public static void main(String[] args) {System.out.println("what"+(1+2));} }
如果你希望俩书数放在前面的同时还不相加,那就再两数中间加个“”,如下↓
public class TestDemo {public static void main(String[] args) {System.out.println(1+""+2+"what");} }
4.转义字符
我们有些时候会有奇奇怪怪的需求;
举个例子,有时候你想输出点带双引号的东西;但是如果你在双引号里面加双引号;那就会报错
为什么呢?
前面的双引号看到后面的双引号,就近就输出出去了;
那怎么办?
你在他们中间加入一个反斜杠,就像这样↓
public class TestDemo {public static void main(String[] args) {System.out.println("\"wuhu\"");} }
你会发现这样就跑出来了。
这就是转义字符的作用,剩下几个要知道的转义字符咱们也拉个表格。
转义字符 作用 \n 换行 \t 水平制表 \' 单引号 \" 双引号 \\ 反斜杠
我们本章就聊这么多。
就用人话,边唠边学——javaSE篇(2)一次性弄明白数据类型相关推荐
- 就用人话,边唠边学——javaSE篇(1)让我们开始一段不再止步于hello world的学习之旅
本篇目录 1.系列前言(系列由来,系列内容,如何调整好学习本系列的心态,其他说明) (1)系列由来 (2)正确的心态是学习任何知识的关键 (3)系列的内容安排 2.javaSE和javaEE是个什么? ...
- excel计算二元线性回归_用人话讲明白梯度下降Gradient Descent(以求解多元线性回归参数为例)...
文章目录 1.梯度 2.多元线性回归参数求解 3.梯度下降 4.梯度下降法求解多元线性回归 梯度下降算法在机器学习中出现频率特别高,是非常常用的优化算法. 本文借多元线性回归,用人话解释清楚梯度下降的 ...
- 撕掉伪善——用人话解释马云的996两次发言
作为一个演说家,马云先生的话很有张力和说服力,一般情况下他很容易说服他人!但是他的996宣言不行,仔细阅读过后,我把两篇文章用人话翻译给大家听! 先说较早那个内部分享,第一部分大致是前面三段,用白话文 ...
- 神仙打架看不懂?用人话解读NIPS神经网络攻防赛清华三连冠团队模型算法
本文用高中生能听懂的人话介绍了2017NIPS神经网络攻防竞赛清华大学三项冠军团队的算法模型,详细介绍了基本算法FGSM.对抗样本的生成.攻防模型训练.NIPS比赛规则.清华参赛队的模型可迁移性优化策 ...
- 什么是相对论?相对论是什么?用人话讲讲相对论
用人话谈谈相对论是什么 What is relativity 写在最前面 At First 你必须要明白的重要结论 Important conclusion 相对论推导过程 Relativistic ...
- 阿甘学Java-开篇
阿甘学Java-开篇 很长一段时间没有接到以前的学生给我发的信息了,从入行开始2006年初至2013年初,想想教出来的学生也有千余人,在java培训行业也算是半个老人了,想想这几年也很少有机会和大家一 ...
- 《论语》原文及其全文翻译 学而篇1
学而篇第一 [本篇引语] <学而>是<论语>第一篇的篇名.<论语>中各篇一般都是以第一章的前二三个字作为该篇的篇名.<学而>一篇包括16章,内容涉及诸多 ...
- 东软大三上学期实训笔记-javase篇Day12
javase篇Day12 1.类 2.对象的创建 3.构造方法: 4.面向对象三大特性 5.封装: 6.this 关键字 7.继承: 8.方法的重写(方法的覆盖): 9.super 10.多态: 11 ...
- 学一篇韵文,识天下汉字
学一篇韵文,识天下汉字 http://blog.renren.com/share/227238400/7137480140 刚才看到这篇文章,较真了一把.查出如下重复汉字: 藏长弟行阿传弹核圈调勇霸腋 ...
最新文章
- 单例模式 -- Java
- python读取文件解码失败
- java 2分代复制垃圾回收_Java对象的后事处理——垃圾回收(二)
- (转)基因芯片数据GO和KEGG功能分析
- 【算法分析与设计】排序算法的时间复杂度与O(NlogN)
- 动态规划 —— 区间 DP —— 石子合并三讲
- [技术分享]【DLI跨源】当DLI遇见MongoDB
- opengl学习笔记(三)
- 在DataWorks中实现指定UDF只能被指定账户访问
- 【转】FluentAPI详细用法
- 苹果手机vnc进linux的服务器,linux服务器vnc远程连接,怎么使用linux服务器进行vnc远程连接?...
- 点餐系统+小程序常见问题解决(2022年最新版)
- win10锁屏账户和计算机名,如何玩转Win10锁屏和主题
- 二维码墓碑的技术探讨
- 六大机构好评的Teradata 究竟有哪些过人之处?
- BSC智能链主网节点搭建-2022最新详细版文档
- 操作系统-进程互斥的软件实现方法
- node.js 下载速度慢问题
- 毕业设计——基于小程序云开发的校园二手交易平台(附源码)
- python中的values函数_Pandas之排序函数sort_values()的实现