吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11760|回复: 65
收起左侧

[Java 转载] 想学Java的可以看看我做的笔记,很简单,后续继续更新笔记

  [复制链接]
1510988116 发表于 2017-5-31 19:56
本帖最后由 1510988116 于 2017-6-3 12:20 编辑

注释:
  • 被注释的代码,编译器忽略。作用:说明代码的作用:程序中适当加注释;屏蔽无用的代码
  • 使用“//”注释一行,//之后的代码,编译器会忽略
  • /**/注释多行代码,这种属于文档注释
  • 注释不用太多,也不能太少

关键字(Keyword)
  • Java定义了一些关键字(public/static/void/class/int),这些关键字是构成Java基本语法用的,这些关键字的特征就是在eclipse中颜色是紫色的
  • goto、const在Java中没有意义,但是是保留的,变量,类的名字也不能用这两个,他们也被叫做“保留字”,不用知道goto、const是什么意思的
  • main、String、System等这些都不是关键字

标识符
  • 标识符是用来给类、方法、变量等命名用的。
  • 命名规则:一:由字母,中文(不推荐)、数字、下划线_、$组成;二:不能以数字开头;三:不能是关键字
  • java语言是大小写敏感的:demo和Demo是两个东西
  • 驼峰命名法:每个单词第一个字母大写:ageOfBaby
  • 标识符要有意义:标识符的命名规范,不是强制规定,而是“潜规则”;类名:大写开头变量名、方法名:小写开头

变量(variable)
  • 数据一般都是放在内存中,那么操作内存的过程就需要地址,通过指向内存的指针操作内存,变量是给这段时间内存取一个名字,如果要告诉别人如何使用内存,那么就需要给这块区域起个名字,比如price,那么price就是变量名

               
  • 我们可以吧price变量指向内存的值改为3、5、10,但是能不能改成“tom”呢?显然“一斤菜hello元”是没有意义的,所以这块内存中能够放什么类型的数  据是有限制的,这就是“变量类型”。
  • 定义一个变量的格式:变量类型  变量名=初始值;

变量作用域初步
  • 变量在{ }范围之内定义不能重名,定义一个int b=3;再定义一个int b=10;编译出错
  • int b;然后直接println(b);是不行的,因为没有赋初始值。局部变量使用前必须赋给初值声明时赋值或者使用前赋值都可以

数值类型:
  • 整数类型:byte(字节),short(短整形),int(整形),long(长整形)
  • 小数类型:float(单精度浮点数),double(双精度浮点数)
  • byte是“字节”类型,代表一个8位二进制,也就是一个字节。
  • 整数常量默认是int类型,小数常量默认是double类型。
  • 选用数据类型的时候在考虑到数据的可能范围之后,选择最小范围的类型,这样节省资源。

整数类型:
  • long>int>short>byte ;  double>float
  • 声明赋值:byte b1=5;  short s1=10;  int i1=20; long l1=30;
  • 如果声明超过范围的数,会怎么样:byte b2=500;//不能从int转换为byte;
  • 怎么声明long?long l2=99999999L(最好大写,否则分不清)

整数类型转换(Type cast)
  • byte b=3;int i=b;//隐式类型转换(小的赋值给大的,不需要转换,别人看不到)
  • 如何把int赋值给byte:(编程经常用)
  • int i=999,byte b= i;报错可以理解,为什么“byte b=3”可以,“int i=3;byte b=i”就不可以?为什么byte b=(byte)i;又可以?
  • 因为(byte)i就相当于,编译器保证,虽然我是比你大,但是我保证我的值在你的范围之内,不会超出范围

小数数据类型
  • 声明常量(double>float)
  • double d1=3.14D;//ok,3.14d也可以
  • double d2=3.14;//ok,一般不用谢“D”
  • double d3=3;//ok
  • float f1=3.14//error;不能从double转换为float,小数默认是double
  • float f2=3.14F;//ok,3.14f也可以
  • 结论:“大范围”=“小范围”;隐式转换

                    “小范围”=“大范围”;显式转换,编译器担保不出事

          都是整数参与乘除运算,结果还是整数。整数常量参与乘除计算一般加f声明为小数类型,避免精度损失

常用数据类型;
  • boolean:true/false
  • String:“是什么”

               

     3、int:最大值integer.MAX_VALUE;最小值:Integer.MIN_VALUE

     4、int转换为String:Integer.toString(i);String转换为int:Integer.parseInt(“33”)

     5、显示类型转换仅限整数、小数类型之内。

     6、double转换为String:Double.toString(d);String转换为double:Double.parseDouble(s)

     7、char:‘a’和 "a"的区别

基本运算符:
  • 运算符就是加(+)减(-)乘(*)除(/)等符号
  • 求余数运算符“%”:5%4为1。5%5为0。22%7为1
  • 自增:++是对一个变量进行自增运算(用System.out.println显示方便点)
  • 自减:-
  • +还可以与其他类型拼接:“hello"+5
  • java中表达式从左向右扫描进行扫描运算,一旦遇上一个字符串,之后的运算就变成字符串了。(3+5+“hello”+5+3=8hello53)


