Java语言基础(回头复习)
/*
使用变量的时候要注意的问题:
A:作用域
变量定义在哪个大括号内,它就在这个大括号内有效。
并且,在同一个大括号内不能同时定义同名的变量。 B:初始化值
没有初始化值的变量不能直接使用。
你只要在使用前给值就行,不一定非要在定义的时候立即给值。
推荐在定义的时候给值。 定义变量的格式:
a:数据类型 变量名 = 初始化值;
b:数据类型 变量名;
变量名 = 初始化值; C:在一行上建议只定义一个变量
可以定义多个,但是不建议
*/
public class Text2 {
public static void main(String[] args) {
//定义变量
int x = 100; //错误,不能有同名的
//int x = 200; //定义变量必须给值
//int y;
//System.out.println(y); int z;
z = 100;
System.out.println(z); //在一行上定义多个变量
//int a = 10; int b = 20; int c = 30;
//上面的写法可以,但是不建议。
int a = 10;
int b = 20;
int c = 30; //int d, e;
//d = 40;
//e = 50; //int f,int g; //错误
//int h; int i; //正确
}
}
/*
+是一个运算符(我们等会讲解)。做加法运算的。 一般来说,我们在运算的时候,要求参与运算的数据类型必须一致。 注意:
boolean类型不能转换为其他的数据类型 默认转换(从小到大的转换)
A:byte,short,char—int—long—float—double
B:byte,short,char相互之间不转换,他们参与运算首先转换为int类型
*/
public class Text {
public static void main(String[] args) {
//直接输出的方式做加法
//System.out.println(3 + 4); //两个int类型做加法
int x = 3;
int y = 4;
int z = x + y;
System.out.println(z); //定义一个byte类型,一个int类型,做加法,他们参与运算首先转换为int类型
byte a = 3;
int b = 4;
System.out.println(a + b); //可能损失精度
//byte c = a + b;,因为 b 为int整数型,从int到byte精度可能会降低,所以此处出错
int c = a + b;
System.out.println(c);
}
}
/*
强制转换:
从大的数据类型到小的数据类型。 格式:
目标数据类型 变量 = (目标数据类型) (被转换的数据); 注意:
不要随意的去使用强制转换,因为它隐含了精度损失问题。
*/
public class Text {
public static void main(String[] args) {
byte a = 3;
int b = 4; //int c = a + b;这个肯定没有问题 //byte c = a + b; 这个是有问题的 //用强制类型转换改进
byte c = (byte) (a + b);
System.out.println(c);
}
}
/*
思考题1:请问下面这个有没有问题
double d = 12.345;
float f = d; 思考题2:看看下面两个定义有没有区别呢?
float f1 = (float)12.345;
float f2 = 12.345f; 解析:f1其实是通过一个double类型转换过来的。
而f2本身就是一个float类型。
*/
public class Text {
public static void main(String[] args) {
//把double赋值给float,加了强制类型转换
double d = 12.345;
float f = (float)d;
}
}
/*
面试题:
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
解析:b = b1 + b2; 这个是有问题的。
因为变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。
常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错。
*/
public class Text {
public static void main(String[] args) {
//定义了三个byte类型的变量,b1,b2,b
//b1的值是3,b2的值是4,b没有值
byte b1 = 3,b2 = 4,b; //b = b1 + b2; //这个是类型提升,所有有问题 b = 3 + 4; //常量,先把结果计算出来,然后看是否在byte的范围内,如果在就不报错。
}
}
/*
byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少呢? 练习:byte b = (byte)300;
*/
public class Text {
public static void main(String[] args) {
//因为byte的范围是:-128到127。
//而130不在此范围内,所以报错。
//byte b = 130; //我们可以使用强制类型转换
byte b = (byte) 130; //结果是多少呢?
System.out.println(b);
}
}
/*
分析过程:
我们要想知道结果是什么,就应该知道是如何进行计算的。
而我们又知道计算机中数据的运算都是补码进行的。
而要得到补码,首先要计算出数据的二进制。 A:获取130这个数据的二进制。
00000000 00000000 00000000 10000010
这是130的原码,也是反码,还是补码。
B:做截取操作,截成byte类型的了。
10000010
这个结果是补码。
C:已知补码求原码。
符号位 数值位
补码: 1 0000010 反码: 1 0000001 原码: 1 1111110
*/
/*
看程序写结果 通过字符和一个整数相加,我们要知道ASCII码表。
通过看完这张表以后,我们要记住三个值:
'a' 97
'A' 65
'0' 48
*/
public class Text {
public static void main(String[] args) {
//直接输出一个字符
System.out.println('a'); //输出结果为 a
//输出一个字符和一个整数做加法
System.out.println('a'+1); //输出结果为
}
}
Java语言基础(回头复习)的更多相关文章
- 第二十六节:复习Java语言基础-Java的概述,匿名对象,封装,构造函数
Java基础 Java语言概述 Java语言 语言 描述 javaee 企业版 javase 标准版 javame 小型版 JDK JDK(Java开发工具包) Java语言 语言 Java语言 Ja ...
- 2018.6.13 Java语言基础复习总结
Java语言基础与面向对象编程实践 第一章 初识Java 1.1机器语言 机器语言是指一台计算机全部的指令集合.机器语言室友0和1组成的二进制数,是一串串由0和1组成的指令序列,可将这些指令序列交给计 ...
- Java语言基础(一)
Java语言基础(一) 在这里说明一下,有基础的跳过 高手跳过.在这里我想复习以前的东西,以及给正在学java的一些帮助 我用的MyEclipse8.5编写java代码,有需要联系我 QQ:9035 ...
- Java学习总结(二)----Java语言基础
1. Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...
- java语言基础02
一.Java语言基础(常量的概述和使用)(掌握) 1:什么是常量 就是在程序的执行过程中其值不发生改变的量. 2:Java中常量的分类 (1):字面值常量 (2):自定义常量(面向对象部分讲解) 3: ...
- Java之--Java语言基础组成—数组
Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...
- Java之--Java语言基础组成—函数
Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...
- Java之--Java语言基础组成(关键字、标识符、注释、常量和变量、运算符)
Java语言基础组成-关键字.标识符.注释.常量和变量.运算符 Java语言由8个模块构成,分别为:1.关键字:2.标识符(包名.类名.接口名.常量名.变量名等):3.注释:4.常量和变量:5.运算符 ...
- Java语言基础(二) Java关键字
Java语言基础(二) Java关键字 Java关键字比较多,我就不列举出来了,只记录一些常用的小知识点: ①Java的关键字只有小写. ②then.sizeof都不是Java的关键字,熟悉C++的程 ...
- Java语言基础(九)
Java语言基础(九) 一.自增运算(++) 自减运算(--) i++ 就是将i+1再赋给 i i-- 是将i-1再赋给 i 对变量i,j来说,i++ 或++i 这里没什么区别,都是将i的值加1后,再 ...
随机推荐
- Java线程状态中BLOCKED和WAITING有什么差别?
刚才在看CSDN的问答时.发现这个问题. 原问题的作者是在观察jstack的输出时提出的疑问.那么BLOCKED和WAITING有什么差别呢? 答复在JDK源代码中能够找到,例如以下是java.lan ...
- 左手系,右手系,row major, column major
http://www.cnblogs.com/minggoddess/p/3672863.html dx 左手系 row major ogl 右手系 column major 差了个 matrix ...
- Android API Guides---Layouts
布局定义了视觉结构的用户界面.如活动或应用程序插件的用户界面. 您能够通过两种方式申报的布局: 声明在XML UI元素. Android提供了相应视图类和子类,如那些部件和布局一个简单的XML词汇表. ...
- java8新特性学习笔记(二) 使用流(各种API)
筛选和切片 用谓词筛选,筛选出各个不相同的元素,忽略流中的头几个元素,或将流截断至指定长度 用谓词筛选 Stream接口支持filter方法,该操作接受一个谓词(返回一个boolean的函数) 作为参 ...
- 【Python】程序在运行失败时,一声不吭继续运行pass
在前面程序出现异常时,我们都会给一个提示,告诉用户,程序为什么会异常,但是现在我们想在程序出现异常时,不做处理,让程序默默的往下执行,不要做声. 那么我们就引入了pass语句 def count_wo ...
- python windows package/module 安装
方法一: cmd中运行pip install xx 注意:1.pip添加至环境变量 2.系统自带这些安装模块 运行pip freeze > requirements.txt 可以在require ...
- ArcMap中使用ArcPy实现Geometry与WKT的相互转换
在Web GIS迅猛发展的今天,使用浏览器来进行交互以其方便性.快捷性被广大用户所推崇,那么在传输格式方面,都已比較简单的JSON或者WKT来解决网络带宽带来的数据压力. 在ArcGIS10.2版本号 ...
- Java中的线程池ExecutorService
示例 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.u ...
- Chrome + Python 抓取动态网页内容
用Python实现常规的静态网页抓取时,往往是用urllib2来获取整个HTML页面,然后从HTML文件中逐字查找对应的关键字.如下所示: import urllib2 url="http: ...
- 在4x4的棋盘上摆满了黑白棋子,黑白两色的位置和数目随机其中左上角坐标为(1,1),右下角坐标为(4,4),现在依次有一些翻转操作,要对一些给定支点坐标为中心的上下左右四个棋子的颜色进行翻转,请计算出翻转后的棋盘颜色。
// ConsoleApplication10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream& ...