- 浏览: 105870 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
小小诺:
博主实例2中的代码博主难道没有测试吗?“工资总额不能超过6万元 ...
PLSQL -
emilyzhanghong:
我一般都用工具导入导出,语句记不住.
ORACLE 导入导出
一.常量与变量
1.概念:变量就是内存中的一个存储区域,它有自己的名称和类型。在这个区域中的数据,可以在同一类型范围内不断变化。其实变量就是用来存储某些常量的内存空间。
那么为什么要定义变量呢??
原因就是,它所存储的数据可以在同一类型范围内不断变化,进而可以重复利用。
定义变量的格式:
数据类型 变量名 = 初始化值
注:格式是固定的,记住格式,以不变应万变。
理解:变量就如同数学中的未知数。
2.数据类型
4类八种 1.byte的取值范围是-128到127,即-2的7次方,到2的7次方减1。
2.老师用了一个很容易记得例子来描述基本数据类型所占的字节:
一个字节就相当于一两饭,byte 能装一两饭(指占一个字节),short,char能装2两饭,int,float能装4两饭, long,double能装8两饭。
注意:1.一个中文也是2个字节,所以用char来存储中文,也是可以的。Char的取值范围是0到65535。
2. 一个float类型,必须对其存储的小数数据结尾处添加f标识。表示只取该小数的单精度。
3.类型转换
分为两种:一种是自动类型转换(隐式类型转换),另一种是强制类型转换(即显式类型转换)。
自动转换:所有short,byte,char,自动转换为int型。(整型默认的是int型)
小数默认的是double型。
1如果一个操作数是long型,计算结果就是long型;
2 如果一个操作数是float型,计算结果就是float型;
3 如果一个操作数是double型,计算结果就是double型。
注意: 不同数据类型之间是不可以直接进行运算的,
需要转换成同一个类型才可以进行运算。
数值类型因为都代表具体整数和小数,是可以转换的。
通常以占内存空间较大的类型为主,进行转换。
强制转换: x=2;
在需要被转换的数据前面,加上你想要的转换成的类型即可,如:byte b = (byte)(x + 4)
面试题:
class VarTest
{
public static void main(String[] args)
{
//byte b = 3;
//b = b + 1;//错了。因为1默认就是int类型,所以b+1时,b会自动类型提升为int类型。
//相加的结果还是int类型,所以赋给b装不下。
//b = (byte)(b+1);//一般做这样强制转换的不多。
// byte b3 = 2 + 7;//2和7都是常量,而且加完的结果也是一个常量,9在byte范围内,所以自动转换成byte类型。
byte b1 = 2;//其实2是int类型,在编译时,编译器会判断具体的常量值是否在byte类型范围内。
//如果在,会将其转成byte类型存储到byte的空间中。这个转换动作是自动的。
byte b2 = 7;
//byte b4 = b1 + b2;//错误,因为b1 b2的值是不确定的。所以默认都是用int存储的。
//因为加完的结果有可能超出byte范围,丢失精度。
char ch = 'a';
System.out.println((char)(ch+4));//98//ch和1运算,ch进行提升为int类型,因为字符都有对应的编码表中的数字
//所以ch提升为int后,就是97.因为字符a对应的数字就是97.
//String s = "abc";//定义一个字符串数据。
System.out.println("4+5="+4+5);//任何数据和字符串相加都是相连接。连接后,会变成一个新的字符串。
//"4+5="+4="4+5=4"+5 = "4+5=45"
/*
结论:
当右边的数据是常量值时,编译器会判断是否在左边的类型范围之内,如果在,会自动转换成左边的类型。
当右边的数据是变量时,编译器会使用默认的类型进行存储。如果左边的类型占用空间小于默认类型,
如果不做强制转换,会容易丢失精度。编译会失败。
*/
}
二. 运算符
1. 算术运算符
包括:+ - * / % ++ - -。
需要注意的问题:1.去模时,左边小于右边,结果是左边。 如:2%3 结果就是 2
左边等于右边,结果是零。 如:2%2 结果为0
2.运算中,只参考被模数(指左边的数)的正负号。如:-2%3= -2 ; 2%-3 = 2
3.++ -- 的一些问题 :
int a = 3,b;
//b = a++;//自增就是在变量原有数据的基础上+1,然后将+1后的结果赋值给该变量。
b = ++a;
/*
如果是 b= a++;a在前面,a先参与其他运算,比如将a的值赋值给b。然后a在自增,将a+1的结果赋值给a。
如果是 b= ++a;++在前面,先运算,将a+1的结果赋值给a。然后,a在参与其他运算,比如:将a的结果赋值给b。
如果a++;不参与其他运算,而是单独一条语句,++在前在后都一样。
*/
2. 赋值运算符
包括:= , +=, -=, *=, /=, %=
注意: =:将右边赋值给左边。
+=:将左右两边的和赋值给左边。
面试题:
short s = 5;
s = s + 2;
s+=2;
问:代码是否有问题? 这两句代码有什么区别?
答:区别一:第一句代码不能通过编译,第二句代码可以通过编译(因为赋值运算符,会做自动转换动作。)。
区别二:第一句的代码是两步运算,第二句的代码是一步运算。它相当于s=2,只不过呢,它是把左右两边的和赋值给的s。
3.比较运算符
包括:> < >= <= == !=
比较运算符运算的结果只有两种值:要么是true。要么是false。
4. 逻辑运算符
逻辑,可以理解为关系。
它包括:与:& 或:| 非:! 异或:^ 短路与 && 短路或 ||
它们的作用是:用于连接两个boolean类型的表达式。
& 和 && 的区别:
&:无论左边的结果是true还是false,右边都会被运算。
&&:当左边为false时,右边是不参与运算的。
简单说:
&:两边都执行。
&&,只有左边是false右边不执行,剩下的剩下情况都执行。
| 和 || 的区别:
|:无论左边的结果是true还是false,右边都会被运算。
||:当左边为true时,右边是不参与运算的。
简单说:
|:两边都执行。
||,只有左边是true右边不执行,剩下的剩下情况都执行。
5. 位运算符
它是专门用于操作二进制位的运算符。
左移:<< :左移就是乘以2的次幂。左移几位,就乘以2的几次幂。
右移:>> :右移就是除以2的次幂,右移几位,就除以2的几次幂。
注意:右移后,高位出现的空位,按照原来高位的值进行补位,如果原来最高位值是0,就用0补空位。
如果最高位是1,就用1补空位。
无符号右移:>>> : 右移后出现的空位,都用0补,不参考原来最高位的值。
~ 这个运算符,叫作反码。如:~6 = -7
注意:计算的时候,先转换为二进制,再进行运算。
如:6&3 即 110
& 011
010 它转化为十进制就是2
面试题:
问题是: 对两个整数变量的值进行互换(不需要第三方变量)
答案: int x = 3,y = 5;//要求置换后:x = 5,y = 3;
//这是利用了异或的特性。面试要答这个答案。 而开发时,要使用第三方变量的形式。
//因为异或这种形式,阅读性很差,而第三方变量容易阅读和理解。
x = x ^ y;//x = 3 ^ 5;
y = x ^ y;//y = (3 ^ 5) ^ 5 = 3;
x = x ^ y;//x = (3 ^ 5) ^ 3 = 5;
6. 三元运算符
格式是:(条件表达式)?表达式1:表达式二
三. 程序流程控制
1. 判断结构
包括:1.if(){ } 2.if() { } else 3. if(){} else if{} ……. Else
注意:三元运算符是if else的简写格式。
好处:简化书写。看起来更加简单明了。
弊端:只能是在if else执行完有具体数据结果时,才可以进行简写。
如:if(x > 2){ System.out.println(“ ok”);}
else
System.out.println(“no”); 这种就没有具体的数字结果,所以无法简写。
但是呢 int x=1 , y=3, z ;
If(y>x){ z = y;} else { z = x;} 这种的就可以简写,因为有数字结果。
简写就可以写成: z =(y > x)? y : x;
2. 选择结构
格式:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
…...
default:
执行语句;
break;
}
特点:
1,和switch语句结束大括号相邻的break可以省略不写。写上也没问题。
2,switch语句的所有答案,没有固定的顺序。可以任意排放。但是执行时,肯定从第一个case执行。
3,switch语句结束,有两种方式。1,执行到break,2,执行到switch语句结束大括号。
4,被选择的值的类型是有限定的。只能接受byte short int char。四种类型的值。
5,当所有的case都没有匹配时,就会执行default语句。
switch特殊情况:
当匹配的case没有对应的break,那么switch语句会继续执行下面可以执行代码,不会在判断其他case。
将能执行的代码执行完,直到遇到break,或者执行到switch语句。
但是什么时候使用判断结构,什么时候使用选择结构呢???
f和switch的应用场景:
1,对几个值进行判断的时候,
可以用if,也可以用switch。但是建议使用switch。因为swtich效率稍高。
注意:switch有局限性,1,只能是固定个数的值,不能太多。2,类型有限定,只能是byte short int char。
2,对于数据区间的判断,使用if语句。
对于运算的结果是boolean类型的数据,也可以使用if语句。
相对而言,if较为常用。switch较为少用。
所以在JDK不断升级过程中,对switch也进行了升级。
JDK5.0. switch语句多一种支持的数据类型 enum.枚举。
JDK7.0 switch语句又多一种支持的数据类型 String 字符串类型。
四. 总结:
今天的很多东西,在以前已经学过,但是很多细节上的知识,我在以前是没学到的。今天我觉得收获最大的应该就是赋值运算了,如:a = a + 1; a += 1。它们的区别,以前没了解过,今天一听课,才恍然大悟。明天讲解循环,函数。数组。感觉学的东西越来越多,我还应该更努力的去学习才行。
师傅,今天没有问题呢, 。其实我也不想这么花哨的,但是为了以后复习看起来有针对性,我就不得不整成这样了,加颜色的部分,我是得侧重看的,以后要是工作了,我就不会这样弄了。其实花哨了也浪费了好多时间。唉。师傅,我睡觉去了,明天任务很重,后天我休息。我到时候把这3天的都再压缩总结一下。辛苦师傅啦!!嘿嘿。
发表评论
-
db2 with函数使用
2012-08-15 10:59 1007WITH T1 AS( SELECT CGBT.SEGM ... -
db2 数据 对象备份
2012-07-28 17:03 778CREATE OR REPLACE FUNCTION RSPD ... -
Java_sokect 网络通信
2012-05-10 23:52 922客户端程序 package tcp; import j ... -
jdk下载以及Windows 安装
2011-12-29 20:13 1287http://www.oracle.com/technetwo ... -
JAVA基本功<8>_面向对象
2011-12-15 00:22 709一.面向对象的特点: ... -
JAVA基本功<7>_JDBC
2011-12-15 00:19 1083一、jdbc基本概念 jdbc : Java Database ... -
JAVA基本功<6>
2011-12-15 00:16 780一. 1. 循环结构 1. while 语句格式: ... -
JAVA基本功<4>
2011-12-15 00:09 7521:人机交互的方式: 一 ... -
J2SE基本功<3>
2011-09-27 15:35 687public class Test1 { public ... -
日期处理
2011-09-12 23:50 814http://changguangjuan.blog.163. ... -
泛型总结
2011-09-08 09:58 751package daan; /* 使用泛型类的限制和 ... -
J2SE基本功<2>
2011-09-07 09:06 669http://blog.csdn.net/java334452 ... -
J2SE基本功<1>
2011-08-16 22:55 611一、Java是一门高级语言,具有跨平台性(一次编译到处运行)1 ... -
IO文件读取
2011-08-01 08:51 678斯蒂芬 -
String数组的二分排序
2011-07-31 18:04 1489public class Bsearch { /* ... -
JAVA编程练手题
2011-07-04 23:48 27831:写一个方法(函数):判断一个单链表中是是否有环? 2:串行 ... -
代理模式
2011-06-16 09:54 632使用动态代理不需要为特定对象与方法编写特定的代理对象,可以 ... -
策略模式
2011-06-09 00:11 717策略模式:高内聚 低耦合 可扩展(OCP) 在策略与最终用 ... -
正则表达式
2011-05-30 15:13 658import java.util.regex.Matcher; ... -
JSP 连接MySQL数据库
2011-05-29 20:23 763<%@ page contentType="t ...
相关推荐
HTML5引入了更多语义化标签,如`<header>`、`<footer>`、`<section>`、`<article>`等,提高了网页内容的可读性和可访问性。 CSS允许开发者对这些HTML元素进行样式设定。可以使用选择器(如类选择器 `.class`,ID...
其中的一道试题: <br>面向对象程序设计以_(1)_为基本的逻辑构件,用_(2)__来描述具有共同特征的一组对象,以_(3)_为共享机制,共享类中的方法和数据。<br><br>(1) A.模块 B.对象 C.结构 D.类<br>(2) A.类型 B....
了解并熟练掌握`web.xml`配置是每个Java Web开发者的基本功,它可以帮助我们更精确地控制应用的行为,提高代码的可维护性和可扩展性。通过不断实践和调整,你可以根据需求定制出最适合你的应用的配置方案。
在HTML5中,新增了如`<header>`、`<footer>`、`<section>`等语义化标签,以更好地表达网页的结构。 CSS(Cascading Style Sheets)则是用来控制网页样式的语言。它可以定义颜色、字体、布局以及不同设备上的显示...
"java 基本功训练题及参考答案"这个资料集合显然就是为了帮助Java初学者巩固基础而设计的。 文档"Java编程基本功训练题及参考答案(50+10).doc"很可能包含了50个基础编程题目和额外的10个进阶问题,覆盖了Java语言的...
《疯狂Java:突破程序员基本功的16课》是一本专为Java初学者和有经验的程序员设计的书籍,旨在通过一系列深入浅出的课程,帮助读者巩固和提升编程技能,从而达到“疯狂”提升Java编程能力的目标。这本书涵盖了程序员...
疯狂Java 突破程序员基本功16课1 完全清晰版 5分超低分 挥泪相送啦!这是第二部分 记得下第一部分哇!
《疯狂Java:突破程序员基本功的16课2》是一本深入浅出的编程学习书籍,专注于提升程序员的基础技能。作者李刚以其丰富的教学经验,精心设计了16个课程,旨在帮助读者全面掌握Java编程的核心知识,为日后的职业发展...
Java基本功面试专题涵盖了许多核心概念,是求职者在准备Java相关职位面试时不可或缺的知识点。这份2W字的详细资料可能包括了类与对象、数据类型、控制结构、异常处理、内存管理、多线程、集合框架、IO流、网络编程、...
对于提升java程序员的基本功十分有帮助,让你深入理解java的内在。也可用于面试
灰灰老师 Java基本功:List转Map List的几种姿势
<voicePrice>0.1</voicePrice> <signZH>中文签名</signZH> <signEN>英文签名</signEN> </resp> ``` **返回值说明**: - **code**:返回状态码,其中`1000`表示操作成功,其他状态码的含义参考附录中的`code`...
根据提供的文件信息,我们可以推断出这是一本关于Java编程技术的书籍——《疯狂Java突破程序员基本功的16课》。尽管没有提供具体的章节内容,但基于书名及其描述,我们可以合理推测这本书的主要内容是帮助程序员提升...
String xmlString = "<students><student><name>John</name><age>30</age></student><student><name>Jane</name><age>28</age></student></students>"; DocumentBuilderFactory factory = DocumentBuilderFactory....
疯狂Java:突破程序员基本功的16课.修订版。。
内容讲解的很详细,对java程序员有一个质的提升,欢迎大家下载
"突破程序员的java基本功代码"这个主题旨在帮助Java程序员深化对基础概念的理解,提升编程技能,从而在职业生涯中实现突破。下面将详细探讨Java编程的基本知识点。 一、Java语法基础 Java的语法结构严谨,它借鉴了...