赋值运算符
  • int i=5;应该读成“声明int类型变量i,并且把5赋值给i”
  • int x=10;x=x+5;看x=x+5从数学上来讲是一个错误。但是按照"赋值"的读法就可以理解了。
  • 因此x++等价于x=x+1;
  • x+=5等价于x=x+5;
  • x++和x+=1一样,还可以-=,*=、%=

Scanner可以获得用户输入:

Scanner sc=new Scanner(System.in);
System.out.println("请输入年龄");
int age=sc.nextInt();
Stirng s=sc.nextLine();//这个可以自动换行

基本数据类型的赋值;
  • 基本数据类型是复制传递

int i=10;
int j=i;
i=20;
System.out.println(j)

     2、如何交换两个int变量的值

int i=10;
int j=20;
int temp=i;//temp属于中间变量
i=j;
j=temp;
System.out.println(i,j);
另外有一只不需要中间变量的做法
int i=3;
int j=5;
i=i+j;//两个加起来减去一种一个,就能得到自己想要的那一个
j=i-j;
i=i-j;

比较运算符:
  • 比较运算符(又称关系运算符)用来进行值得真假性判断,结果是boolean
  • ==等于;!=不等于;>大于;>=大于或者等于;<小于;<=小于或者等于

System.out.println(3==5)
int i=9;
System.out.println(i>=3)
System.out.println(i==3);
也可以把比较的结果赋值给boolean类型变量;
int a=4;
int b=5;
boolean flag=a==b;
System.out.println(flag);

    3、除了int、boolean等这些基本类型之外。字符串等对象的相等判断要用equals方法。s1.equals(""yzk);

    4、当然运算符也是有优先级的,不用记住那么多,可读性高是重要的,写的让别人看的懂就可以

    5、当然也不要把==写成=;

    6、赋值运算本省也是一个值,这个值就是赋值之后的左边的值(int i=(a=b)+3)

短路运算:
  • ||短路或。当第一个为true的时候,整个运算结果一定是true,就没有必要算第二个了。

int i=8;
boolean b=(i<10)||(i=i+5);
boolean b=(i>10)||(i=i+5);
System.out.println(b);
System.out.println(i);

     2、非运算!)就是一个参与运算,没有短路的问题

三元运算符
  • 条件表达式?表达式1:表达式2
  • 如果“条件表达式”为true,则表达式的值为“表达式1”,否则为“表达式2”
  • i%3==0?“能被3整除”:“不能被3整除”

6月3日12:17更新如下
...........................................................................................................................
IF语句
if(比较表达式)
{
   //一行或者多行语句
}
当“比较表达式”为true的时候执行{ }中的代码
易错点:
int i=10;
if(i=10)//这个地方不能出现等于号,=不属于比较式
{
   System.out.println("我是10");
}
if语句中的大括号需不需要写:
如果if语句大括号中只有一句话,这个是可以省略大括号,但是不建议这样做,因为容易出错。哪怕只有一句话,也要写大括号,坏的编程习惯并不会一定导致出错,但是增加出错的概率

else语句
if语句中还可以带else
if(比较表达式)
{
   //比较表达式为true时执行的代码块
}
else
{
   //比较表达式为false时执行的代码块
}
else if语句
if(条件表达式)
{
  
}
else if(条件表达式2)
{

}
else if(条件表达式3)
{
  
}
..............
else   //可以不用最后else,建议加上,更加严谨
{
   
}
if嵌套
  • if...else...else if中都可以嵌套if....可以无限层级
  • 但是要尽量避免if语句嵌套层次过多


swith语句
switch(表达式)
{
   case 取值1:
    //语句;
    break;

   case 取值2;
    //语句;
    break;

   .....
   default:
   //语句;
    break;
}
使用switch case 实现“月份季节判断”
  • 表达式可以是byte,short,int,char类型,JDK5以后还可以是枚举类型,JDK7以后还可以是String类型
  • break意味着switch的结束default相当于if的else,当所有case都不匹配的时候,执行default


switch其他问题:
  • 多个switch条件合并的问题:当多个case条件的代码一样的情况下,可以合并最后加一个break;
  • 当进行单个离散值判断的时候,switch可以用来替代if。switch能做的if都能做,反之不一定。

for循环
  • 循环结构有:for,while,do.....while三种语法

for(初始化表达式 ; 循环条件表达式 ; 循环后的操作表达式)
{
//循环体语句
}
开始先执行“初始化表达式”然后循环执行先判断“循环条件表达式”,如果为true,则执行“循环体语句”,然后执行循环后的操作表达式;
while循环
while(条件表达式)
{
   循环体;
}
  • 每次循环前判断“条件表达式”,如果为true,则执行“循环体”,然后再进行下一次循环判断。
  • 用while实现打印五次“我爱Java”(逐语句执行分析)

int y =0;
while(y<5)
{
    System.out.println("我爱Java") ;
  y++;
}
for和while在实现上可以互相代替,一般for用的频率比while高,在 io、JDBC中有用到while

