Java每日学习打开DayOne
最近快期末考试了,在复习的气氛下;我想把自己主学的Java的内容做一个总结。今天是第一天就从JavaSE的内容开始吧。
一、基本语法和一些常用的语句
1、主方法
public static void main(String[] args) {
}
2、输出语句
System.out.println("输出的内容自动换行");
System.out.print("输出的内容不会自动换行");
System.out.printf("%d",1);//这个和C语言的输出和输入方法一样
3、输入函数
Scanner sc=new Scanner(System.in);//这里的System.in代表的是键盘输入值`
sc.nextByte();//输入byte类型的数据
sc.nextInt();//输入整型数据
sc.next();//输入字符串,遇到换行结束,只会读取第一个空格或者换行前的数据。
sc.nextLine();//输入字符串到换行结束,可以读取空格和和换行
sc.nextShort();//输入short短类型的数据
sc.nextLong();//输入long类型的长整形的数
System.in.read();//从键盘上读取一个字符,返回对应的Unicode码
问题一:next和nextLine的问题。
共同点:next和nextLine都是换行结束。
不同点:
1、next不会读取空格和换行,当遇到空格或者换行就会停止读取而输入的数据讲停留在系统队列中。
2、nextLine可以读取空格和换行符。
常见问题:
1、当使用next获得字符串的话,最后的换行不会获得,这件导致next下面的下一个输入会遇到换行就会读取不到你想赋下一次输入给指定变量的值。
解决方法:一是在next下面放一个nextLine()方法或者直接使用nextLine()获得数据。
2、nextLine()获得的值但是不想要最后面的换行。
解决方法:
法一:使用next()和nextLine()混用。
法二:使用String对象的方法去除最后的换行:比如先使用endsWith("\n")判断最后是否是换行是的话就去除。也可以直接使用String的replace()替代函数。
问题二:char类型变量的输入方式:
1、使用nextInt()输入对应的ASCII码再强制转换
2、使用String的indexof()方法
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
if (s.endsWith("\n")){//判断结尾是否为换行
s.substring(s.length()-1);//是的话截断
}
System.out.println(s);
}
4、注释
单行注释//
多行注释/**/
文档注释/***/
1、文档注释的使用对于写一个项目很重要,距离学习的小伙伴大家都知道API的使用,文档注释上解释你写的方法的作用、参数的意义(这里也要告诉大家定义变量的时候要有一定意义,根据阿里的开发手册的总结的三大重点:关于变量命名的时候一是驼峰式、二是有意义、三是用全部英文)。而对于文本注释的创建我也在这里和大家介绍一些编译器和不用编译的创建方式:
有句话是:”万物皆有源“那我们就从最基本的方式不使用编译器的生成吧介绍吧。
1、首先找到这个Java类的地址后,接着输入下面的类似的,如果你使用其它字符集可以把UTF-8改为相应的字符集只要保证生成的文档注释的网页不出现乱码(一般中文乱码出现的比较多)
2、只会就出现相应的文档注释
对于IDEA和Eclipse还有其它编译器它们一般有一些功能会帮你生成,这个面向百度编程吧。
5、数据类型
1、基本数据类型有8个又称为8大基本数据类型。分别为 byte、short、int、long、float、double、boolean、char。
对于基本数据类型不得不提它们的范围:
byte 8个字节 -128~127
short 16个字节 -32768~32767
int 32个字节
long 64个字节
float 32个字节
double 64个字节
boolean false和true两个值
char 16个字节
这其中要说明的又两点:
1Java的数据类型不存在可变的情况,不想C之类的语言在不同的系统的下整型的数据类型占的字节有所不同;而Java却不是Java的所有的基本数据类型都是固定的而这一点为Java的跨平台提供了帮助。
举个例子:假设你在整型int为64个字节的系统写的程序运行不会出错,但是在其它系统会出问题像int为32个字节的系统下运行这可能发生错误。而这也看出c之类的程序的项目的工程师必须要对底层的一些计算等等有很高的基础;而Java却不用担心这些。
2、在Java的数字运算后的结果的问题:
在Java中的数字运算会把所有小于低于int类型的范围的数据变成int类型最后的结果是运算中字节数最大的类型是无法确定这个要根据数据来分析而最小可以确定为int类型。
拓展:Java的基本数据类型其实有很大的学问和细节,像为啥它要把小于int范围的类型变成int这个要和Java的jvm学习的时候要学习的一个很大研究;还有float double的类型为啥范围比int大还有,而这些我会下面会单独写一篇文章来写这个。
2、基本类型对应的包装类。
众所周知,Java是一门面向对象语言,当然对于对应的基本数据类型也进行了包装,并提供相应的包装类。一般是基本数据类型的首字母大写;但是也有特别。
首先:遵循首字母大写的有Byte、Short、Long、Float、Double、Boolean
其次就是不遵循首字母大写的以下这两个有Integer 、Character。
当然提供这些类Java为此并没有满足;java还提供了一些其它类像总所周知的String,除此之外Java还提供了超长的整数类型BigInteger等等但是这些类型并不再使用基本类型的运算符号。
3、学习感悟
其实对于学习这些类型,个人感觉学一个String和Integer两就差不多了。而学到什么地步呢?当然要看源码,其实这也是我自己看的第一个Java源码之后我对一些不懂的问题大部分看源码最后在后面学习框架的时候,看框架的源码我并没有很大不适。(当然看源码的时候你知道怎么使用,千万不要理解为看源码来知道功能是啥;看源码能锻炼自己对Java的设计模式等等各种能力;也有助于以后自己自己写框架有一定基础)。
现在看下时间是11点32分了,明天早上还有课;今天的总结就到这了。