一、使用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. Android(java)学习笔记229:服务(service)之绑定服务调用服务里面的方法 (采用接口隐藏代码内部实现)

    1.接口 接口可以隐藏代码内部的细节,只暴露程序员想暴露的方法 2.利用上面的思想优化之前的案例:服务(service)之绑定服务调用服务里面的方法,如下: (1)这里MainActivity.jav ...

  2. sql server 各种函数

    SQL2008 表达式:是常量.变量.列或函数等与运算符的任意组合. 1. 字符串函数 函数 名称 参数 示例 说明 ascii(字符串表达式) select ascii('abc') 返回 97 返 ...

  3. Linq101-Ordering

    using System; using System.Collections.Generic; using System.Linq; namespace Linq101 { class Orderin ...

  4. Java编程思想-泛型-简单泛型例子

    基本类型无法做为类型参数 代码如下: /** * */ package test.thinkinjava.Generics; import java.util.ArrayList; import ja ...

  5. C# - 二叉树表达式计算

    很早以前就写过双栈的表达式计算. 这次因为想深入学一下二叉树,网上都是些老掉牙的关于二叉树的基本操作. 感觉如果就学那些概念,没意思也不好记忆.于是动手写了一个表达式计算的应用例子. 这样学习印象才深 ...

  6. SQL Server 存储过程分页

    每每面试,总会有公司问到分页.在下不才,在这里写几种分页,望路过的各位大神尽情拍砖. 先从创建数据库说起.源码如下 一.创建数据库 /********************************* ...

  7. Hadoop配置项整理(mapred-site.xml)【转】

    本文转自:http://slaytanic.blog.51cto.com/2057708/1101360 name value Description hadoop.job.history.locat ...

  8. 关于Core Data的一些整理(一)

    关于Core Data的一些整理(一) 在Xcode7.2中只有Mast-Debug和Single View中可以勾选Use Core Data 如果勾选了Use Core Data,Xcode会自动 ...

  9. iOS使用阿里云OSS对象存储 (SDK 2.1.1)

    最近项目中用到了阿里云OSS对象存储,用来存储APP中图片.音频等一些数据.但坑爹的阿里云居然在11月20日将SDK版本更新到了2.1.1,然而网上给出的教程都是1.*版本的(针对iOS),两个版本所 ...

  10. CSP内容安全策略

    在浏览网页的过程中,尤其是移动端的网页,经常看到有很多无关的广告,其实大部分广告都是所在的网络劫持了网站响应的内容,并在其中植入了广告代码.为了防止这种情况发生,我们可以使用CSP来快速的阻止这种广告 ...