一、使用Scanner类进行控制台的输入

  文档中Scanner类的定义为A simple text scanner which can parse primitive types and strings using regular expressions(一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器)。

  使用Scanner类,首先要导入 import.util.Scanner;

  然后建立对象 Scanner  scan  =  new Scanner(System.in);

  然后就可以接收控制台输入的各种数据类型了。

  比如:

  int x = scan.nextInt();

  String s = scan.next();

  String s = scan.nextLine();

  (next和nextLine的区别是,前者接收的字符串到第一个空格为止,后者接收的字符串可以包含空格,到回车为止)

  double d = scan.nextDouble();

  如果想输入一个字符,可以利用字符串的charAt(index)方法。

  例如,char ch = scan.next().charAt(0);

二、字面量

  Java中,字面量(literal)是指以人类语言形式出现的固定值。例如100,‘a’等。

  Java中,字面量可以是任何基本数据类型。

  默认情况下,整数字面量是int类型的,浮点字面量是double类型的,而这会带来一些麻烦。

  例如:

  1、float f = 0.1; 这个语句是通不过编译的,因为字面量0.1是double类型的,赋给float类型后,精度有所损失。

    改为float f = (float)0.1; 即可。

  2、接着上面的例子,f = f + 0.1;也是通不过编译的,原因同上,但神奇的是 f += 0.1; 是可以通过编译的。加完后,f仍然是float类型。

  3、整数的在不超出类型表示范围内,遵循自动类型转换,例如byte b = 1; 和 short s = 100; 都是可以通过编译的。

三、Java基本数据类型中需要注意的一些地方

  1、boolean类型不能用0和1表示,这是不同于C语言的地方,切记,切记,切记,重要的事情说三遍。

  2、字符变量赋值时的各种花式

  char ch = 'A';  char ch = '啊';  char ch = '\u655f';(这里用16进制数表示一个汉字的编码,在java的jdk下的bin目录里,有一个叫native2ascii.exe的程序,可以显示汉字编码)  char ch = 3;  char ch = '\123';(\后跟的是一个8进制数,数值代表着ASCII码,单引号不可省)。

  3、关于无穷

  Java中将正负无穷定义为浮点数,正无穷为POSITIVE_INFINITY,负无穷为NEGATIVE_INFINITY,用一个正浮点数除以0,得到正无穷,用一个负浮点数除以0,得到负无穷。如果是整数除以0,则会抛出ArithmeticException

  

四、常量

  final int i = 123;

  关于常量需要注意的是两条编码规范:1、常量名字一律大写,用下划线分割单词。 2、常量声明时就赋值。

五、关于自增自减符号

  int i = 1;

  i = (i++)+(++i); (结果为1+3=4)

  i++和++i 作为独立语句出现时,没有任何区别,但当它们作为一个表达式的一部分时,就不同了。i++是将 i 的值作为表达式的值,然后i再增1;++i是将i先增1,然后将增1后的值作为表达式的值。

六、条件表达式的嵌套

  exp1 ? exp2 : exp3;

  exp1为Boolean表达式,它为true则整个表达式取exp2的值,它为false则取exp3的值。

  如上,条件表达式就相当于if-else,下面用一个题目来实际应用一下条件表达式

  题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

  grade = x >=90 ? 'A' : (x>=60 ? 'B' : 'C')

七、Java变量的作用域

  1、一对花括号就是一个代码块,Java允许变量在任何代码块中声明。

  2、一个代码块就是一个作用域。

  3、作用域可以嵌套

 class ScopeDemo{

   public static void main(String[] asgs){
     int x;
     x = 10;
     if(x==10){
       int y = 20;
       System.out.println("x and y:"+ x + " " + y );
       x = y * 2;
     }

     //y = 100;    //error!!! y在这里是不可知的,这一点和C/C++是一致的
     x *= 2;
   }
 };

  4、内部作用域声明的变量不能与包含它的作用域中已经声明的变量同名。(这一点和C/C++不同)

  在C++中,这样的程序是可以编译运行的 

 #include <iostream>
 using namespace std;
 int main(){
     ;

     ){
     ;
     cout<<"x = "<<x<<endl;  //输出20
     x = x * ;
     }

     cout<<"x = "<<x<<endl;  //输出10
     ;
 }

