• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

easyaaa

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

JavaSE 基础复习01

JavaSE 基础学习01

1.第一节

cmd set classpath = .;c:; set path = .;c:\

ASCII GB2313 GBK Unicode

byte b = 4
byte b1 = 4;
byte b2 = 10;
b = b1 + b2;
System.out.println(b);

报错,损失精度 b1 b2是变量 ‘+’ 可能会超过byte最大数值,可以改成如下

final byte b1 = 4;
final byte b2 = 10;
class ByteDemo
{
	public static void main(String[] args)
	{
		byte b = 4;
		
		final byte b1 = 3;
		final byte b2 = 12 ;
		b = b1 + b2;

		int byteValue  = Byte.MAX_VALUE ;
		int shortValue = Short.MAX_VALUE ;
		int intValue = Integer.MAX_VALUE ;
		long longValue = Long.MAX_VALUE ;

		System.out.println("byte:"+byteValue+"||||"+"short:"+shortValue+"||||"+"int:"+intValue+"||||"+"long:"+longValue+"|||");
		/*byte b3 = 'a';
		byte b4 = 'b';
		System.out.println((char)(b3+b4));*/
		System.out.println(b);
	}
}

//1.算术运算符 + - * / %(取余,模运算)
//2.逻辑运算符
class OperateDemo
   public static void main(String[] args)
	{	
   	System.out.println(3>2);  //true
   	System.out.println(3==2);	//false		
   // instanceof 检查是否是类的对象 "hello" instanceof String  true
	}
//& 与 && ; | 与 ||  双与或双或 如果第一项可以判断出结果 不用运算第二项
//3.位运算符
class OperateDemo
   public static void main(String[] args)
	{	
   	System.out.println(6&3); // 0110 & 0011 = 0010 = 2 
      System.out.println(6|3); // 0110 | 0011 = 0111 = 7
      System.out.println(6^3); //异或   一个数异或一个数两次 ,值不变
    	System.out.println(~6); //反码
   	/* 3<<2  =  3 * 2 * 2 = 12  
       >>>:无符号右移 数据进行右移时 高位补0 */
  		int a = 3,b = 4; //将两个值交换
   	/*
   	a = a + b;    如果两个整数的数值过大 ,会超出int 范围,会强制转换 ,影响精度
   	b = a - b;
   	a = a - b ;*/
   	a = a ^ b;
   	b = a ^ b;
   	a = a ^ b;
   	//三目运算符,例子:获取两个整数中的较大的整数
   	public int getMax(int a ;int b)
      {
         return a>b?a:b;
      }
   	//javac -encoding UTF-8 ByteDemo1.java
	}

2.第二节

/*for循环 中 break 与 continue;
注意点  可以给循环加一个名字  break 可以直接跳出 */
class IfDemo{
   private void static main(String[] args)
   {
     
      ear:for(int i= 0;i<10;i++)
      {
         easy:for(int j=0;j<10;j++)
         {
            if(i==1){
               System.out.println("i:"+i+";"+"j"+j);
            }
            else{
               System.out.println("i:"+i+":"+"j"+j);
            }
         }
      }
   }
}

内存的划分:寄存器 本地方法区 方法区 栈内存 堆内存

栈内存:存储的都是些局部变量(没有的都占(栈)内存),而且变量作用域一旦结束 该变量就自动释放

堆内存:存储在数组和对象(其实数组就是对象) 凡是new建立在堆中,特点:

​ 1:每一个实体都有首地址值。

​ 2:堆内存中的每一个变量都有默认初始值,根据类型的不同而不同。

​ 3:垃圾回收机制

3.第三节

数组的处理与:

a).数组的最值

class ArrayDemo{
   public  static void main(String[] args)
   {
     int [] arr = new int[]{80,70,69,92,20,39,90,91,20,77};
     int max = 0;
     int size = arr.length;

     for(int i=0;i<size;i++)
     {
        max = getMax(max,arr[i]);
     }

     System.out.println("the largest item in this array is:"+max);
     
   }
   public static int  getMax(int a,int b)
   {
      return a>b?a:b;
   }
}

这样存的问题是 max如果大于数组中所有元素,查找失败,改进:max = arr[0];也可以比较脚标

b).选择排序

从左到右 第一个元素 分别于其他元素比 选出最小数

从左到右 第二个元素 分别于其他元素比 选出倒数第二小数

/*可以给for循环加上name标签 break、continue可以使用*/
class IfDemo
{   
   private void static main(String[] args)
   {
      ear:for(int i= 0;i<10;i++)
      {
         easy:for(int j=0;j<10;j++)
         {
            if(i==1){
               System.out.println("i:"+i+";"+"j"+j);
               break ear;
            }
            else{
               System.out.println("i:"+i+":"+"j"+j);         
            }         
         }   
      }
   }
}

c).冒泡排序

 public static int[] popSort(int[] arr)
   {
      for(int x = 0 ;x<arr.length -1;x++)
      {
        for(int y = 0 ;y<arr.length-1-x;y++)
        {

           if(arr[y]>arr[y+1])
           {
            int temp = arr[y];
            arr[y] = arr[y+1];
            arr[y+1] = temp;  
           }
        }
      }
        return arr;
   }

数组的二分查找法:

public static int halfSearch(int[] arr,int key)
{
   int max,min,mid;
   min = 0 ;
   max = arr.length -1;
   mid = (min+max)/2;
   
   while(arr[mid]!=key)
   {
      if(key>arr[mid])
         min = mid + 1;
      else if(key<arr[mid])
         max = mid -1;
      if(max<min)
         return  -1
   }
   return mid;
}
//Arrays.binarySearch(arr,key) 如果存在 返回具体角标位 如果不存在 返回 -插入点-1
![](https://img2020.cnblogs.com/blog/2196375/202011/2196375-20201109185153696-372312711.png)
easyaaa,where you are ?

posted on 2020-11-09 18:52  easyaaa  阅读(33)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3