Java学习笔记

来源:互联网 发布:在数据库中存储的是 编辑:程序博客网 时间:2024/04/26 15:06

**1.**Scanner in =new Scanner(System.in);
2.级联语句if-else-if语句else要对齐。

eg: int f;        if(x<0{            f=-1;        }else if(x==0){            f=0;        }else{            f=2*x;        }        System.out.println(f);

**3.**Math.random() 这个函数可以提供[0,1)之间的一个随机浮点数值。
4.循环的选择:
如果明确了循环次数,就用for循环
如果必须执行一次,用do-while 循环
其他情况用while循环
**5.**break 跳出循环
continue 跳过循环这一轮剩下的语句,进入下一轮
6. 定义数组变量:<类型>[]<名字>= new<类型>[元素个数];
int[] grades = new int[100]; *********************
元素个数必须是整数
元素个数必须给出
元素个数可以是变量
new创建的数组会得到默认的零值
**7.**for-each 循环
for(<类型><变量>:<数组>)
{

}
对于数组当中的每一个元素,把每个元素取出来,作为这个类型的一个变量; 适用于数组的遍历。

package 循环;import java.util.Scanner;public class win {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        int [] a = {1,2,3,4,5,6};        int [] b = {8,7,8,9,8,7};        int x;        boolean s =false;        for(int i=0;i<a.length;i++)        {            x=b[i];            for(int k :a)            {                if(k==x)                {                    s=true;                }            }        }        System.out.println(s);    }}

**8.**Math.sqrt(x) 计算x的平方根
9.字符串String s = new String("a string");

创建了一个String的对象用“a string”初始化这个对象创建管理这个对象的变量s让s来管理这个对象

用加号(+)可以连接两个字符串
“hello”+”world”–>”helloworld”
当这个加号(+)的一边是字符串而另一边不是时,会将另一边表达为字符串然后再做连接; “age”+1+2–>”age12” 1+2+”age”–>”age12”
10. in.next();读入一个单词,单词的标志是空格
空格包括空格、tab和换行
in.nextLine();读入一整行
11. 比较字符串内容是否相等,用 .equals

 示例: String s ;         s = in.next();         System.out.println(s);         System.out.println(s.equals("bye"));

12.比较字符串大小,用 .compareTo

 示例:   String s1 = "abce" ;         String s2 = "abcd" ;         System.out.println(s1.compareTo(s2));

13.获取字符串长度,用length()函数

          示例:String s;                s.length();      //s.length=3   

14.访问String里的字符,用s.charAt(index)

       返回在index上的单个字符       index的范围是0length()-1       第一个字符的index0   不能用for-each循环来遍历字符串

15.输出子串,用 .substring()

           示例:String s1 = "0123456789汉字"                 System.out.println(s1.substring(2));  //表示输出从第二个位置起到最后一个位置的字符,所以这里会输出23456789                System.out.println(s1.substring(i,j); //表示输出从第i个位置到j-1个位置的字符

16.寻找字符

     s.indexOf(c)      得到字符c所在的位置,-1表示不存在。     s.indexOf(c,n)    从n号位置开始寻找c字符     s.indexOf(t)      找到字符串t所在的位置   从右边开始找     s.lastIndexOf(c)     s.lastIndexOf(c,n)     s.lastIndexOf(t)

17.不可变的String

   所有的字符串都是不可变的,对它们的操作的结果都是制造新的字符串出来      适用的String操作:   s.trim    删掉字符串两端的空格                          s.replace(c1,c2)  把这个字符串中所有的c1换成c2                          s.toLowerCase()  把字符串中所有的字符变成小写                          s.toUpperCase()    把字符串中所有的字符变成大写      错误示例:  String s ="abc";              System.out.println(s.toUpperCase());      正确示例:  String s1 ="abc";                 String s2 =s1.toUpperCase();                  System.out.println(s2);

18. s.startsWith(t)

     s.endsWith(t)    帮你看出该字符串是不是以另外一个字符串开头(结尾)的

19.在switch-case中使用字符串

   switch(s){   case"this"......break;   case"that"......break;   }