Java学习日记-2 零零碎碎的更多相关文章

  1. Java学习日记基础篇(六)—— 抽象类、接口、final

    抽象类 为什么要有抽象类? 因为父类方法有不确定性,我们在Animal中定义了一个方法,但是它会被子类的方法覆盖掉,我们就不知道这个方法原本是做什么的 public class test1 { pub ...

  2. Java学习日记基础(五)——类、对象之this、静态变量(类变量)、静态方法(类方法)、四大特征

    this 赵本山问奥尼尔:“我的爸爸的爸爸是谁?” 奥尼尔:“不知道” 赵本山:“你傻啊,是我爷爷” 奥尼尔回去问科比:“我的爸爸的爸爸是谁?” 科比:“不知道” 奥尼尔:”你傻啊,是赵本山的爷爷“ ...

  3. Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法

    面向对象(Object Oriented) 一.面向对象杂谈 面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作. Java语 ...

  4. Java学习日记——基础篇(二)基本语法

    变量 变量和常量是程序处理的两种基本数据对象,变量是程序的基本组成单位 变量的目的就是确定目标并提供存放空间 public class Hello { public static void main( ...

  5. [转]Java学习日记之 volatile

    用在多线程,同步变量. 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B.只在某些动作时才进行A和B的同步.因此存在A和B不一致的情况.volatile就是用来 ...

  6. Java学习日记之 Java-其他类型

    OK , 就绪, 第一篇博客开撸 ~ 先听了毕姥爷激情澎湃的其他类型 ,从这里开始入手吧 : (一)System类  System类代表系统类,系统的属性和方法都放在该类.System类是一个fina ...

  7. Java学习日记之 Java-IO流

    Java中的IO流在处理上分为字节流和字符流.字节流和字符流的区别 : 1.字节流读取的时候,读到一个字节就返回一个字节:  字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8 ...

  8. Java学习日记-10 集合

    集合(Collection) 1. 什么是集合? 集合是一组对象组成的一个整体,又称为容器,集合类属于java.util包.集合不同于数组的地方在于,一是它的容量是可变的,二是集合中只能存储对象,不能 ...

  9. Java学习日记-2.3 基本数据类型和对象所占内存空间大小

    转自:http://www.newsmth.net/nForum/#!article/Java/324167

随机推荐

  1. python文件处理--笔记

    之前一段时间一直在忙着写毕业论文,盲评搞得人心惶惶,以致于都没有看书,最近需要补上前面落下的东西. <Python3程序开发指南> 1.二进制数据的读写 二进制格式通常是占据磁盘空间最小. ...

  2. request.getAttribute( "result");和request.setAttribute("result",username);

    request.setAttribute("result",username);在request对象中加入名为result的属性并附值为username,因为request对象是可 ...

  3. 登录模块需要用到session留底

    <% HttpSession sessions=request.getSession(); Object sessionValues=sessions.getAttribute("ui ...

  4. css 圆角效果

    http://intacto10years.com/index_start.php<div style="width:800px; height:1300px;">&l ...

  5. android编译系统学习

    近日接手了后续android新平台项目搭建的任务. 本文内容基于sprd公司提供的android5.1源码. 一.一般的编译工作流程 我们代码一般情况下是从芯片商SPRD/MTK获得的. 源码的编译上 ...

  6. eclipse - 自动换行

    eclipse自动换行,设置的感觉不是很好用,可以从这个网址进行更新安装: http://ahtik.com/eclipse-update/

  7. java mail 使用 gmail smtp 发送邮件

    smtp 服务器:smtp.gmail.com 使用ssl的端口:465 用户名:username@gmail.com 密码:password** 基本配置没有问题,关键在于Google对安全性要求非 ...

  8. iOS GorupBy

    转自:  IOS 数组分组 Grouped NSArray 1 2 3 4 5 6 7 8 NSMutableSet *set=[NSMutableSet set];   [_list enumera ...

  9. CSS代码语法

    css 样式由选择符和声明组成,而声明又由属性和值组成,如下图所示: 选择符:又称选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段(p)的文字将变成蓝色,而其他的元素(如ol)不会受到 ...

  10. TCP连接的状态分析

    1.先来了解一下TCP连接建立与关闭过程中的各种状态: CLOSED:初始状态,表示没有任何连接.LISTEN:Server端的某个Socket正在监听来自远方的TCP端口的连接请求.SYN_SENT ...