JAVA学习笔记2访问修饰符
Java有四种访问权限,其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符:
访问修饰符
private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。
图示
修饰符详解默认访问修饰符-不使用任何关键字使用默认访问修饰符声明的变量和方法,对同一个包内的类是可见的。接口里的变量都隐式声明为 public static final,而接口里的方法默认情况下访问权限为 public。 ...
JAVA学习笔记1 变量储存理解
数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。
基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress引用类型包括:类类型,接口类型和数组。
内存区域
寄存器:JVM内部虚拟的寄存器,由CPU进行控制,存取速度很快。
静态域:存放static定义的静态成员
栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)
堆:用来存放动态产生的数据,比如new出来的对象
常量池:JVM为每个已加载的类型维护一个常量池,包括直接常量(基本类型,String)和对其他类型,方法,字段的引用,常量池存在于堆中。
非RAM存储:硬盘等永久存储空间
栈和常量池中的对象可以共享,堆中的对象不可以共享。栈中的数据大小和生存周期可以确定,当没 ...
微信小程序 wxml中用data-id向js传值
微信小程序 wxml中用data-id向js传值12<view class='lists' data-id='{{index}}' bindtap='busStationsClick'>//{{id}}这里的id为js里面设置的数据;
123 busStationsClick:function(e){ console.log("busStationsClick",e.currentTarget.dataset.id )}
SQLAlchemy
连接1app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:1234@1234:3306/testDB?charset=utf8'
使用pymysql驱动连接mysql
Modle 类(模型)12345678class Job(db.Model): # __tablename__="郁峻峰牛批" id=db.Column(db.Integer,primary_key=True) jobName = db.Column(db.TEXT,default="NULL") company = db.Column(db.TEXT,default="NULL") city = db.Column(db.TEXT,default="NULL") pay = db.Column(db.TEXT,default="NULL") date = db.Colu ...
concurrent.futures库
多线程concurrent.futures是一个非常简单易用的库,主要用来实现多线程和多进程的异步并发。
1Executor.submit(fn, *args, **kwargs)
fn:需要异步执行的函数
*args, **kwargs:fn参数
123456789101112131415161718192021222324252627def fake_job(id, dummy_data): print("[start] job: " + str(id)) time.sleep(4) print("[end] job: " + str(id)) return str(id) + dummy_data + "aaa"futures = [] #进程集with futures.ThreadPoolExecutor(max_workers=None) as executor: f = executor.submit(fake_job, i, "lalala") futur ...
群辉使用自带dnspod更新ip
起因路由器DDNS脚本莫名其妙的崩了。原因未知,之前都正常。使用群辉DSM自带的DDNS来更新ip,但是自带的ddns无法成功更新dnspod的域名,使用用户名密码会提示无法联机,经过一番研究成功,
方法使用dnspod的token,id填入用户名,token填入密码,域名填入主机名称,就可以了~
Openwrt通过Dnspod做DDNS
简介家里的路由器是Openwrt的,宽带分配的是公网IP,所以只需要DDNS就可以通过域名访问家里的群辉了。但是路由器自带的DDNS插件不支持DNSPOD,但是有自定义的选项,可以通过脚本来更新域名。我在Github上试了好几个脚本,就这个比较好。原本是不支持TONKEN的,我修改了一下。让他通过TONKEN验证,去掉了多余的功能。
使用需要有 luci-app-ddns 和 curl 两个软件包,特别是curl,系统里可能没有预装,需要安装下。脚本在我的github里 openwrt-dnspod-ddns
首先把脚本里的token,domainname,sub更换成自己的。上传的路由器,我上传到/etc/ddns/dnspod.sh。添加一个ddns任务,设置按照我图片上的例子填写。勾选启用就可以了。如此轻松简单。
腾讯云CDN更新SSL证书
介绍威盒官网全站升级HTTPS,原来使用的七牛云,免费流量不支持HTTPS,因此更换成腾讯云。证书使用Let’s Encrypt的泛域名证书。问题是证书每三个月需要更换一次,腾讯云提供的相应的API。
腾讯云社区找到有人写好了脚本,是python2的,改成了python3,而且使用acme.sh也有一些细微的变化,稍微修改了一下。(HTTPS 证书配置一劳永逸)
使用首先需要申请腾讯云 Token 在这里不做介绍。安装acme.sh
1curl https://get.acme.sh | sh
acme.sh支持DNS验证的方式申请证书,只需要添加一个域名DNS解析商的Token,一切全自动。我们使用的是DNSPOD的DNS服务,acme.sh支持DNSPOD的API。
1234567891011121314151617181920212223242526272829303132333435export DP_Id="1234"export DP_Key="sADDsdasdgdsf"cron脚本#!/bin/bash#************* ...
期末作业--模拟ATM机
水到不能再水的期末作业…
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <string.h>void menu_pw();void query(int num);int deposit(int num);int draw(int num);int main(){int num=1000,in_menu; menu_pw(); ...
数据结构3-有序链表合并
文字解释
创建三个指针变量,pa,pb,pc,pa,pb为游标
把pc置为pa的头节点.
pa,pb,分别置为两个链表的第一个节点
比较pa和pb,将pc->next置为两者中大的那一个(假设pa大,pc->next=pa,下面都是假设pa大)
,然后pc=pc->next,pa=pa->next(方便下次比较,将游标置为下一个)
如果pa或者pb有一个为空,pc->next=pa(如果pa非空)
代码例子
123456789101112131415161718int Mergelist(stu *l1,stu *l2){ stu* pa,pb,pc; pc=pa=l1->next; pb=l2->next; while (pa && pb){ if (pa->data<=pb->data){ pc->next=pa; pc=pa; //等价pc=pc->naxt pa=pa-next; }else{ pc->next ...