do  while循环
do
{
   执行语句
}
while(条件表达式);
先执行一次“执行语句”再判断“条件表达式”决定是否进入下次循环。
演示,使用do while实现打印五遍“我爱Java”
int x=0;
do
{
  System.out.println("我爱Java");
  x++;
}
while(x<5);
do...while和while的主要区别do...while的执行语句至少执行一次,while的执行语句可能一次都不执行。do...while用的更少


数组
  • int i=5;String s="tom";可以定义单个的数据,要储存多个数据怎么办呢?数组是储存多个数据的容器。
  • 类型[  ]  数组名=new 类型[ 个数 ];
  • 比如int  [ ]  arr=new int[ 5 ] ;
  • 读写的方式:int x=arr[ 0 ] ; int y=arr[ 3 ]; arr[2]=9 ;
  • 在读写的时候数组名后的[ ]叫序号,又叫下标,指的是对第一个元素进行操作,从0开始,所以最后一个元素序号是“个数-1”
  • 第二种定义方法,适合于定义时就确定元素个数和内容,用的比较少:int[ ] arr={ 3,5,6,9,11};

数组的遍历
for(int i=0;i<5;i++)
{
    System.out.println(arr);
}
可以通过arr.length获得数组的长度,改写如下,这样避免了5写死的问题(避免"魔法数")
for(int i=0;i<arr.length;i++)
{
   System.out.println(arr);
}
方法简介
  • 如果程序很多地方都要计算一个数组的最大值,难道每次都要写一堆代码吗?抽象出方法(Method)/函数(Function)

方法主要格式:
返回值类型  方法名(参数类型  参数1,参数2,....)
{
}
方法重载
  • 重载(OverLoad)在同一个类中,允许存在一个以上的同名方法,只要其参数个数或者参数类型不同即可,返回值是否一样无关
  • 编译器怎么知道应该调用哪个?


可变长度参数
  • 编写一个Sum方法,计算一个int数组的和

int sum(int[]nums)
每次调用都要sum(new int[ ]{5,3,9,10 })。改成:
int sum(int...nums)//JDK1.5后支持
就可以这样自由调用sum(3,5);sum(3,9,11,22,5);
这些参数其实还是以数组形式传递过去,在sum看来也是数组,只不过编译器会自动把参数包装为数组,简化了调动。
可变参数可以声明为各种类型:test1(String...values)
可变参数前面还可以有其他参数,只要保证可变参数是最后一个就可以:sum(String name,object...data)。为什么呢?你猜





免费评分

参与人数 23吾爱币 +23 热心值 +21 收起 理由
laotall + 1 + 1 我很赞同!
泰迪猴 + 1 + 1 基础掌握的很牢 多做些项目 把基础融会贯通
wangxuefeng + 1 + 1 已答复!
明明是我先来的 + 1 + 1 我很赞同!
killmay + 1 我很赞同!
天经地义 + 1 + 1 谢谢@Thanks!
Beone + 1 + 1 谢谢@Thanks!
zhangQ + 1 谢谢@Thanks!
退役单身 + 1 + 1 谢谢@Thanks!
qq530541608 + 1 + 1 谢谢@Thanks!
安之之之之 + 1 + 1 用心讨论,共获提升!
MingLei_0612 + 1 + 1 用心讨论,共获提升!
zlaojun + 1 + 1 谢谢@Thanks!
种地吧 + 1 + 1 用心讨论,共获提升!
yufan1123 + 1 + 1 谢谢@Thanks!
wenhoster + 1 + 1 热心回复!
axbycz321 + 1 + 1 谢谢@Thanks!
会飞滴熊 + 1 + 1 我很赞同!
mmgglgy + 1 + 1 已答复!
Promisess + 1 + 1 我很赞同!
无奈红茶妃子笑 + 1 + 1 我很赞同!
kerwining + 1 + 1 谢谢@Thanks!
52破解☆ + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 1510988116 发表于 2017-5-31 21:57
yufan1123 发表于 2017-5-31 21:53
大神带我入门~~~
教程找了好多,但是感觉学起来好难啊~
就是不好懂~~看了容易忘记~~

我也是刚入门,自己领悟,做笔记,不要照葫芦画瓢
liuyuntianxia12 发表于 2017-7-25 15:21
比较支持楼主的认真心态,虽然知识很简单,但是要认真的看完做笔记,还是不容易的
推荐W3C,入门必备网站
jiaong 发表于 2017-5-31 20:06
kerwining 发表于 2017-5-31 20:25
也学习下JAVA
乔哥66 发表于 2017-5-31 20:33
非常感谢分享,么么哒。
范少爆 发表于 2017-5-31 20:38
6666666666666666666666666666666
放手一搏09 发表于 2017-5-31 20:40
可以的 ,加油
lijun9088 发表于 2017-5-31 21:07
新手表示看不懂,慢慢学习
花〆折断了寂 发表于 2017-5-31 21:08
谢谢分享
mmgglgy 发表于 2017-5-31 21:35
准备学java,谢谢拉
当合 发表于 2017-5-31 21:35
收藏了 ;楼主继续
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-25 05:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表