当前位置: 首页 > news >正文

狂神说Java|Java基础

Java基础

01 注释

  1. 单行注释
  2. 多行注释
  3. 文档注释
/**
* @Description HelloWorld
* @Authur xinxin
**/
public class Main {public static void main(String[] args) {//单行注释for (int i = 1; i <= 5; i++) {System.out.println("i = " + i);}/*多行注释长这样这行也是注释*/     }
}

02 标识符和关键字

img
img

03 数据类型讲解

img
强类型语言安全性高,但速度会比较慢
img

public class Main {public static void main(String[] args) {// 八大基本数据类型//整数int num1 = 10; //最常用byte num2 = 20;short num3 = 30;long num4 = 30L; //Long类型要在数字后面加L//小数: 浮点数float num5 = 50.1F;double num6 = 3.141592653589;// 字符char name = 'A';// 字符串, String不是关键字 是一个类//String namea = "你好";//布尔值: 是非boolean flag = true;//boolean flag = false;      }
}

img

32位的操作系统只可以用32位的cpu,而64位的系统可以装32 or 64的cpu.
(在内存中的)寻址能力与32位还是64位直接挂钩。
64位最多,最多可以支持128GB的内存。
32位 至多支持4GB内存

04 数据类型扩展及面试讲解

public class Main {public static void main(String[] args) {//整数扩展: 进制       二进制0b   十进制   八进制0   十六进制0xint i = 10;int i2 = 010; //0开头代表八进制int i3 = 0x10;  //十六进制0x 0~9 A~F//八进制的10相当于8,十六进制的10相当于16System.out.println(i);  // 10System.out.println(i2);  // 8System.out.println(i3);  // 16System.out.println("==============================="); //=================================================//浮点数拓展?    银行业务怎么表示?钱//BigDecimal 数学工具类//=================================================//float    有限  离散 存在舍入误差 大约 接近但不等于//double//最好完全不使用浮点数去比较float f = 0.1f;  //0.1double d = 1.0/10; //0.1System.out.println(f == d);   //falseSystem.out.println(f);  //0.1System.out.println(d);  //0.1float d1 = 23131312312312313f;float d2 = d1+1;System.out.println(d1==d2);  //true//=================================================//字符拓展?   //=================================================char c1='a';char c2 = '中';System.out.println(c1);  //aSystem.out.println((int)c1);  //97  //强制转换System.out.println(c2);  //中System.out.println((int)c2);  //20013//所有的字符本质还是数字//编码 Unicode  2字节 表:(97 = a  65=A)//U0000 UFFFFchar c3 = '\u0061'; System.out.println(c3); //a//转义字符// \t 制表符// \n 换行System.out.println(“Hello\tWorld”);  //Hello World//=================================================String sa = new String("Hello world");String sb = new String("Hello world"); System.out.println(sa==sb); //falseString sc = "hello world";String sd = "hello world";System.out.println(sc=sd); //true//对象 从内存分析//布尔值扩展boolean flag = true;if (flag == true){} //新手if (flag){} //老手//代码要精简易读}
}

05 类型转换

img

public class Main {public static void main(String[] args) {int i = 128;byte b = (byte)i; //byte的最大值是127,赋值128不可以//内存溢出//转换: 指右转左//强制转换  (类型)变量名  高--低//自动转换   低--高  System.out.println(i); //128System.out.println(b); //-128/*注意点:1.不能对布尔值进行转换2.不能把对象类型转换为不相干的类型3.在把高容量转化为低容量时,强制转换4.转换的时候可能存在内存溢出,或者精度问题!*/System.out.println("===============");System.out.println((int)23.7); //23System.out.println((int)-45.89f); //-45System.out.println("===============");char c = 'a'; int d = c+1; System.out.println(d); //98System.out.println((char)d); //b}
}
public class Main {public static void main(String[] args) {//操作比较大的数的时候,注意溢出问题//JDK7新特性,数字之间可以用下划线分割int money = 10_0000_0000;System.out.println(money); //10000000000int years = 20;int total = money * years;System.out.println(total);  //-1474836480, 计算的时候溢出了long total2 = money * years;System.out.println(total2);  //-1474836480//原因在于,money*years是int, 计算完后才把结果转换为long类型//转换前已经存在问题了//正确操作:long total3 = money * ((long)years);System.out.println(total3);  //20000000000}
}

06 变量、常量、作用域

img

public class Main {public static void main(String[] args) {//int a,b,c;//int a=1,b=2,c=3;//虽然可以在一行声明多个变量,但不提倡那种风格//出于程序可读性,不要那样做int a = 1;int b = 2;int c = 3;String name = "xinxin";char x = "X";double pi = 3.14;}
}

img

public class Demo08 {//类变量 staticstatic double salary = 2500;//类里面除了方法,还可以定义一些属性//属性:变量//实例变量:从属于对象。要通过类才能使用它//布尔值:默认是false//除了基本类型,其余的默认值都是nullString name;int age;//main方法 方法在类里面public static void main(String[] args) {//局部变量:必须声明和初始化值int i;System.out.println(i);//实例变量需要把类先写出来//变量类型 变量名字= new Demo08();Demo08 demo08 = new Demo08();System.out.println(demo08.age); //0//虽并未初始化age,还是有输出0//实例变量如果不进行初始化,会变成这个类型的默认值System.out.println(demo08.name); //null//类变量 staticSystem.out.println(salary); //2500}//其他方法public void add(){System.out.println(i);}
}

img

public class Demo09 {//static final double PI = 3.14;final static double PI = 3.14;//两种写法都可以//修饰符不存在先后顺序  修饰符: static final public..public static void main(String[] args) {System.out.println(PI);}
}

img
驼峰原则:除了第一个单词以外,后面的单词首字母大写
lastname->lastName

07 基本运算符

img

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); //30System.out.println(a-b); //-10System.out.println(a*b); //200System.out.println(a/b); //0  //0.5,四舍五入成0了System.out.println(a/(double)b); //0.5}
}
public class Demo02 {public static void main(String[] args) {long a = 123123123123123L;int b = 123;short c = 10;byte d = 8;//有一个数为long,结果数为longSystem.out.println(a+b+c+d);  //123123123123264 //Long//有一个数为double,那结果就为double//如果没有long,结果都为IntSystem.out.println(b+c+d);  //141 //IntSystem.out.println(c+d);  //18 //Int}
}
public class Demo03 {public static void main(String[] args) {//从关系运算符返回的结果:正确,错误     布尔值int a = 10;int b = 20;int c = 21;System.out.println(c % a); // c/a  21/10 = 2...1System.out.println(a > b);   //falseSystem.out.println(a < b);   //trueSystem.out.println(a == b);  //falseSystem.out.println(a != b);  //true}
}

08 自增自减运算符、初识Math类

public class Demo03 {public static void main(String[] args) {// ++ -- 自增,自减 一元运算符int a = 3;int b = a++; // a++  a = a+1 //上一行:执行完这行代码后,先给b赋值,赋值后再自增int c = ++a; //执行这行代码前,先给a自增,再给a赋值System.out.println(a);  //5System.out.println(b);  //3System.out.println(c);   //5//幂运算 2^3 2*2*2 = 8   很多运算,我们会使用一些工具类来操作!double pow = Math.pow(3,2);System.out.println(pow);  //5}
}

09 逻辑运算符、位运算符

public class Demo05 {public static void main(String[] args) {//与(and) 或(or) 非(取反)boolean a = true;boolean b = false; System.out.println("a && b: "+(a&&b));  //逻辑与运算:两个变量都为真,结果才为trueSystem.out.println("a || b: "+(a || n));  //逻辑与运算:两个变量有一个为真,结果才为trueSystem.out.println("!(a && b): "+ !(a && b));  //如果是真,则为假,如果是假则变为真//短路运算//逻辑与运算  b && a  b为假,那么不会再去计算后面的了int c = 5;boolean d = (c<4) && ((c++)<4);System.out.println(d);   //falseSystem.out.println(c);   //5  说明出现短路,&&号后面没执行}
}
public class Demo06 {public static void main(String[] args) {/*A = 0011 1100B = 0000 1101A&B = 0000 1100  上下两个比较,2个都为1才为1,否则就是0 A|B = 0011 1101  对应位都是0,结果为0,否则为1A^B = 0011 0001  两个位置相同则为0,否则为1~B =  1111 0010  取反2*8 = 16 2*2*2*2<< 左移 *2>> 右移 /20000 0000  00000 0001  10000 0010  20000 0011  30000 0100  40000 1000  80001 0000  16*/System.out.println(2<<3);   //16}
}

10 三元运算符及小结

public class Demo07{public static void main(String[] args){int a = 10;int b = 20;a += b; // a = a+ba -= b; // a = a-bSystem.out.println(a); //10//字符串连接符 + 在+两侧一旦一侧出现了字符串类型,那么//它就会把另外一侧的操作数都转化为String类型再进行连接System.out.println(a+b); //30System.out.println(""+a+b); //1020//""在+前,会拼接System.out.println(a+b+""); //30//“”在后,会先进行运算}
}
package com.kuang.operator;//导入这个包下所有的类
import com.kuang.base.*;
//*是通配符,会把这个包的所有东西都导入进来public class Demo08{public static void main(String[] args){// x ? y : z//如果x==true,则结果为y,否则结果为zint score = 80;String type = score < 60 ? "不及格":"及格";System.out.println(type); //不及格}
}

11 包机制

包的本质就是一个文件夹

12 JavaDoc生成文档

package com.kuang.base;/*** @author name* @version 1.0* @since 1.8*/
public class Doc{String name;/*** @author Kuangshen* @param name* @return* @throws Exception*/public String test(String name) throws Exception{return name;}
}
http://www.sczhlp.com/news/528.html

相关文章:

