java学习
资源:狂神说
一.基础语法
1.注释、标识符、关键字
(1) 建立空项目来建立java项目:
(2) 单行注释://注释
(3) 多行注释:/*
Djandjan
/
(4) 文档注释: /* */
2标识符(类名,变量名,方法名)
(5) 关键字
(6) 标识符注意点:
2.数据类型
(1) 要求变量严格符合规范,所有变量先定义后使用(java, c++)
(2) 弱类型语言(js,vb)
(3) 分类 ①基本类型
②引用类型
//小数;浮点数
float num5=50.1F;
double num6=3.415926;
//字符
char name='马';
//String不是关键字,是一个类
//String name="秦疆";
//布尔值;是非
boolean flag = true;
3.类型转换
public class Demo3 {
public static void main(String[] args) {
//整数拓展: 进制 二进制ob 十进制 八进制o 十六进制ox
int i = 10;
int i2 = 010; //八进制
int i3 = 0x10; //十六进制
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("=================================");
//浮点数拓展 银行业务怎么表示 BigDecimal 数学工具类
//float 有限 离散 舍入误差 大约 接近但不相等
//double
//最好避免完全使用浮点数进行比较
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d);
System.out.println(f);
System.out.println(d);
float d1 = 32423423423f;
float d2 = d1+1;
System.out.println(d1==d2);
//字符类拓展
System.out.println("==============================");
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制换行
//所有字符本质还是数字
//编码 Unicode 表:97=a 65=A 2字节 0-65536 Excel
//U00000-UFFFFF
char c3 ='\u0061';
System.out.println(c3);//a
//转义字符
// \t 制表符
// \n 换行
//.....
System.out.println("l\tl\nd");
System.out.println("=========================");
String sa = new String("dcfs");
String sb = new String("dcfs");
System.out.println("sa==sb");
String sc = "qqqq";
String sd = "qqqq";
System.out.println(sc==sd);
//对象 从内存分析
//布尔值拓展
boolean flag = true;
if(flag==true){}
if(flag){}//建议精简代码
}
}
public class Demo4 {
public static void main(String[] args) {
int i = 128;
double b = i;
byte c = (byte)i;//内存溢出 -128
//强制类型转换 (类型)变量名 高----低
//自动转换 低-----高
System.out.println(i);
System.out.println(b);
System.out.println(c);
/*
* 注意点:
*1.不能对布尔值进行转换
*2.不能吧对象转换成不相干的数据
*3.把高容量转换成低容量的要强制转换
*4.转换时会出现内存溢出问题,或者精度问题
* */
System.out.println("===============");
System.out.println((int)23.7);//23
System.out.println((int)-45.3);//-45
System.out.println("===============");
char c1 = 'a';
int d1 = c1+1;
System.out.println((char) d1);
//操作比较大的数,注意溢出问题
//JDK新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int year = 20;
int total1 = money*year;// -147484163,计算时已经溢出了
long total2 = money*year; //默认是int,转换之前已经存在问题了
long total3 = money*((long)year);//先把一个数据转换成Long
System.out.println(total3);
}
}
4.变量 常量 作用域
public class Demo5 {
//属性:变量
//常量 修饰符 不存在先后顺序
static final double PI = 3.14;
//类变量static
static double salary = 2500;
//实例变量:从属于对象;如果不初始化,这个类型的默认值0,0.0
//布尔值:默认值是false
//除了基本类型,其余默认值都是null;
String name;
int age;
//main 方法
public static void main(String[] args) {
//局部变量:必须声明和初始化,局部变量只在方法快里起作用
int i = 10;
System.out.println(i);
//变量类型 变量名字=new Demo5();
Demo5 demo5 = new Demo5();
System.out.println(demo5.age);
System.out.println(salary);
System.out.println(PI);
}
//其他方法
public void add(){
}
5.运算符
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);//注意运算结果范围
long a = 12312312312313L;
int b = 123;
short c = 8;
byte d = 8;
System.out.println(a+b+c+d);//Long
System.out.println(b+c+d);//Int
System.out.println(c+(double)d);//Tnt
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);//取余 模运算
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);//取余 模运算
//++ -- 自增 自减 一元运算符
int a = 3;
int b = a++; //"后加加",先给b赋值,再自增
// a=a+1;
System.out.println(a);
//a=a+1;
int c = ++a;//“前加加”,先自增,再给b赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算2^3 2*2*2 = 8 使用工具类操作(Math)
double pow = Math.pow(2, 3);//Math.pow(2,3) Alt+Enter
System.out.println(pow);
//与(and) 或(or) 非(and)
boolean a = true;
boolean b = false;
System.out.println("a&&b"+(b&&a));//逻辑与运算:两个变量为真,结果才为true
System.out.println("a||b"+(a||b));//逻辑或运算:两个变量有一个为真,结果才为true
System.out.println("!(a&&b)"+(a&&b));//真->假 假->真
//短路运算 c<4为false ,后面c++不执行
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);//false
System.out.println(c);//5
/*
* A = 0011 1100
* B = 0000 1101
* ------------------
* A&B = 0000 1100
* A|B = 0011 1101
* A^B = 0011 0001 相同为0,不同为1
* ~B = 1111 0010
*
* 2*8 = 16 2*2*2*2
* 增加效率!!!
* << *2
* << /2
* */
System.out.println(2<<3);
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+"");
//x ? y : z
//如果x==true, 则结果为y,否则为z
int score = 50;
String type = score < 60 ? "不及格":"及格";
System.out.println(type);
二.Java流程控制
1.Javadoc
public class Doc {
String name;
/**
* @author kuangshen
* @version 1.0
* @since 1.11
*/
/**
* @author Kuangshen
* @param name
* @return
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
}
2.用户交互Scanner
public class Demo1 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接受键盘数据
Scanner scanner = new Scanner(System.in);// new Scanner(System.in)+alt+Enter
System.out.println("使用next方式接受:");
//判断用户有没有输入字符串
if(scanner.hasNext()){
//使用Next方式接受
String str = scanner.next();
System.out.println("输入的内容为"+str);
}
//凡属于Io流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
scanner.close();
}
}
public static void main(String[] args) {
//创建一个扫描器对象,用于接受键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方式接受:");
if(scanner.hasNextLine()){
//使用Next方式接受
String str = scanner.nextLine();
System.out.println("输入的内容为"+str);
}
scanner.close();
public static void main(String[] args) {
//创建一个扫描器对象,用于接受键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("输入数据:");
String str = scanner.nextLine();
System.out.println("输入的内容为: "+str);
scanner.close();
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//从键盘接受数据
int i = 0;
float f = 0.0f;
System.out.println("请输入整数:");
//如果 .... 那么
if(scanner.hasNextInt()){
i = scanner.nextInt();
System.out.println("整数数据为:"+i);
}else{
System.out.println("输入的不是整数数据!");
}
//如果 .... 那么
if(scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("小数数据为:"+i);
}else{
System.out.println("输入的不是小数数据!");
}
}
public static void main(String[] args) {
//我们可以输入多个数字,并求和与平均数,每输入一个数字用回车表示
Scanner scanner = new Scanner(System.in);
//和
double sum = 0;
//计算输入了多少个数字
int m = 0;
//通过循环判断是否还存在输入,并在里面对每一次进行求和和统计
while(scanner.hasNextDouble()){
double x = scanner.nextDouble();//scanner.nextDouble();输入一个数
m=m+1;//m++
sum = sum +x;
System.out.println("你输入了第"+m+"个数据,当前的结果sum+"+sum);
}
System.out.println(m+"个数的和为:"+sum);
System.out.println(m+"个数的平均值为:"+(sum/m));
scanner.close();
}
3.选择结构
if单选择结构
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String s = scanner.nextLine();
//equal:判断字符是否相等
if(s.equals("hellow")){
System.out.println(s);
}
System.out.println("end");
scanner.close();
if双选择结构
//双选择结构
public static void main(String[] args) {
//考试分数大于60就是及格,小于60分就是不及格
Scanner scanner = new Scanner(System.in);
System.out.println("输入成绩:");
int score = scanner.nextInt();
if(score>60){
System.out.println("及格");
}else{
System.out.println("挂了");
}
scanner.close();
}
if多选择结构
public static void main(String[] args) {
//多选择结构
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩: ");
int score = scanner.nextInt();
if(score==100){
System.out.println("满分");
}else if (score<100&& score>90){
System.out.println("A");
}else if (score<90&& score>80){
System.out.println("B");
}else if (score<80&& score>70){
System.out.println("C");
}else if (score<70&& score>60){
System.out.println("D");
}else if (score<60){
System.out.println("挂了");
}else{
System.out.println("成绩不合法");
}
scanner.close();
}
switch选择结构
public static void main(String[] args) {
//case具有穿透性,需要break进行停止
//seitch匹配一个具体的值
char grade = 'A';
switch(grade){
case'A':
System.out.println("优秀");
break;//可选
case'B':
System.out.println("良好");
break;//可选
case'C':
System.out.println("及格");
break;//可选
case'D':
System.out.println("挂科");
break;//可选
default:
System.out.println("未知");
}
}
循环结构
1.while循环
public static void main(String[] args) {
//输出1~100
int i = 0;
// System.out.println(i++);
// System.out.println(i++);
// System.out.println(i++);
// System.out.println(i++);
// System.out.println(i++);
// System.out.println(i++);
// System.out.println(i++);
while (i<=100){
i++;
System.out.println(i);
}
}
public static void main(String[] args) {
//死循环
while(true){
//等待客户检查
//定时检查
}
}
public static void main(String[] args) {
//计算1+2+3....100=?
int i = 0;
int sum = 0;
while(i<=100){
sum = sum +i;
i++;
}
System.out.println(sum);
}
2.do…while
public static void main(String[] args) {
int i = 0;
int sum = 0;
do{
sum = sum +1;
i++;
}while(i<=100);
System.out.println(sum);
}
public static void main(String[] args) {
//do....while至少执行一次
int a = 0;
while(a<0){
System.out.println(a);
a++;
}
System.out.println("===============");
do{
System.out.println(a);
}while (a<0);
}
3.for
public static void main(String[] args) {
int a = 1;//初始化条件
while(a<=100){//条件判断
System.out.println(a);//循环体
a+=2;//迭代
}
System.out.println("while循环结束");
//初始化//条件判断 //迭代
for (int i = 0; i < 100; i++) {
System.out.println(i);
}
System.out.println("for循环结束!");
//死循环
for (; ;) {
}
}
public static void main(String[] args) {
//计算1~100之间奇数和偶数的和
int oddSum = 0;
int evenSum = 0;
for (int i = 0; i < 100; i++) {
if(i%2!=0){
oddSum+= i;
}else {
evenSum+=i;
}
}
System.out.println("奇数和的"+oddSum);
System.out.println("偶数和的"+evenSum);
}
public static void main(String[] args) {
//用while或for循环输出1-1000之间能被5整除的数,并且每行输出三个
for (int i = 0; i < 1000; i++) {
if(i%5==0){
System.out.println(i+"/t");
}
if(i%(5*3)==0){//每行
System.out.println();
//System.out.print("/n");
}
}
//pritntln 输出完全会换行
//print 输出完不会换行
}
public static void main(String[] args) {
//打印九九乘法表
/*
* 1.我们先打印第一列
* 2.固定的1再用一个循环包起来
* 3.去掉重复项
* 4.调整样式
* */
for (int j = 1; j <= 9; j++) {
for (int i = 1; i <= j; i++) {
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
}
public static void main(String[] args) {
int[] number = {10,20,30,40,50};
//遍历数组
for (int x:number){
System.out.println(x);
}
System.out.println("==============");
for (int i = 0; i < 5; i++) {
System.out.println(number[i]);
}
}
4.break、continue文章来源:https://www.toymoban.com/news/detail-828319.html
public static void main(String[] args) {
int i = 0;
while(i<100){
i++;
System.out.println(i);
if(i==30){
break;
}
}
System.out.println("1,2,3");
}
public static void main(String[] args) {
int i = 0;
while(i<100){
i++;
if(i%10==0){
System.out.println();
continue;
}
System.out.print(i);
System.out.print("\t");
}
}
1.break在任何循环语句的主题部分,均可用break控制循环流程。
2.break用于强行退出循环,不执行剩余语句。(break语句也在switch语句中使用)
3.continue语句在循环语句体中,用于终止某次循环过程,即跳出循环体中尚未执行的语句,接着执行下一次是执行循环的判定。
训练:打印三角形文章来源地址https://www.toymoban.com/news/detail-828319.html
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for(int j=5;j>=i;j--) {
System.out.print(" ");
}
for(int j=1;j<=i;j++){
System.out.print("*");
}
for(int j=1;j<i;j++){
System.out.print("*");
}
System.out.println();
}
}
三.Java方法详解
到了这里,关于java web(后端+前端) 学习路线记录---1.Java(更新中)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!