小萌新的你看了这个之后是不是就会写第一个java了呢
java开始写第一个程序
接下来进入java的正题吧
一:语言基础
**数据类型**(以代码的形式给你们吧,好看
class //类
intface //接口
byte //字节
short //短整型
int //整形
long //长整型
float //单精度浮点型
double //双精度浮点型
char //字符型
boolean //
void //空的没有返回值
定义值
true //
false //
null //对象不存在
定义流程控制的关键字
if //如果
else //否则
switch //切换
case //案例
default //默认,缺省
while //循环(当...时
do //
for //循环
break //中断
continue //继续进入下一次循环
return //换回
! 修饰符 modifier
private //私有的
protected //受保护的
public //公开的
abstract //抽象的
final //最终的
static //静态的
non-static //
synchronized //同步
extends //拓展,继承
implements //实现
new //新建
this //这个
super //超类的,父类的
instanceof //是否时xxx的示例
try //尝试
catch //捕捉
finally //最终
throw //抛
throws //申明要抛
package //包
import //导入
native //本地的
transient //暂时的
volatile //cpu不进行优化处理的
assert //断言
二:注释
1.文档注释
类顶端
/*********
* xxx *
**************/
2 单行注释
//
xxxxx
xxxxx //
3.多行注释
/*
xxxx
*/
三:标识符
包名:多单词组成时所有字母都小写。xxxyyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写XxxYyyZzz
变量名和函数名:多单词组成,第一个单词首字母小写,第二个单词开始时每个首字母大写。xxxYyyZzz
常量名:所有单词都大写。多单词时每个单词用下划线链接。
XXX_YYY_ZZZ
注意:由26个英文字母大小写,数字:0-9 符号:_$组成
1,数字不可以开头
2,不可以使用关键字。
特殊字符:
c='\t';//制表符
'\t' //tab
'\r' //return
'\n' //new line
四:常量与变量
1:java常量分类
1:整数常量
2:小数常量
3:(boolean)布尔型:true/false
4:字符常量,将一个数字字母或符号用单引号标识(’’)
5:字符串常量。将一个或者多个字符用双引号("")标识。
6.null常量,只有null
2:变量概念:
内存中的一个存储区域
该区域有自己的名称或者类型
该区域的数据可以在同一类型范围内不断变化
为什么要定义变量:
存放同一类型的常量,并可以重复使用
使用变量注意:
变量的作用范围(1对{}之间有效)
初始化值
定义变量的格式
数据类型 变量名=初始化值
注:格式是固定的,记住格式
理解:变量就如同数学中的未知数
变量分类
强类型语言
----------
定义变量必须先定义 int
String name =“xxxx”;
name 变量,xxxx是常量
java中8中基本数据类型
1 byte 1
2 Short 2
3 int 4
4 long 8
5 float 4
6 double 8
7 boolean 1
8 char 2
简单类型:
引用类型
1 class
2 interface
3 数组[]
整数默认int,小数默认double
语言类型之间的转化:
如:int age ;
byte b=age;
//byte 是静态的,从 int转化为byte可能会丢失
//所以 byte b=int age 会错误,数据不一样,可能会出现丢失
怎么解决呢
这样写:byte b =(byte)age 强制类型转化
解释:如:团长变成排长,会丢失自己的各种团长该有的,所以团长不干!但是军令已达必须做,所以他要强制转换;
所以:强制转换:一般在降格的时候使用
给大家一个强制转化的代码
class CommentDemo{
public static void main(String[] args){
int age =13;
byte bbb=12;
bbb=(byte)(bbb+1);
System.out.println("hello world"+bbb);}
}
分析:
System.out.println(‘a’)
System.out.println(‘a’+1)区别:第二个运算时都变成整形再加
只要由加减乘除,都会被运算时都变成整形再运算
案例:byte bbb=13;
bbb=bbb+3;//报错
一旦用运算符就自动升格,要强制转化
bbb=(byte)(bbb+3)就ok
五:进制转化
进制类型
二进制:0,1,满2进1
八进制:0-7,满2进1
十进制:0-9,满10进1
十六进制:0-9,A-F,满16进1,用0X开头表示
进制转化
十进制 二进制 互转
十进制转成二进制 除以2取余数
二进制转成十进制 乘以2的幂数
十进制 八进制 互转
十进制 十六进制 互转
负数的二进制表现形式
对应的正数二进制取反加1
重点:二进制取反
第一位。0是整数,1是负数
二进制相加逢2进1
案例:0000 0011 (3)
取反:1111 1100
再加1:1111 1101=-3
注意:取反加1.加到九位数时:一个字节八位存储 最高位9位不存在的额就溢出了
六:运算
算数运算符:
算数运算符注意:
class Yunsuan{
public static void main(String[] args){
int a=+5;
int b=-5;
System.out.println("a="+a+",b="+b);
System.out.println("a="+(+a)+",b="+(-b));
//+-*/
System.out.println(5+5);
System.out.println(5-5);
System.out.println(5*5);
System.out.println(5/5);
//取模
System.out.println(5%3);
//自加自减++ --
int a1=5,a2=5;
System.out.println("a1="+(a1++));//输出a1自增之前的数
System.out.println("a2="+(++a2));//输出a2自增之后的数
//+,操作符重载
System.out.println("hello"+"world");
System.out.println("5+5"+5+5);//为55
System.out.println("5+5"+(5+5));//为10
}
}
*赋值=+= -= = /
class Yunsuan{
public static void main(String[] args){
int a3=5;
System.out.println("a3+="+(a3+=3));//这个地方必须变量
short s=2;
s=(short)(s+2);
System.out.println(s);//s+=2可直接转换但是s=S+2不可以需要强制
}
}
比较运算符== <> >< !=
class Yunsuan{
public static void main(String[] args){
//比较运算符== <> >< !=
boolean res = 5<=5;
System.out.println(res);
System.out.println(5!=5);
Object o="hello";
//inttanceof判断对象是否是指定类型。innstanceof后面跟引用类型
//int就不可以,instanceof 是模糊判断,后期给大家更新判断类型
//System.out.println(o instanceof String);
}
}
逻辑运算符
class Yunsuan{
public static void main(String[] args){
// && ||存在短路操作,当前面操作满足时,&&||后面表达式就不参与了
int c1=3,c2=1;
if(c1>5&&c2>5){
System.out.println("ok");}
if(c1>5||c2>5){
System.out.println("ok");}
//& | ! ^
if((c1>5)&(c2>5)){
System.out.println("ok");
}
else{
System.out.println("no ok");
}
//&&与&区别
//&&
//System.out.println(5&&6),错误
System.out.println(false&&true);
//可以运行,可以编译,所以&&两边是bool
//&
//5 0000 0101
//6 0000 0110
//&运算,就是×
//------------
//4 0000 0100
System.out.println(5&6);
//|
//5 0000 0101
//6 0000 0110
//&运算,就是+,
//------------
//7 0000 0111
System.out.println(5|6);
//& | 不存在短路可能
//转换成两个数字的位运算,不会出现短路的
}
}
取反
class Yunsuan{
public static void main(String[] args){
//取反
boolean b0=3>4;
//应该时false,取反后为true,!对Boolean类型取反
System.out.println(!b0);
//按位取反~
//0000 0000 0000 0000 0000 0000 0000 0101
//1111 1111 1111 1111 1111 1111 1111 1010
//0000000000000000000000000000000000 0110
System.out.println(~5);
}
}
异或^
class Yunsuan{
public static void main(String[] args){
//异或^相同为假不同为真
//^0101 =5
//^1100 =12
//-----
// 1001 =9
System.out.println(5^12);
}
}
移位运算
class Yunsuan{
public static void main(String[] args){
//移位运算
//<< 左移动
//>> 右移动
//<<
// 0000 1010=10
//0000 101000=0010 1000=40
System.out.println("10<<2="+(10 << 2));
System.out.println("-6<<2="+(-6 << 2));
//>>右移动>>>无符号右移动
//>>有符号移动,填充最高位
System.out.println("-6>>2="+(-6 >> 2));
//>>>无符号右移动,空出的位置用0填充
System.out.println("-6>>>2="+(-6 >>> 2));
}
}
三元运算符
class Yunsuan{
public static void main(String[] args){
//三元运算符 ?:;
int i1 =10;
if (i1<5){
System.out.println("<5");
}
else{
System.out.println("<5");
}
System.out.println(i1<5?"i1<5":"i1>=5");
//三元运算符就是if,else的简写
//输出三个数中的最大值(三元运算嵌套
int x=5,y=6,z=7;
System.out.println(x>y?(x>z?x:z):(y>z?y:z));
}
}