public class Helloworld { public static void main(String[] args) { System.out.println("hellowprld"); //输出一个Hellowprld /*我是多行注释 */ /** * * 我是文档注释 */ } }
public class Demo01 { public static void main(String[] args) { String Alloh="dhij"; String hello="jdgh"; String _dja="ugd"; String 1hauf="bhuf"; String #jfbhg="gy";//错误 String class=" b";//错误 } }
java所有的组成部分都需要名字,类名,变量名以及方法名都被称为标记符
所有标识符都应该以字母,美元符($)下划线(_)开头
首字符之后可以是字母,美元符,下划线,或者任意数字的组合
不能采用关键字作为变量名或方法名
标识符是大小学敏感的
合法标识符举例:age,$salary,_value
非法标识符举例:123age,-salary,#abc
可以使用中文命名,但一般不这么做
强类型语言:要求变量的使用必须要严格符合规定,所有变量必须先定义在使用
弱类型语言:可不符合规定,如JavaScript
Java数据类型俩大类:
基本类型:
数值类型:整数类型,byte,short,int long
浮点数类型:float,double
字符类型char:俩个字节
boolean:占一位字节,值只有true和false
public class Demo02 { public static void main(String[] args) { // String a=10;//string是字符串,但是10是int型 String a="hello"; int num=10; System.out.println(a); System.out.println(num); //整数四种表示方式 int num1=10; byte num2=20; short num3=30; long num4=244891l;//long类型的数字后面要加l //浮点型表示 float num5=24.32478F;//float类型后加F double num6=3.1415926; //字符 char name='A'; //string不是关键字,类 String name1="qingjiang"; //bool值 boolean flag=true; boolean flag2=false; } }
引用类型:
类,接口,数组
public class Demo03 { public static void main(String[] args) { //整数拓展 : 进制 二进制0b 十进制 八进制0 十六进制0x int i=10; int i1=010;//八进制 int i3=0x10;//十六进制 System.out.println(i); System.out.println(i1); System.out.println(i3); System.out.println("==========================================="); //=================================================== //浮点数扩展 银行业务 //BigDecimal 数学工具类 //=================================================== //float 有限 离散 舍入误差 大约 接近但不相等 //double //最好完全避免使用浮点数进行比较 //最好完全避免使用浮点数进行比较 //最好完全避免使用浮点数进行比较 float f=0.1f; double d=0.1; System.out.println(f==d); System.out.println(f); System.out.println(d); float d1=231231231231231f; float d2=d1+1; System.out.println(d1==d2); System.out.println(d1); System.out.println(d2); System.out.println("================================================"); //==================================================================== //字符拓展 //=================================================================== char a='a'; char a1='中'; System.out.println(a); System.out.println((int)a);//强制转化 System.out.println(a1); System.out.println((int)a1);//强制转换 //所有的字符本质还是数字 //编码 Unicode 表:(a 97 A 65) 2字节 0-65536 Excel 2 16=65536 //u0000 Uffff char a2='\u0061'; System.out.println(a2); //转义字符 //\t 制表符 //\n 换行 System.out.println("hello\nworld"); System.out.println("========================================================="); String sa=new String("hello world"); String sb=new String("hello world"); System.out.println(sa==sb); String sc="hello world"; String sd="hello world"; System.out.println(sc==sd); //对象 从内存分析 //布尔值扩展 boolean flag=true; if(flag==true)//if(flag)意思相同 { } } }
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vRHRbgrS-1645616370175)(C:\Users\tangz\AppData\Roaming\Typora\typora-user-images\image-20220223152126980.png)]
java为强类型语言,运算是可能要用到类型转化
低----------------------------------------------------------------------------------------->高
byte,short ,char----------->int------>long------->float------------>double
运算时,将不同类型转化为同一类型
public class Demo04 { public static void main(String[] args) { int i=128; byte b=(byte)i;//强制转化格式 (类型)变量名 从高到底 double b2=i;//自动转换,由低到高 System.out.println(i); System.out.println(b);//byte最大为127,故内存溢出 /* 注意点: 1.不能对bool类型进行转化 2.不能把对象类型转化为不相关类型 3.把高容量转入低的为强制转换 4.转化时可能存在内存溢出,,或者精度问题! */ System.out.println((int)-45.89f); char c='a'; int d=c+1; System.out.println(d); System.out.println((char)d); //操作比较大的时候,注意溢出 //JDK7新特性,数字之间可以用下划线分割 int money=10_0000_0000; int years=20; int total=money*years;//-1474836480计算时已溢出 long total2=money*years;//默认为int ,转换之前已经存在问题 long total3=money*((long)years);//先把一个数转化为long型 System.out.println(total3); } }
变量:可以变化的量(确定的位置,变化的内容)
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型,和作用域
数据类型 变量名=值;
注意点:
每一个变量都有类型,可以是数据类型,也可以是引用类型
变量名必须是合法的标识符
变量声明是一个完整的语句,因此每一个声明都必须以分号结束
public class Dome05 { public static void main(String[] args) { // int a,b,c; // int a=1,b=2,c=3; //程序可读性 String name="qinjiang"; char x='a'; double pi=3.14; } }
变量作用域
public class Dome06 { //属性:变量 //类变量 static static double salary=2500; //实例变量,从属于对象; //实例变量不初始化,则为该类型的默认值 0 0.0 //bool---->false 除了基本类型其余默认值都为null String name; int age; //main方法 public static void main(String[] args) { //局部变量:必须声明与初始化值 int i=10; System.out.println(i); //实例变量的使用 //变量类型 变量名字=new Demo06(); Dome06 demo06=new Dome06(); System.out.println(demo06.name); //类变量 System.out.println(salary); } //其他方法 public void add(){ //System.out.println(i);错误 } }
常量:初始化以后不可以改变的值
一种特殊变量,它的值一旦被设立,在程序运行过程中就不允许被改变
final 常量名=值;
final double PI=3.14;
常量名一般使用大写字母
public class Demo07 { //修饰符,不区分先后顺序(static,final,public,private等等) static final double PI=3.14; final static double PI1=3.14; public static void main(String[] args) { System.out.println(PI); System.out.println(PI1); } }
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qr6RgzjM-1645616370176)(C:\Users\tangz\AppData\Roaming\Typora\typora-user-images\image-20220223165703047.png)]
变量命名规范:
所有的变量.方法.类名:见名知意
类成员变量:首字母小写与驼峰原则:monthSalary
局部变量:首字母小写与驼峰原则
常量:大写字母与下划线MAX_VALUE
类名:首字母大写与驼峰原则Man
方法名:首字母大写与驼峰原则:run()
Java语言支持的运算符:
算术运算符:+ ,-,*,/,%,++,–
赋值运算符:= 把后面的数赋值给变量
关系运算符:>,<,>=,<=,==,!= ,instanceof
逻辑运算符:&&与,||或,!非
位运算符:&,|,^,~,>>,<<,>>>
条件运算符:?:
扩展运算符:+=,-=,*=,/=
优先级:()最高
public class Demo01 { public static void main(String[] args) { //二元运算符 //ctrl+D复制当前行到下一行 int a=10; int b=20; int c=25; int d=25; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/(double)b);//注意作用范围 } }
package Operator; public class Demo02 { public static void main(String[] args) { long a=34786278582349365L; int b=123; short c=10; byte d=8; System.out.println(a+b+c+d);//long类型 System.out.println(b+c+d);//int 类型 System.out.println((String)(c+d));//int类型 //如果有long类型,结果为long型,其他都为int类型 } }
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-65afnKAq-1645616370177)(C:\Users\tangz\AppData\Roaming\Typora\typora-user-images\image-20220223171349691.png)]
关系运算符与取余
package Operator; public class Demo03 { public static void main(String[] args) { //关系运算符返回结果:正确,错误 布尔值 int a=10; int b=20; int c=21; System.out.println(a>b); System.out.println(a<b); System.out.println(a==b); System.out.println(a!=b); System.out.println(c%a); } }
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3hldi5qy-1645616370178)(C:\Users\tangz\AppData\Roaming\Typora\typora-user-images\image-20220223171826912.png)]
自增自减
public class Demo04 { public static void main(String[] args) { //++ --自增 自减 一元运算符 int a=3; int b=a++; //a++等于a=a+1这个++在赋值给b之后 System.out.println(a); //a++等于a=a+1这个++在赋值给之后前 int c=++a; System.out.println(a); System.out.println(b); System.out.println(c); //幂运算 2^3 2*2*2=8 幂运算一般使用工具类运算 double pow=Math.pow(3,3); System.out.println(pow); } }
逻辑运算符
public class Demo05 { public static void main(String[] args) { // 与(and) 或(or) 非(取反) boolean a=true; boolean b=false; System.out.println("a&&b:"+(a&&b));//俩个为真才为真 System.out.println("a||b:"+(a||b));//俩个都为假才为假 System.out.println("!(a&&b):"+(!(a&&b)));//取反 //短路运算 // System.out.println("a&&b:"+(a&&b));//发现b为假,就不看a了 int c=5; //实验验证,如果继续运算,则c为6,短路运算则为5 boolean d=(c<4)&&(c++<4); System.out.println(c); } }
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kYXABREn-1645616370178)(C:\Users\tangz\AppData\Roaming\Typora\typora-user-images\image-20220223175348221.png)]
位运算
public class Demo06 { public static void main(String[] args) { /* A=0011 1100 B=0000 1101 A&B 0000 1100 对应位都为1才为1 A/B 0011 1101 对应位都为0才为0 A^B 0011 0001 相同取0,不同取1 ~B 1111 0010 取反 <<左移 相当于数字乘2 >>右移 /2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 */ System.out.println(2<<3); } }
扩展赋值运算符与三位运算符
public class Demo07 { public static void main(String[] args) { int a=10; int b=20; a+=b;//a=a+b a-=b;//a=a-b System.out.println(a); //字符串连接符 //如果加减里面string类型,转化为字符串连接,但需在前面,放后面相当于继续输出什么 System.out.println(a+b); System.out.println(""+a+b); System.out.println(a+b+"sa"); //三元运算符 //x?y:z //如果x为真,结果为y,否则结果为z int score=80; String tyre=score<60?"不及格":"及格"; } }
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V4Wt91Oz-1645616370178)(C:\Users\tangz\AppData\Roaming\Typora\typora-user-images\image-20220223180241438.png)]
包的本质就是一个文件夹
包语句的语法格式为 package pkg1[.pkg2.[.pkg3……]]
一般利用公司域名倒置作为包名
为了能够使用某一个包的成员,我们需要在java程序中导入该包,使用"import"语句即可
import+包名
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQYY4Qua-1645616370178)(C:\Users\tangz\AppData\Roaming\Typora\typora-user-images\image-20220223181824802.png)]
javadoc命令是用来生成自己文档API的
参数信息
@author作者名
@version版本号
@since指明需要最早使用的jdk版本
@param参数名
@return 返回值情况
@throws异常抛出情况