java语言 U_Java语言的基础
Java语言的基础
转义字符:
\n
回车(\u000a)
\t
水平制表符(\u0009)
\b
空格(\u0008)
\r
换行(\u000d)
\f
换页(\u000c)
\'
单引号(\u0027)
\"
双引号(\u0022)
\\
反斜杠(\u005c)
\ddd
三位八进制
\udddd
四位十六进制
字符串类型,是用String表示的类型,①直接赋值,如:Stringstr=”hello”(直接存储在栈里,寻找具有hello的字符串,如果已经有则直接指向hello,如果没有过就开辟一个hello空间);②用new创建字符串对象,如:String str=new String(” hello”)(每创建一个new对象,就在堆中开辟一个对象空间,栈中的地址指向堆的内容);
引用类型:类类型,接口类型,数组类型
定义:引用类型的值是指向内存空间的引用,就是地址,变量引用(地址)存在栈中,而对象存在堆中。
引用数据类型包括:类,数组,接口
基本数据类型和引用类型的区别主要在于基本数据类型的`量和内容是分配在栈上的,而引用类型的量被分配在栈内存里,而真正内容是分配在堆上的,栈通过指针指向堆上的内容。
实例:我们分析一下”==“和equals()的区别。
①定义两个string对象(引用类型)
stringa="abc"; //a指向堆中一个对象的地址
string b="abc"; //b指向堆中另一个对象的地址
然后
if(a==b){system.out.println("a==b");}
else
{system.out.println("a!=b");}
程序输出a!=b
原因:a和b的地址是不相同的,a==b比较的是两个变量的地址,所以地址不相等;
②定义两个基本类型
int a=4;
int b=4;
if(a==b){system.out.println("a==b");}
else
{system.out.println("a!=b");}
输出:a==b
原因:==比较的是两个变量的内容
结论:不论是基本数据类型还是引用类型,他们都会先在栈中分配一块内存,对于基本类型来说,这块区域包含的是基本类型的内容;而对于对象类型来说,这块区域包含的是指向真正内容的指针,真正的内容被手动的分配在堆上
User user; .栈区 局部变量
UserDAOuserDao; .方法区 静态成员变量
User[] users; .堆区 实例变量
类型转型:自动类型转换和强制类型转换
自动类型转换:由低精度类型向高精度数据类型的转换,如:bytebt=5;int it=bt;
强制类型转换:与自动转换相反,如:inti=16;byte bt=(byte)i;
相等性测试:==和equals()
1.4操作符(运算符)
分类:算术运算符,布尔运算符,关系运算符,位运算符,赋值运算符,条件运算符,字符串运算符,逗号运算符,其他运算符;
①算术运算符:
单目:+ (取正) - (取负) ++ (自增1) - - (自减1),如:i=0,j=0; j=i++(i=0,j=1);j=++i(i=1,j=1)
双目:+ - * / %(取余)
三目:a>b?true:false
说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"
②关系运算:
= =(等于),!= (不等于),> (大于),< (小于), >= (大于等于) ,<= (小于等于)。
③位运算符:
位运算符 与(&)、非(~)、或(|)、异或(^)
&:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000
| :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110
~:0变1,1变0 。如~1010=0101
^:两边的位不同时,结果为1,否则为0.如1100^1010=0110
④逻辑运算符:
与(&&)、非(!)、或(||)
⑤赋值运算符:
= += -= *= /= %= &= ^= |= <<= >>=
⑥其他
运算符优先级
按优先级从高到低排列如下:[ ] ( ) ++ -- ! ~ instanceof * / % + - << >>>>> <> < = > \ == != &^& & || ? := op= 。(口决:算关位逻赋)。
注:instanceof:测试某个对象是否是指定类或其子类的实例,。是Java的一个二元操作符,Java的保留关键字;作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。可以用在继承中的子类的实例是否为父类的实现。instanceof 一般情况下用在对象类型的强制转换。如:if(myObjectinstanceofMyClass){MyClassanothermyObject=(MyClass)myObject;…}是判定myObject是否是MyClass的实例或是其子类的实例。
<
>>:右移(带符号)
>>>:添零右移
没有必要去记忆运算符号的优先级别,在编写程序时可尽量的使用括号来实现你想要的运算次序,以免产生难以阅读或含糊不清的计算顺序.运算符的结合性决定了并列相同级别的运算符的先后顺序,例如,加减的结合性是从左到右,8-5+3 相当于(8-5)+3.逻辑否运算符的结合性是右到左, x 相当于!(!x).表3.4是Java所有运算符的优先级和结合性。
当运算符进行数值运算时,结果类型默认高精度者,如:longa=1.23456,float b=2.123, c=a+b,c为long型。
1.5表达式
指用运算符连接起来的符合Java 规则的式子,如:c=a+b
1.6语句
赋值语句:
流程控制语句:
判断语句(if三种语句,switch语句)
① 简单if条件语句,描述:当表达式返回true 时,执行语句1(或语句块);当表达式返回false 时,直接执行下面的语句。如:if ( x>90 ) System.out.println("Good!");
② if…else…语句,描述:当布尔表达式返回true 时执行语句块1,否则执行语句块2;如:if (x>60)
System.out.println("Pass!");
else
System.out.println("No pass!");
③ if…else if…语句,描述:多分支语句,如:
int score;
char grade;
score=Integer.parseInt(args[0]);
if (score>=90)
grade=’A’;
else if(score>=80)
grade=’B’;
else if (score>=70)
grade=’C’;
else if (score>=60)
grade=’D’;
else
grade=’F’;
System.out.println("Score="+score+" Grade="+grade);
④ switch语句:描述:适合于用某个值来检测一个变量是否符合某个条件;
switch(条件表达式){
case 常量表达式1:
语句块1;
break;
…
case 常量表达式n:
语句块n;
break;
default:
语句块n+1;
break;
如:int week=3;
Switch(week){
Case 1:
System.out.println(“星期一”);
Break;
Case 2:
System.out.println(“星期二”);
Break;
Case 3:
System.out.println(“星期三”);
Break;
…
default:
System.out.println(“请输入有效数字!”);
}
循环语句(for语句,while语句,dowhile语句)
for语句:
for(初始化语句;循环条件;迭代语句){
语句序列(循环体)
}
java语言 U_Java语言的基础相关推荐
- java case用法_Go语言 | goroutine不只有基础的用法,还有这些你不知道的操作
今天是golang专题第15篇文章,我们来继续聊聊channel的使用. 在我们的上篇文章当中我们简单介绍了golang当中channel的使用方法,channel是golang当中一个非常重要的设计 ...
- Java回炉之语言基础
Java回炉之语言基础 Java回炉之语言基础 DOS命令 java编译过程 path和classpath的区别 关键字表 数据类型 位运算 算数优先级 内存划分 类的初始化过程 static关键字特 ...
- 给Java开发者的Flutter开发基础---Dart语言
接近半年没有在简书冒泡了.这段时间一是忙于使用云信IM开发相应项目,二是整理和收集相关Flutter的相关资料进行学习.国内关于Flutter的资料还是太过于稀少,以至于我只能去YouTube和Ude ...
- Java之J2se-Java语言基础(程序结构) 教学视频发布了,请小伙伴们前往观看
Java之J2se-Java语言基础(程序结构) 教学视频发布了,请小伙伴们前往观看 视频地址如下: http://v.youku.com/v_show/id_XODA5NTM3NTAw.html
- 笔记整理2----Java语言基础(二)06 断点调试与数据加密+07 面向对象-类与对象+08 java常用API-基础+09 java集合+10 IO流-基础
06 断点调试与数据加密+07 面向对象-类与对象+08 java常用API-基础+09 java集合+10 IO流-基础 第06天 java基础语法 今日内容介绍 Eclipse断点调试 基 ...
- c语言 python-C语言、Java语言和python语言的区别在哪里
原标题:C语言.Java语言和python语言的区别在哪里 我们经常听到C语言.Java语言和python语言,那么这三者的区别在哪里呢?随着科技的进步以及新技术的推进,编程语言的种类也是越来越多,随 ...
- 人工智能用python还是java_学会java和python语言,可以开始搞人工智能吗?
作为一名软件开发工程师,个人认为,当你学会Java和Phthon语言使用后,不建议你直接上手人工智能.下面我来说一下个人看法: 人工智能领域门槛较高 人工智能对于一般同学而言,其入门门槛相对较高,你虽 ...
- java和c语言的区别_单片机为什么一直用C语言,不用其他编程语言?只有学过的知道...
单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言. 这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢 ...
- mysql解释器_atitit.java解析sql语言解析器解释器的实现
atitit.java解析sql语言解析器解释器的实现 1. 解析sql的本质:实现一个4gl dsl编程语言的编译器 1 2. 解析sql的主要的流程,词法分析,而后进行语法分析,语义分析,构建sq ...
最新文章
- Docker 容器中“TERM environment variable not set.”问题解决
- tar.gz及tar.bz2两种常见格式的打包压缩及解压方法
- 51单片机c语言电子钟(已加入调时 '整点报时功能1),51单片机c语言电子钟(已加入调时、闹铃、整点报时功能1)万年历2...
- Java访问修饰符——用于控制可见性
- Linux命令行设置环境变量
- 署名用by还是from_介词专题|工作“到7点”是By 7pm还是Until 7pm?
- 分享视频分析软件常用的几个C++库
- C# 通过调用Microsoft Office编辑Word文件
- 计算机专业 外文数据库,计算机专业外文翻译原文 数据库管理系统介绍.doc
- C# wpf ScrollBar自定义音量调节样式滚动条
- 通过slave_exec_mode=IDEMPOTENT跳过主从复制中的错误(1032 1062)
- 进程控制 父进程子进程 fork pid
- HTML 如何让图片自动改变大小,CSS如何设置图片的大小
- appinventor HTML5,App Inventor编程教程-第18课-创建动画应用
- Video Caption
- Unity烘焙基础操作
- ubuntu 17\18.04 调节鼠标指针速度
- APEX是NVIDIA PhysX技术的一个强有力的补充
- oracle预收核销,Oracle EBS AP取消核销
- 爬虫获取的数据和在自己浏览器看到的不一样