  • 每日题单
  • 在常量时间内实现单向链表的插入与删除
  • cpp的单头文件
  • (阶段三:整合)面向用户 面向商户,场景之:shop
  • 现代Web框架的性能基准测试(6084)
  • 服务端推送技术的现代实现(8430)
  • 跨平台Web服务开发的新选择(1992)
  • Astro机器人流畅运动背后的科技原理
  • 实时通信协议的Rust实现(5234)
  • 现代Web框架的性能基准测试(8409)
  • 现代Web服务器性能革命:我的Rust框架探索之旅(1820)
  • 实战项目:文件分块上传系统(4936)
  • HTTP请求处理的高效封装(8307)
  • 实时通信的革命:WebSocket技术的深度探索(1440)
  • Rust生态系统在Web开发中的优势(9219)
  • 高并发处理的Rust实现方案(2866)
  • 从零开始构建高性能实时聊天系统:Hyperlane框架实战指南(5696)
  • 内存使用效率的终极对决:零拷贝技术的实战应用(9040)
  • 推荐6本书《MLIR编译器原理与实践》、《ONNX人工智能技术与开发实践》、《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》
  • 实时通信协议的Rust实现(2554)
  • 零依赖Web框架的设计哲学(5850)
  • 微服务架构的轻量级解决方案(8414)
  • WebSocket服务端的高效处理(1857)
  • 利用数据绑定让动画更智能:在Rive中创建动态黄金计算器
  • 服务器配置的精细化控制(5106)
  • HTTP响应处理的灵活设计(3253)
  • 现代Web框架的性能基准测试(6931)
  • 微服务架构的轻量级解决方案(0378)
  • 实战项目:文件分块上传系统(3902)
  • 并发处理能力的巅峰对决:异步编程的艺术(6216)