**20.**Math

   abs     计算绝对值   pow     计算幂次(做浮点类型的计算)   random  给一个随机数   round   做四舍五入              示例:    System.out.println(Math.abs(-13));    //求绝对值                System.out.println(Math.pow(2, 3.2));   //求2的3.2次方             System.out.println(Math.round(3.1415926)); //对小数部分四舍五入            System.out.println(Math.random());   //给一个0到1之间的随机数

21.函数

函数定义:   public static void sum(int a, int b)   {    int i;                        //    int sum=0;                    //    for(i=a;i<=b;i++)             //    {                             //  函数体     sum+=i;                      //    }                         //    }                                 //   System.out.println(a+"到"+b+"的和是"+sum)        //public static 是函数头,void是返回类型, //sum是函数名,int a,int b;是参数表  

22.函数传值
Java语言在调用函数时,永远只能传值给函数

eg:`package 数组;import java.util.Scanner;public class ssssss { public static void swap(int a, int b){  int t;  t = a;  a = b;  b = t;  System.out.println("转换后a="+a+";b="+b); } public static void main(String[] args) { int a = 5; int b = 6; swap(a,b); System.out.println("a="+a+";b="+b+";"); }}`

23.修改编码格式
注意,代码中的汉字用的是UTF-8编码。请在Eclipse里将文件的编码格式改为UTF-8:
File –> Properties –> Resource (Text file encoding) ==> Other [UTF-8]
24.我建议你在看视频时,旁边放一张白纸,随时记下要点及你脑海中突然出现的火花。
如果可能的话,我建议你使用双屏幕,一边播放视频,随时暂停,另一边直接在Visual Studio、Eclipse或Android Studio中运行示例源码,观察程序运行过程。
看完视频之后,对照着你的笔记,重温一下学到的知识。把讲课实例重新运行一遍,读懂里面的代码,但这还不够。
你需要动手!
你不仅需要读懂示例代码,还应该尝试着动手修改代码,分析输出结果,从而深入理解知识。
接着,你需要学以致用,把学到的知识应用于类似的场景,解决类似的问题,这主要是通过完成布置的编程作业和练习完成的。
第三步,你需要学会知识迁移和组合创建,把多个知识组合起来,在新的场景中解决新问题,这主要是通过你主动进行的大大小小的开发实践完成的,这门课的结课设计,要求你完成一个完整的Windows桌面或Android应用,就能帮助你完成这一任务。
**25.**serialVersionUID 用来表明类的不同版本间的兼容性

简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。

当实现java.io.Serializable接口的实体(类)没有显式地定义一个名为serialVersionUID,类型为long的变量时,Java序列化机制会根据编译的class自动生成一个serialVersionUID作序列化版本比较用,这种情况下,只有同一次编译生成的class才会生成相同的serialVersionUID 。

如果我们不希望通过编译来强制划分软件版本,即实现序列化接口的实体能够兼容先前版本,未作更改的类,就需要显式地定义一个名为serialVersionUID,类型为long的变量,不修改这个变量值的序列化实体都可以相互进行串行化和反串行化。
26. notify()和notifyAll()都是Object对象用于通知处在等待该对象的线程的方法。
void notify(): 唤醒一个正在等待该对象的线程。
void notifyAll(): 唤醒所有正在等待该对象的线程。
两者的最大区别在于:
notifyAll使所有原来在该对象上等待被notify的线程统统退出wait的状态,变成等待该对象上的锁,一旦该对象被解锁,他们就会去竞争。
notify他只是选择一个wait状态线程进行通知,并使它获得该对象上的锁,但不惊动其他同样在等待被该对象notify的线程们,当第一个线程运行完毕以后释放对象上的锁,此时如果该对象没有再次使用notify语句,即便该对象已经空闲,其他wait状态等待的线程由于没有得到该对象的通知,继续处在wait状态,直到这个对象发出一个notify或notifyAll,它们等待的是被notify或notifyAll,而不是锁。

——————————–未完————————————-

1 0
原创粉丝点击